Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

Amazon EMR を使用した Amazon S3 テーブルへのアクセス

フォーカスモード
Amazon EMR を使用した Amazon S3 テーブルへのアクセス - Amazon Simple Storage Service

Amazon EMR (旧称 Amazon Elastic MapReduce) は、AWS でビッグデータフレームワーク (Apache Hadoop、Apache Spark、および Apache Spark など) の実行を簡素化して、ビッグデータを処理および分析するマネージドクラスタープラットフォームです。これらのフレームワークと、関連するオープンソースプロジェクトを使用することで、分析用のデータやビジネスインテリジェンスワークロードを処理できます。Amazon EMR は、大量のデータを変換したり、他の AWS データストアやデータベースとの間で出し入れしたりできるようにします。

Amazon EMR の Apache Iceberg クラスターを使用して、Spark セッション内のテーブルバケットに接続することで S3 テーブルを操作できます。Amazon EMR のテーブルバケットに接続するには、AWS Glue Data Catalog を通じて AWS 分析サービスの統合を使用するか、オープンソースの Amazon S3 Tables Catalog for Apache Iceberg クライアントカタログを使用できます。

注記

S3 Tables は Amazon EMR バージョン 7.5 以降でサポートされています。

Amazon EMR Iceberg クラスターでの Spark を使用した S3 テーブルバケットへの接続

この手順では、Apache Iceberg 用に設定された Amazon EMR クラスターをセットアップし、テーブルバケットに接続する Spark セッションを起動します。AWS Glue を通じて AWS 分析サービス統合を使用して設定することも、オープンソースの Amazon S3 Tables Catalog for Apache Iceberg クライアントカタログを使用することもできます。クライアントの詳細については、「Amazon S3 Tables Iceberg REST エンドポイントを使用したテーブルへのアクセス」を参照してください。

次のオプションから、Amazon EMR でテーブルを使用する方法を選択します。

Amazon S3 Tables Catalog for Apache Iceberg

Amazon S3 Tables Catalog for Apache Iceberg を使用して、Amazon EMR で Spark によりテーブルに対してクエリを実行するには、次の前提条件が必要です。

前提条件
  • Amazon EMR で使用する IAM ロールに AmazonS3TablesFullAccess ポリシーをアタッチします。

Spark を使用してテーブルをクエリするように Amazon EMR クラスターを設定するには
  1. 次の設定を使用して、クラスターを作成します。この例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. SSH を使用して Spark プライマリノードに接続します。

  3. テーブルバケットに接続する Iceberg の Spark セッションを初期化するには、次のコマンドを入力します。user input placeholders をテーブルバケットの ARN に置き換えます。

    spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.3 \ --conf spark.sql.catalog.s3tablesbucket=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket.warehouse=arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --conf spark.sql.defaultCatalog=s3tablesbucket \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
  4. Spark SQL を使用してテーブルをクエリします。クエリの例については、「Spark SQL を使用した S3 テーブルのクエリ」を参照してください。

AWS analytics services integration

AWS 分析サービス統合を使用して、Amazon EMR で Spark によりテーブルをクエリするには、次の前提条件が必要です。

前提条件
Spark を使用してテーブルをクエリするように Amazon EMR クラスターを設定するには
  1. 次の設定を使用して、クラスターを作成します。この例を使用するには、user input placeholder の値を実際の情報に置き換えます。

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. SSH を使用して Spark プライマリノードに接続します。

  3. 次のコマンドを入力して、テーブルに接続する Iceberg の Spark セッションを初期化します。user input placeholders を、ユーザー自身の情報に置き換えます。

    spark-shell \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \ --conf spark.sql.defaultCatalog=s3tables \ --conf spark.sql.catalog.s3tables=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tables.catalog-impl=org.apache.iceberg.aws.glue.GlueCatalog \ --conf spark.sql.catalog.s3tables.client.region=us-east-1 \ --conf spark.sql.catalog.s3tables.glue.id=111122223333
  4. Spark SQL を使用してテーブルをクエリします。クエリの例については、「Spark SQL を使用した S3 テーブルのクエリ」を参照してください。

Amazon S3 Tables Catalog for Apache Iceberg を使用して、Amazon EMR で Spark によりテーブルに対してクエリを実行するには、次の前提条件が必要です。

前提条件
  • Amazon EMR で使用する IAM ロールに AmazonS3TablesFullAccess ポリシーをアタッチします。

Spark を使用してテーブルをクエリするように Amazon EMR クラスターを設定するには
  1. 次の設定を使用して、クラスターを作成します。この例を実行するには、user input placeholders をユーザー自身の情報に置き換えます。

    aws emr create-cluster --release-label emr-7.5.0 \ --applications Name=Spark \ --configurations file://configurations.json \ --region us-east-1 \ --name My_Spark_Iceberg_Cluster \ --log-uri s3://amzn-s3-demo-bucket/ \ --instance-type m5.xlarge \ --instance-count 2 \ --service-role EMR_DefaultRole \ --ec2-attributes \ InstanceProfile=EMR_EC2_DefaultRole,SubnetId=subnet-1234567890abcdef0,KeyName=my-key-pair

    configurations.json:

    [{ "Classification":"iceberg-defaults", "Properties":{"iceberg.enabled":"true"} }]
  2. SSH を使用して Spark プライマリノードに接続します。

  3. テーブルバケットに接続する Iceberg の Spark セッションを初期化するには、次のコマンドを入力します。user input placeholders をテーブルバケットの ARN に置き換えます。

    spark-shell \ --packages software.amazon.s3tables:s3-tables-catalog-for-iceberg-runtime:0.1.3 \ --conf spark.sql.catalog.s3tablesbucket=org.apache.iceberg.spark.SparkCatalog \ --conf spark.sql.catalog.s3tablesbucket.catalog-impl=software.amazon.s3tables.iceberg.S3TablesCatalog \ --conf spark.sql.catalog.s3tablesbucket.warehouse=arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --conf spark.sql.defaultCatalog=s3tablesbucket \ --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions
  4. Spark SQL を使用してテーブルをクエリします。クエリの例については、「Spark SQL を使用した S3 テーブルのクエリ」を参照してください。

注記

Amazon EMR で DROP TABLE PURGE コマンドを使用している場合:

  • Amazon EMR バージョン 7.5

    Spark 設定 spark.sql.catalog.your-catalog-name.cache-enabledfalse に指定します。この設定が true に設定されている場合、テーブルキャッシュがアクティブ化されないように、新しいセッションまたはアプリケーションで コマンドを実行します。

  • Amazon EMR バージョン 7.5 以上

    DROP TABLE はサポートされていません。S3 Tables の DeleteTable REST API を使用してテーブルを削除できます。

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.