

# 更新快照保留优化器
<a name="update-snapshot-retention"></a>

 您可以使用 AWS Glue 控制台、AWS CLI 或 UpdateTableOptimizer API 更新特定 Apache Iceberg 表的现有快照保留优化器配置。

------
#### [ Console ]

**更新快照保留配置**

1. 登录 AWS 管理控制台，然后打开 AWS Glue 控制台，网址为：[https://console.aws.amazon.com/glue/](https://console.aws.amazon.com/glue/)。

1. 选择**数据目录**，然后选择**表**。从表列表中，选择要更新快照保留优化器配置的 Iceberg 表。

1. 在**表详细信息**页面的下半部分，选择**表优化**选项卡，然后选择**编辑**。您还可以从该页面右上角的**操作**菜单中，选择**优化**下的**编辑**。

1.  然后在**编辑优化**页面上，进行所需的更改。

1.  选择**保存**。

------
#### [ AWS CLI ]

 要使用 AWS CLI 更新快照保留优化器，您可以使用以下命令：

```
aws glue update-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', "vpcConfiguration":{"glueConnectionName":{{"glue_connection_name"}}},"retentionConfiguration":{"icebergConfiguration":{"snapshotRetentionPeriodInDays":{{7}},"numberOfSnapshotsToRetain":{{3}},"cleanExpiredFiles":{{'true'}}}}}' \
 --type retention
```

 此命令会更新给定目录、数据库和区域中指定表的保留配置。关键参数如下：
+  snapshotRetentionPeriodInDays – 快照过期前将会保留的天数。默认值为 `1`。
+ numberOfSnapshotsToRetain – 要保留的最小快照数量，即使已超过保留期亦不例外。默认值为 `5`。
+ cleanExpiredFiles – 这是一个布尔值，指示是否在快照过期后删除已过期的数据文件。默认值为 `true`。

   如果设置为 true，则会从表的元数据中移除较早的快照，并删除其底层文件。如果将此参数设置为 false，则会从表的元数据中移除较早的快照，但其底层文件仍作为孤立文件保留在存储中。

------
#### [ API ]

您可以使用 `UpdateTableOptimizer` API 来更新表优化器。您可以使用此 API 来更新有关压缩、保留或孤立文件删除功能的现有表优化器配置。请求参数包括：
+ catalogId（必填项）：包含该表的目录的 ID 
+  databaseName（可选）：包含该表的数据库的名称 
+  tableName（可选）：该表的名称 
+  type（必填项）：表优化器的类型（压缩、保留或孤立文件删除） 
+  retentionConfiguration（必填项）：更新后的表优化器配置，包括角色 ARN、启用状态、保留配置和孤立文件删除配置。

------