

# 维护任务的注意事项和限制
<a name="s3-tables-considerations"></a>

Amazon S3 提供维护操作，以提高 S3 表或表存储桶的性能。这些选项为文件压缩、快照管理和未引用文件移除。以下是这些管理选项的限制和注意事项。

**Topics**
+ [压缩注意事项](#s3-tables-compaction-considerations)
+ [快照管理注意事项](#s3-tables-snapshot-considerations)
+ [未引用文件移除的注意事项](#s3-tables-unreferenced-file-removal-considerations)
+ [S3 表和表存储桶维护操作限制和相关 API](#s3-tables-maintenance-limits)

## 压缩注意事项
<a name="s3-tables-compaction-considerations"></a>

以下注意事项适用于压缩。有关压缩的更多信息，请参阅 [表维护](s3-tables-maintenance.md)。
+ 仅 Apache Parquet、Avro 和 ORC 文件类型支持压缩。
+ 默认情况下，压缩以 Apache Parquet 格式写入新文件。要改为将文件压缩为 Avro 或 ORC 格式，请将 `write.format.default` 表属性设置为 `avro` 或 `orc`。
+ 压缩不支持数据类型：`Fixed`。
+ 压缩不支持压缩类型：`brotli`、`lz4`。
+ 压缩按照自动时间表进行。如果您想要防止与压缩关联的费用，则可以使用 [PutTableMaintenanceConfiguration](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3Buckets_PutTableMaintenanceConfiguration.html) API 操作手动为表禁用压缩功能。

**注意**  
Apache Iceberg 使用乐观并发模型以及冲突检测来仲裁写入事务。使用乐观并发，用户和压缩事务可能会发生冲突，而导致事务失败。如果发生冲突，压缩任务将在失败时重试。建议您的管道也使用重试逻辑来解决因操作冲突而失败的事务。

## 快照管理注意事项
<a name="s3-tables-snapshot-considerations"></a>

以下注意事项适用于快照管理。有关快照管理的更多信息，请参阅 [表维护](s3-tables-maintenance.md)。
+ 只有在同时满足以下两个条件时，才会保留快照：要保留的最小快照数量和指定的保留期。
+ 快照管理从 Apache Iceberg 中删除到期的快照元数据，从而防止对到期快照进行时空旅行查询，并选择性删除关联的数据文件。
+ 快照管理不支持您在 `metadata.json` 文件中或通过 `ALTER TABLE SET TBLPROPERTIES` SQL 命令配置为 Iceberg 表属性的保留值，包括基于分支或标签的保留。当您配置基于分支或标签的保留策略，或者在 `metadata.json` 文件上配置的保留策略长度超过通过 `PutTableMaintenanceConfiguration` API 配置的值时，快照管理将被禁用。在这些情况下，S3 不会使快照到期或移除快照，您需要手动删除快照或从 Iceberg 表中移除属性，以避免产生存储费用。

## 未引用文件移除的注意事项
<a name="s3-tables-unreferenced-file-removal-considerations"></a>

以下注意事项适用于未引用文件移除。有关未引用文件移除的更多信息，请参阅 [表存储桶的维护](s3-table-buckets-maintenance.md)。
+ 未引用文件移除会删除 Iceberg 元数据不再引用的数据和元数据文件（如果其创建时间早于保留期）。

## S3 表和表存储桶维护操作限制和相关 API
<a name="s3-tables-maintenance-limits"></a>




| 维护操作 | 属性 | 是否可在表存储桶级进行配置？ | 是否可在表级进行配置？ | 默认值 | 最小值 | 相关的 Iceberg 维护例程 | 控制 S3 表类数据存储服务 API | 
| --- | --- | --- | --- | --- | --- | --- | --- | 
| 压缩 | targetFileSizeMB | 否 | 是 | 512 MB | 64MB | [https://iceberg.apache.org/docs/latest/maintenance/#compact-data-files](https://iceberg.apache.org/docs/latest/maintenance/#compact-data-files) | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| 快照管理 | minimumSnapshots | 否 | 是 | 1 | 1 | [https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots) retainLast | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| 快照管理 | maximumSnapshotAge | 否 | 是 | 120 小时 | 1 小时 | [https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots](https://iceberg.apache.org/docs/latest/maintenance/#expire-snapshots) expireOlderThan | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableMaintenanceConfiguration.html) | 
| 未引用文件移除 | unreferencedDays | 是 | 否 | 3 天 | 1 天 | [https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files](https://iceberg.apache.org/docs/latest/maintenance/#delete-orphan-files) | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html) | 
| 未引用文件移除 | nonCurrentDays | 是 | 否 | 10 天 | 1 天 | 不适用 | [https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_s3tables_PutTableBucketMaintenanceConfiguration.html) | 

**注意**  
S3 表类数据存储服务应用的 parquets row-group-default 为 128 MB。