將 Iceberg 叢集與 Trino 搭配使用 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將 Iceberg 叢集與 Trino 搭配使用

從 Amazon EMR 版本 6.6.0 開始,您可以將冰山與您的 Trino 叢集一起使用。

在本教學中,您可以使 AWS CLI 用在 Amazon EMR Trino 叢集上使用 Iceberg。若要使用主控台建立安裝了 Iceberg 的叢集,請遵循使用 Amazon Athena 和 AWS Glue 建立 Apache 冰山資料湖中的步驟。EMR

建立 Iceberg 叢集

要在 Amazon EMR 上使用 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. 建立可將 iceberg.properties 從 Amazon S3 複製到 /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;