すべてのプロダクト
Search
ドキュメントセンター

Data Lake Formation:EMR on ECS Spark から DLF の Iceberg テーブルへのアクセス

最終更新日:Jul 16, 2026

このトピックでは、オープンソースの Iceberg Spark ランタイムと Iceberg REST カタログを使用して、EMR on ECS Spark から Data Lake Formation (DLF) の Iceberg テーブルにアクセスする方法について説明します。

前提条件

  • バージョン要件:Spark 3 コンポーネントがインストールされている、バージョン 5.12.0 以降の EMR クラスター。 Spark は JDK 17 を使用する必要があります (Iceberg 1.11.0 で必須です。Spark 3 での JDK 11 の使用 で説明されているように設定してください)。

  • リージョン要件:EMR クラスターと DLF は同じリージョンにある必要があります。また、クラスターの VPC は DLF の許可リストに追加されている必要があります。

  • 権限要件:DLF にアクセスするための権限を持つアクセスキーペアが必要です。また、対応する RAM ユーザーには、ターゲットカタログに対するデータ権限が付与されている必要があります。 詳細については、「データ権限の管理」をご参照ください。

依存関係

必要となるのは、Maven Central の Apache Iceberg コミュニティアーティファクトのうち、次の 2 つのみです:

  • iceberg-spark-runtime-3.5_2.12 (1.11.0 以降)

  • iceberg-aws-bundle (1.11.0 以降)

ジョブを送信する際に --packages フラグを使用して依存関係を自動的にプルできます (以下の例をご参照ください)。 オフラインクラスターの場合は、JAR ファイルをダウンロードして $SPARK_HOME/jars に配置することもできます。

使用例

カタログ接続の設定

ターミナルで spark-sql コマンドを実行します。 プレースホルダーは実際の値に置き換えてください。

spark-sql \
  --master local \
  --packages org.apache.iceberg:iceberg-spark-runtime-3.5_2.12:1.11.0,org.apache.iceberg:iceberg-aws-bundle:1.11.0 \
  --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
  --conf spark.sql.catalog.iceberg_catalog=org.apache.iceberg.spark.SparkCatalog \
  --conf spark.sql.catalog.iceberg_catalog.catalog-impl=org.apache.iceberg.rest.RESTCatalog \
  --conf spark.sql.catalog.iceberg_catalog.uri=http://${regionID}-vpc.dlf.aliyuncs.com/iceberg \
  --conf spark.sql.catalog.iceberg_catalog.warehouse=${catalogName} \
  --conf spark.sql.catalog.iceberg_catalog.io-impl=org.apache.iceberg.aws.s3.S3FileIO \
  --conf spark.sql.catalog.iceberg_catalog.rest.auth.type=sigv4 \
  --conf spark.sql.catalog.iceberg_catalog.rest.auth.sigv4.delegate-auth-type=none \
  --conf spark.sql.catalog.iceberg_catalog.rest.signing-region=${regionID} \
  --conf spark.sql.catalog.iceberg_catalog.rest.signing-name=DlfNext \
  --conf spark.sql.catalog.iceberg_catalog.rest.access-key-id=${AccessKeyId} \
  --conf spark.sql.catalog.iceberg_catalog.rest.secret-access-key=${AccessKeySecret}

次の表に、設定項目を示します:

設定項目

説明

uri

DLF Iceberg REST サービスの VPC エンドポイント。形式は http://<regionID>-vpc.dlf.aliyuncs.com/iceberg です。 詳細については、「サービスアクセスポイント」をご参照ください。

http://cn-hangzhou-vpc.dlf.aliyuncs.com/iceberg

warehouse

カタログ名

iceberg_test

catalog-impl

固定値: org.apache.iceberg.rest.RESTCatalog

org.apache.iceberg.rest.RESTCatalog

io-impl

標準の Iceberg コミュニティ実装。 固定値: org.apache.iceberg.aws.s3.S3FileIO

org.apache.iceberg.aws.s3.S3FileIO

rest.auth.type

認証タイプ。 固定値: sigv4

sigv4

rest.auth.sigv4.delegate-auth-type

固定値: none

none

rest.signing-region

DLF のリージョン ID

cn-hangzhou

rest.signing-name

固定値: DlfNext

DlfNext

rest.access-key-id

DLF へのアクセスに使用するアクセスキー ID

rest.secret-access-key

DLF へのアクセスに使用するシークレットアクセスキー

DLF の Iceberg テーブルの読み取りと書き込み

起動後、標準の Spark SQL を使用してデータの読み取りと書き込みができます:

CREATE DATABASE IF NOT EXISTS iceberg_catalog.db;
CREATE TABLE iceberg_catalog.db.iceberg_tbl (id BIGINT, name STRING) USING iceberg;
INSERT INTO iceberg_catalog.db.iceberg_tbl VALUES (1, 'hello'), (2, 'world');
SELECT * FROM iceberg_catalog.db.iceberg_tbl;