本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將 Iceberg 叢集與 Trino 搭配使用
從 Amazon EMR 版本 6.6.0 開始,您可以將冰山與您的 Trino 叢集一起使用。
在本教學中,您可以使 AWS CLI 用在 Amazon EMR Trino 叢集上使用 Iceberg。若要使用主控台建立安裝了 Iceberg 的叢集,請遵循使用 Amazon Athena 和 AWS Glue 建立 Apache 冰山資料湖
建立 Iceberg 叢集
要在 Amazon EMR 上使用 Iceberg AWS CLI,請先按照以下步驟創建一個集群。若要取得有關使用指定 Iceberg 分類的資訊 AWS CLI,請參閱在建立叢集 AWS CLI 時使用提供配置或建立叢集SDK時,使用 Java 提供組態。
-
建立
iceberg.properties
檔案,並為您選擇的型錄設定值。例如,如果您想要使用 Hive 中繼存放區作為型錄,您的檔案應具有下列內容。connector.name=iceberg hive.metastore.uri=thrift://localhost:9083
如果您想要使用 AWS Glue 資料型錄做為您的商店,您的檔案應該包含下列內容。
connector.name=iceberg iceberg.catalog.type=glue
-
建立可將
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 -
使用下列組態建立叢集,並將範例引導操作指令碼路徑和金鑰名稱取代為您自己的值。
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;