Trino での Iceberg クラスターの使用 - Amazon EMR

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Trino での Iceberg クラスターの使用

Amazon EMRバージョン 6.6.0 以降では、Trino クラスターで Iceberg を使用できます。

このチュートリアルでは、 を使用して Amazon EMR Trino クラスターで Iceberg AWS CLI を操作します。コンソールを使用して Iceberg がインストールされたクラスターを作成するには、Amazon Athena、EMRおよび AWS Glue を使用して Apache Iceberg データレイクを構築する」の手順に従います。

Iceberg クラスターの作成

EMR で Amazon の Iceberg を使用するには AWS CLI、まず次のステップでクラスターを作成します。を使用して Iceberg 分類を指定する方法については AWS CLI、クラスターの作成 AWS CLI 時に を使用して設定を指定する「」または「」を参照してくださいクラスターの作成SDK時に Java を使用して設定を指定する

  1. iceberg.properties ファイルを作成し、選択したカタログの値を設定します。例えば、Hive メタストアをカタログとして使用する場合、ファイルには次の内容が含まれている必要があります。

    connector.name=iceberg hive.metastore.uri=thrift://localhost:9083

    AWS Glue データカタログをストアとして使用する場合は、ファイルに次のコンテンツが含まれている必要があります。

    connector.name=iceberg iceberg.catalog.type=glue
  2. 次の例のように、Amazon S3 の iceberg.properties/etc/trino/conf/catalog/iceberg.properties にコピーするブートストラップアクションを作成します。ブートストラップアクションの詳細については、「追加のソフトウェアをインストールするためのブートストラップアクションの作成」を参照してください。

    set -ex sudo aws s3 cp s3://DOC-EXAMPLE-BUCKET/iceberg.properties /etc/trino/conf/catalog/iceberg.properties
  3. 以下の設定でクラスターを作成し、この例のブートストラップアクションのスクリプトパスとキー名を自分のものに置き換えます。

    aws emr create-cluster --release-label emr-6.7.0 \ --applications Name=Trino \ --region us-east-1 \ --name My_Trino_Iceberg_Cluster \ --bootstrap-actions '[{"Path":"s3://DOC-EXAMPLE-BUCKET","Name":"Add iceberg.properties"}]' \ --instance-groups InstanceGroupType=MASTER,InstanceCount=1,InstanceType=c3.4xlarge InstanceGroupType=CORE,InstanceCount=3,InstanceType=c3.4xlarge \ --use-default-roles \ --ec2-attributes KeyName=<key-name>

Iceberg の Trino セッションの初期化

Trino セッションを初期化するには、次のコマンドを実行します。

trino-cli --catalog iceberg

Iceberg テーブルへの書き込み

次のSQLコマンドを使用して、テーブルを作成して書き込みます。

trino> SHOW SCHEMAS; trino> CREATE TABLE default.iceberg_table ( id int, data varchar, category varchar) WITH ( format = 'PARQUET', partitioning = ARRAY['category', 'bucket(id, 16)'], location = 's3://DOC-EXAMPLE-BUCKET/<prefix>') trino> INSERT INTO default.iceberg_table VALUES (1,'a','c1'), (2,'b','c2'), (3,'c','c3');

Iceberg のテーブルからの読み込み

Iceberg テーブルから読み込むには、次のコマンドを実行します。

trino> SELECT * from default.iceberg_table;