DuckDB セッションを使用してインタラクティブな DuckDB SQL 開発を行い、軽量で効率的なデータ分析を活用します。
背景情報
DuckDB は、オンライン分析処理 (OLAP) のユースケースに最適化された、軽量でパフォーマンスに優れた組み込み分析データベースエンジンです。
特徴
組み込みアーキテクチャ: DuckDB は独立したサーバーを必要としません。SQLite のようにライブラリとしてアプリケーションに直接組み込まれ、インメモリモードとオンディスクモードの両方をサポートします。
列指向ストレージ: データは列ごとに保存されるため、集計クエリやスキャンのパフォーマンスが最適化されます。
ベクトル化実行: 単一命令複数データ (SIMD) 命令を使用してデータをバッチで処理するため、CPU オーバーヘッドが削減されます。
標準準拠: SQL-92 および SQL:2011 標準をサポートしており、共通テーブル式 (CTE)、ウィンドウ関数、JOIN 操作 (ASOF JOIN など)、サブクエリなどが含まれます。
複数フォーマットの直接読み取り: CSV、Parquet、JSON ファイルをインポートせずに直接クエリできます。
ゼロコピー統合: Pandas や Arrow などのインメモリデータ構造との間でデータをシームレスに変換し、データ移行のオーバーヘッドを回避します。
フェデレーテッドクエリ:
httpfs拡張機能を使用して、S3 上のファイルなどのリモートファイルにアクセスしたり、PostgreSQL などの外部データベースに接続してフェデレーテッドクエリを実行したりできます。
ユースケース
インタラクティブ分析: ギガバイト (GB) からテラバイト (TB) までのデータセットを迅速に処理し、大規模データ向けの Pandas や Excel の代替として機能します。
エッジコンピューティング: エッジデバイスにデプロイして、ローカルでデータ分析を実行できます。
データサイエンス: Python および R のエコシステムとシームレスに統合し、機械学習 (ML) のデータ前処理エンジンとして使用できます。
リアルタイム OLAP: 頻繁な更新と複雑なクエリの両方を必要とする分析ワークロードをサポートします。
制限事項
DuckDB セッションは、エンジンバージョン esr-4.8.0 以降および esr-3.7.0 以降でのみサポートされます。
DuckDB セッションの作成
EMR コンソールにログインします。
左側のナビゲーションウィンドウで、[EMR Serverless] > [Spark] を選択します。
[Spark] ページで、対象のワークスペースの名前をクリックします。
[EMR Serverless Spark] ページで、左側のナビゲーションウィンドウの [セッション管理] をクリックします。
[セッション管理] ページで、[DuckDB セッション] タブをクリックします。
DuckDB セッションのリストページで、[DuckDB セッションの作成] をクリックします。
[DuckDB セッションの作成] ダイアログボックスで、次のパラメーターを設定します。
重要選択したデプロイメントキューの最大同時実行数は、DuckDB セッションで必要なリソースサイズ以上に設定することを推奨します。この値はコンソールに表示されます。
パラメーター
説明
名前
新しい DuckDB セッションの名前。名前は 1~64 文字で、漢字、英字、数字、アンダースコア (_)、ハイフン (-) を使用できます。セッション名は、同じワークスペース内で一意である必要があります。
デプロイメントキュー
DuckDB セッションのリソースキューを選択します。準備完了状態のキューのみ選択できます。利用可能なリソースキューがない場合は、[リソースキュー管理] ページで作成してください。詳細については、「リソースキューの管理」をご参照ください。
[エンジンバージョン]
DuckDB セッションのエンジンバージョンを選択します。サポートされているバージョンについては、「リリースノート」をご参照ください。
自動停止
セッションが自動的に停止するまでのアイドル時間。この機能を有効にすると、指定した期間アイドル状態が続いた場合に、システムが自動的にセッションを停止してリソースを節約します。この機能はデフォルトで有効になっており、デフォルトの期間は 45 分です。
[ネットワーク接続]
DuckDB ジョブが Virtual Private Cloud (VPC) 内のデータソースや外部サービスにアクセスする必要がある場合は、ネットワーク接続を設定する必要があります。ドロップダウンリストから既存のネットワーク接続の名前を選択します。詳細については、「ネットワーク接続の追加」をご参照ください。
コア
DuckDB の CPU コア数。デフォルト値は 2 です。
メモリ
DuckDB のメモリ量。デフォルト値は 8 GB です。
[MemoryOverhead]
DuckDB のオーバーヘッドメモリ量。デフォルト値は
max(384 MB, 10% × memory)です。Spark 設定
Spark 設定をスペースで区切って入力します。例:
spark.sql.catalog.paimon.metastore dlf。[作成] をクリックします。
セッションが作成されると、DuckDB セッションのリストページで確認できます。セッションのステータスが [実行中] になると、DuckDB SQL 開発 に使用できます。
実行記録の表示
データ開発ジョブが完了すると、[セッション管理] ページでその実行記録を表示できます。
セッションのリストページで、セッション名をクリックします。
[実行記録] タブをクリックします。
このページでは、実行 ID、開始時刻、Spark UI など、ジョブの詳細な実行情報を表示できます。
