使用 Iceberg 表 - Amazon Athena
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Iceberg 表

Athena 支持对 Apache Iceberg 表进行读取、时间旅行、写入和 DDL 查询,这些表对数据和元数据仓分别使用 Apache Parquet 格式和 Amazon Glue 目录。

Apache Iceberg 是适用于超大型分析数据集的开放表格式。Iceberg 以表的形式管理大量文件,并支持现代分析数据湖操作,例如记录级插入、更新、删除和时间旅行查询。Iceberg 规范支持表无缝发展,例如架构和分区发展,且其设计针对在 Amazon S3 上的使用进行了优化。Iceberg 还有助于在并发写入场景下保证数据的正确性。

有关 Apache Iceberg 的更多信息,请参阅 https://iceberg.apache.org/

注意事项和限制

Athena 对 Iceberg 表的支持具有以下限制:

  • 仅限包含 Amazon Glue 目录的表 – Athena 仅支持根据由开源 Glue 目录实施所定义的规范在 Amazon Glue 目录上创建的 Iceberg 表。

  • Amazon Glue 仅支持表锁定 – 与支持插件自定义锁的开源 Glue 目录实施不同,Athena 仅支持 Amazon Glue 乐观锁。使用 Athena 修改具有任何其他锁实施的 Iceberg 表将丢失潜在数据并中断事务。

  • 仅限 Parquet 文件 – 目前,Athena 仅支持 Parquet 文件格式的 Iceberg 表。ORC 和 AVRO 不受支持。

  • Iceberg v2 表 – Athena 仅在 Iceberg v2 表上进行创建和操作。有关 v1 和 v2 表之间的区别,请参阅 Apache Iceberg 文档中的格式版本更改

  • 显示没有时区的时间类型 – 没有时区类型的时间和时间戳以 UTC 格式显示。如果在时间列的筛选条件表达式中未指定时区,则使用 UTC。

  • 时间戳相关的数据精度 – 虽然 Iceberg 对时间戳数据类型支持微秒精度,但 Athena 仅对读写操作中的时间戳支持毫秒精度。在与时间相关的列中,Athena 只对在手动压缩操作过程中重写的数据保留毫秒精度。

  • Lake Formation – 不支持与 Amazon Lake Formation 集成。

  • 不支持的操作 – Iceberg 表格不支持以下 Athena 操作。

若您希望 Athena 支持特定功能,请将反馈发送至 athena-feedback@amazon.com