优化 Iceberg 表 - Amazon Athena

优化 Iceberg 表

随着数据累积到 Iceberg 表中,由于打开文件所需的处理时间增加,查询效率逐渐降低。如果表包含删除文件,则会产生额外的计算成本。在 Iceberg 中,删除文件存储行级删除,引擎必须将删除的行应用于查询结果。

为了帮助优化 Iceberg 表的查询性能,Athena 支持手动压缩作为表维护命令。压缩可在不改变表内容的情况下优化表的结构布局。

OPTIMIZE

OPTIMIZE table REWRITE DATA 压缩操作根据数据文件的大小和相关删除文件的数量将数据文件重写为更优化的布局。有关语法和表属性的详细信息,请参见 OPTIMIZE

示例

以下示例将删除文件合并到数据文件中,然后生成接近目标文件大小的文件,其中 category 的值为 c1

OPTIMIZE iceberg_table REWRITE DATA USING BIN_PACK WHERE category = 'c1'

VACUUM

VACUUM 会执行快照过期孤立文件删除。这些操作会减小元数据大小,并删除不处于当前表状态且早于为表指定的保留期的文件。有关语法的详细信息,请参阅 VACUUM

示例

以下示例使用表属性将表 iceberg_table 配置为保留最近三天的数据,然后使用 VACUUM 使旧快照过期并从表中删除孤立文件。

ALTER TABLE iceberg_table SET TBLPROPERTIES ( 'vacuum_max_snapshot_age_seconds'='259200' ) VACUUM iceberg_table