EMR Serverless Spark は DuckDB を統合し、軽量で効率的なデータ分析機能を提供します。DuckDB SQL ジョブを使用すると、データの迅速な探索、プロトタイプの開発、アドホッククエリの実行が可能になります。
前提条件
EMR Serverless Spark ワークスペースが作成されていること。詳細については、「ワークスペースの作成」をご参照ください。
DuckDB セッションが作成され、開始されていること。詳細については、「DuckDB セッションの管理」をご参照ください。
制限事項
OSS ファイルおよび DLF カタログからのデータ読み取りのみがサポートされています。
DuckDB を使用して DLF カタログからデータを読み取る場合、次の制限事項が適用されます。
操作タイプ:Paimon の追加専用テーブルからのデータ読み取りのみがサポートされています。プライマリキーテーブルからの読み取りおよび書き込み操作はサポートされていません。
テーブルフォーマット:
file.format = 'parquet'の Paimon テーブルのみがサポートされています。カタログタイプ:データ共有を使用して作成された DLF カタログにはアクセスできません。
DuckDB SQL ジョブの作成
データ開発ページに移動します。
EMR コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
Spark ページで、対象のワークスペース名をクリックします。
左側のナビゲーションウィンドウで、[データ開発] をクリックします。
ジョブを作成します。
データ開発ページで、[ジョブの作成] をクリックします。
[ジョブの作成] ダイアログボックスで、 を選択します。
ジョブ名を入力し、[OK] をクリックします。
右上隅で、DuckDB セッションを選択します。
新しいジョブエディターで、SQL ステートメントを入力します。
OSS ファイルの読み取り
OSS 内のファイルの読み書きを行う前に、OSS を有効化し、バケットを作成していることを確認してください。また、ご利用の EMR Serverless Spark ワークスペースの実行ロールに、バケットへのアクセスに必要な権限が付与されていることも確認してください。
Parquet、CSV、JSON ファイルの内容を表示します。
-- Parquet ファイルの内容を表示します。 SELECT * FROM 'oss://bucket/path/to/test.parquet'; -- CSV ファイルの内容を表示します。 SELECT * FROM 'oss://bucket/path/to/test.csv'; -- JSON ファイルの内容を表示します。 SELECT * FROM 'oss://bucket/path/to/test.json';Parquet ファイルのスキーマを表示します。
SELECT * FROM parquet_schema('oss://your-bucket/path/to/test.parquet');クエリ結果を CSV ファイルにエクスポートします。
COPY (SELECT * FROM 'oss://your-bucket/path/to/test.parquet') TO 'oss://your-bucket/path/to/output.csv' (HEADER, DELIMITER ',');
DLF カタログへのアクセス
DuckDB を使用して DLF カタログからデータを読み取る場合、次の制限事項が適用されます。
操作タイプ:Paimon の追加専用テーブルからのデータ読み取りのみがサポートされています。プライマリキーテーブルからの読み取りおよび書き込み操作はサポートされていません。
テーブルフォーマット:
file.format = 'parquet'の Paimon テーブルのみがサポートされています。カタログタイプ:データ共有を使用して作成された DLF カタログにはアクセスできません。
現在のワークスペースにバインドされている DLF カタログを表示します。DLF データカタログの詳細については、「データカタログの管理」をご参照ください。
SHOW DATABASES;DLF カタログ内のテーブルデータをクエリします。
USE <catalogName>.<databaseName>; SELECT * FROM <tableName> LIMIT 10;