选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

将 Iceberg 集群与 Trino 结合使用 - Amazon EMR

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Iceberg 集群与 Trino 结合使用

从 Amazon EMR 版本 6.6.0 开始,您可以将 Iceberg 用于您的 Trino 集群。

在本教程中,您将使用在 Amazon EMR Trino 集群上使用 Iceberg。 AWS CLI 要使用控制台创建安装了 Iceberg 的集群,请按照使用 Amazon Athena、Amazon EMR 和 AWS Glue 构建 Apache Iceberg 数据湖中的步骤操作。

创建 Iceberg 集群

要将 Amazon EMR 上的 Iceberg 与一起 AWS CLI使用,请先按照以下步骤创建一个集群。有关使用指定 Iceberg 分类的信息 AWS CLI,请参阅创建集群 AWS CLI 时使用提供配置在创建集群时,使用 Java SDK 提供配置

  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://amzn-s3-demo-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://amzn-s3-demo-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://amzn-s3-demo-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;

将 Iceberg 与 Trino 结合使用的注意事项

  • Amazon EMR 6.5 不提供对 Iceberg 的原生 Trino Iceberg Catalog 支持。Trino 需要使用 Iceberg v0.11,因此我们建议为 Trino 启动独立于 Spark 集群的 Amazon EMR 集群,并在该集群上包括 Iceberg v0.11。

  • 使用 AWS Glue 作为 Iceberg 的目录时,请确保要在其中创建表的数据库存在于 Glue 中 AWS 。如果您正在使用诸如的服务 AWS Lake Formation ,但无法加载目录,请确保您拥有对服务的正确访问权限以执行命令。

  • Iceberg Glue 集成不适用于 Redshift 托管存储目录。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。