Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
启用快照保留优化器
您可以在 Data Catalog 中使用 Amazon Glue 控制台、Amazon CLI 或 Amazon API 为 Apache Iceberg 表启用快照保留优化器。对于新表,您可以在创建表时选择 Apache Iceberg 表格式并启用快照保留优化器。新表会默认禁用快照保留功能。
- Console
-
启用快照保留优化器
-
打开 Amazon Glue 控制台(https://console.aws.amazon.com/glue/),然后以数据湖管理员、表创建者或已被授予表的 glue:UpdateTable
和 lakeformation:GetDataAccess
权限的用户身份登录。
-
在导航窗格的数据目录下,请选择表。
在表页面上,选择要为其启用快照保留优化器的 Iceberg 表,然后在操作菜单下,选择优化下的启用。
您也可以通过选中该表并打开表详细信息页面来启用优化。选择页面下半部的表优化选项卡,然后选择启用快照保留。
-
启用优化页面的优化配置下有两个选项:使用默认设置或自定义设置。如果您选择使用默认设置,则 Amazon Glue 会使用 Iceberg 表配置中定义的属性来确定快照保留期和要保留的快照数量。如果没有此配置,Amazon Glue 会将一个快照保留五天,并删除与过期快照关联的文件。
-
然后选择 Amazon Glue 可以代表您代入以运行优化器的 IAM 角色。有关 IAM 角色所需权限的详细信息,请参阅 表优化的先决条件 部分。
按照以下步骤更新一个现有的 IAM 角色:
-
要更新 IAM 角色的权限策略,请在 IAM 控制台中转到用于运行压缩的 IAM 角色。
-
在“添加权限”部分中,选择“创建策略”。在新打开的浏览器窗口中,创建将用于您的角色的新策略。
在“创建策略”页面上,选择 JSON 选项卡。将“先决条件”中显示的 JSON 代码复制到策略编辑器字段中。
-
如果您希望手动设置快照保留配置的值,请选择自定义设置。
-
选中将选定的 IAM 角色应用于选定的优化器选项,可将单个 IAM 角色用于所有已启用的优化器。
然后在快照保留配置下,选择使用 Iceberg 表配置中指定的值,或者为快照保留期(history.expire.max-snapshot-age-ms)和要保留的最小快照数量(history.expire.min-snapshots-to-keep)指定自定义值。
-
选择删除关联文件以在表优化器从表元数据中删除较早快照时删除底层文件。
如果未选中此选项,则在从表元数据中移除较早的快照时,其关联文件将作为孤立文件保留在存储中。
-
阅读警告声明,然后选择我确认以继续操作。
-
检查配置,然后选择启用优化。
等待几分钟,以便保留优化器运行并根据配置使较早的快照过期。
- Amazon CLI
-
要在 Amazon Glue 中为新 Iceberg 表启用快照保留功能,需要创建一个 retention
类型的表优化器,并将 table-optimizer-configuration
中的 enabled
字段设置为 true
。您可以使用 Amazon CLI 命令 create-table-optimizer
或 update-table-optimizer
来完成此操作。此外,您需要根据自己的需求指定保留配置字段,例如 snapshotRetentionPeriodInDays
和 numberOfSnapshotsToRetain
。
以下示例演示了启用快照保留优化器的方法。将账户 ID 替换为有效的 Amazon 账户 ID。将数据库名称和表名称替换为实际的 Iceberg 表名称和数据库名称。将 roleArn
替换为具有运行快照保留优化器所需权限的 IAM 角色的 Amazon 资源名称(ARN)和名称。
aws glue create-table-optimizer \
--catalog-id 123456789012
\
--database-name iceberg_db
\
--table-name iceberg_table
\
--table-optimizer-configuration '{"roleArn":"arn:aws:iam::123456789012
:role/optimizer_role
","enabled":'true',"retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":7
,"numberOfSnapshotsToRetain":3
,"cleanExpiredFiles":'true'
}}}'\
--type retention
此命令会为给定目录、数据库和区域中的指定 Iceberg 表创建保留优化器。table-optimizer-configuration 会指定要使用的 IAM 角色 ARN,启用该优化器并设置保留配置。在此示例中,它会将快照保留 7 天,至少保留 3 个快照,并清理已过期的文件。
-
snapshotRetentionPeriodInDays – 快照过期前将会保留的天数。默认值为 5
。
-
numberOfSnapshotsToRetain – 要保留的最小快照数量,即使已超过保留期亦不例外。默认值为 1
。
-
cleanExpiredFiles – 这是一个布尔值,指示是否在快照过期后删除已过期的数据文件。默认值为 true
。
如果设置为 true,则会从表的元数据中移除较早的快照,并删除其底层文件。如果将此参数设置为 false,则会从表的元数据中移除较早的快照,但其底层文件仍作为孤立文件保留在存储中。
- Amazon API
-
调用 CreateTableOptimizer
操作为表启用快照保留功能。
启用压缩后,表优化选项卡会显示以下压缩详细信息(大约 15–20 分钟后):
- 开始时间
-
快照保留优化器启动的时间。该值是一个采用 UTC 时间格式的时间戳。
- 运行时间
-
该时间指示优化器完成任务所花费的时间。该值是一个采用 UTC 时间格式的时间戳。
- Status
-
优化器运行的状态。值为成功或失败。
- 已删除数据文件数
已删除的文件总数。
- 已删除清单文件数
-
已删除的清单文件总数。
- 已删除清单列表数
-
已删除的清单列表总数。