S3 表类数据存储服务维护 - Amazon Simple Storage Service

S3 表类数据存储服务维护

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

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

压缩

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

注意

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

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

使用 AWS 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}}}'

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

使用 AWS 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}}}'

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

快照管理

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

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

注意

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

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

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

注意

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

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

使用 AWS 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}}}'

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

注意事项和限制

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

注意

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