S3 表类数据存储服务维护 - Amazon Simple Storage Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

S3 表类数据存储服务维护

S3 表类数据存储服务提供维护操作,以增强表的管理和性能。默认情况下为所有表启用以下选项。可以通过为 S3 表指定维护配置文件来编辑或禁用这些选项。

编辑此配置需要 s3tables:GetTableMaintenanceConfigurations3tables:PutTableMaintenanceConfiguration 权限。

压缩

压缩可将较小的对象组合成更少、更大的对象,以提高 Iceberg 查询性能。组合对象时,压缩还会应用表中行级删除的效果。Amazon S3 根据最适合数据访问规律的目标文件大小或您指定的值来压缩表。压缩后的文件将作为表的最新快照写入。默认情况下,对所有表启用压缩功能,默认目标文件大小为 512 MB。

注意

仅 Apache Parquet 文件类型支持压缩。

只能在表级配置压缩。压缩将产生额外费用。有关更多信息,请参阅 Amazon S3 定价中的定价信息。

使用 Amazon CLI 配置压缩目标文件大小

以下示例将使用 PutTableMaintenanceConfiguration API 将目标文件大小更改为 256 MB。

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-bucket1 \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"enabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'

有关更多信息,请参阅 Amazon CLI 命令参考 中的 put-table-maintenance-configuration

使用 Amazon CLI 禁用压缩

以下示例将使用 PutTableMaintenanceConfiguration API 禁用压缩。

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --type icebergCompaction \ --namespace mynamespace \ --name testtable \ --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'

有关更多信息,请参阅 Amazon CLI 命令参考 中的 put-table-maintenance-configuration

快照管理

快照管理确定表的活动快照的数量。这基于 MinimumSnapshots(默认为 1)和 MaximumSnapshotAge(默认为 120 小时)。快照管理会根据这些配置使表快照到期和移除表快照。

快照到期后,Amazon S3 会将仅由该快照引用的任何对象标记为非当前对象。这些非当前对象将在由未引用文件移除策略中的 NoncurrentDays 属性指定的天数后被删除。

注意

删除非当前对象是永久性的,无法恢复这些对象。

要查看或恢复已标记为非当前对象的对象,必须联系 Amazon Web Services 支持。有关联系 Amazon Web Services 支持 的信息,请参阅联系 AmazonAmazon Web Services 支持 文档

快照管理仅根据对该表的引用来确定要从表中删除的对象。在表之外对这些对象进行的任何引用都不会阻止快照管理删除对象。

注意

快照管理不支持您在 metadata.json 文件中或通过 ALTER TABLE SET TBLPROPERTIES SQL 命令配置为 Iceberg 表属性的保留值,包括基于分支或标签的保留。当您配置基于分支或标签的保留策略,或者在 metadata.json 文件上配置的保留策略长度超过通过 PutTableMaintenanceConfiguration API 配置的值时,快照管理将被禁用。在这些情况下,S3 不会使快照到期或移除快照,您需要手动删除快照或从 Iceberg 表中移除属性,以避免产生存储费用。

只能在表级配置快照管理。有关更多信息,请参阅 Amazon S3 定价中的定价信息。

使用 Amazon CLI 配置快照管理

以下示例将使用 PutTableMaintenanceConfiguration API 将 MinimumSnapshots 设置为 10,并将 MaximumSnapshotAge 设置为 2500 小时。

aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:us-east-1:111122223333:bucket/amzn-s3-demo-table-bucket \ --namespace my_namespace \ --name my_table \ --type icebergSnapshotManagement \ --value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'

有关更多信息,请参阅 Amazon CLI 命令参考 中的 put-table-maintenance-configuration

注意事项和限制

要详细了解压缩和快照管理的其它注意事项和限制,请参阅维护任务的注意事项和限制