S3 Tables は、テーブルの管理とパフォーマンスを向上させるためのメンテナンスオペレーションを提供します。次のオプションは、すべてのテーブルでデフォルトで有効になっています。オプションを編集または無効化するには、S3 テーブルのメンテナンス設定ファイルを指定します。
この設定を編集するには、s3tables:GetTableMaintenanceConfiguration
および s3tables:PutTableMaintenanceConfiguration
アクセス許可が必要です。
圧縮
圧縮は、小さいオブジェクトを小さいオブジェクトと大きいオブジェクトに組み合わせて、Iceberg クエリのパフォーマンスを向上させます。オブジェクトを組み合わせると、圧縮はテーブル内の行レベル削除の効果も適用します。Amazon S3 は、データアクセスパターンに最適なターゲットファイルサイズ、または指定した値に基づいてテーブルを圧縮します。圧縮されたファイルは、テーブルの最新のスナップショットとして書き込まれます。圧縮はすべてのテーブルでデフォルトで有効になっており、デフォルトのターゲットファイルサイズは 512MB です。
注記
圧縮は Apache Parquet ファイルタイプでのみサポートされています。
圧縮はテーブルレベルでのみ設定できます。圧縮には追加料金が発生します。詳細については、「Amazon S3 の料金
- AWS CLI を使用して圧縮ターゲットファイルサイズを設定するには
-
次の例では、
PutTableMaintenanceConfiguration
API を使用してターゲットファイルのサイズを 256MB に変更します。aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-bucket1
\ --type icebergCompaction \ --namespacemynamespace
\ --nametesttable
\ --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 \ --namespacemynamespace
\ --nametesttable
\ --value='{"status":"disabled","settings":{"icebergCompaction":{"targetFileSizeMB":256}}}'詳細については、AWS CLI コマンドリファレンスの「put-table-maintenance-configuration
」を参照してください。
スナップショットの管理
スナップショット管理は、テーブルのアクティブなスナップショットの数を決定します。これは、MinimumSnapshots
(デフォルトでは 1) と MaximumSnapshotAge
(デフォルトでは 120 時間) に基づいています。スナップショット管理は、これらの設定に基づいてテーブルスナップショットを有効期限切れにし、削除します。
スナップショットの有効期限が切れると、Amazon S3 はそのスナップショットによってのみ参照されるすべてのオブジェクトを最新でないものとしてマークします。これらの最新でないオブジェクトは、参照されていないファイル削除ポリシーの NoncurrentDays
プロパティで指定された日数が経過した後に削除されます。
注記
以前のオブジェクトの削除は永続的であり、これらのオブジェクトを復元する方法はありません。
最新でないとマークされたオブジェクトを表示または復旧するには、AWS Support に連絡する必要があります。AWS Support へのお問い合わせの詳細については、AWS Support ドキュメント
スナップショット管理は、そのテーブルのみを参照して、テーブルから削除するオブジェクトを決定します。テーブル外でこれらのオブジェクトへの参照が行われても、スナップショット管理によるオブジェクトの削除は妨げられません。
注記
スナップショット管理では、ブランチやタグベースの保持を含め、metadata.json
ファイル内の Iceberg テーブルプロパティとして、または ALTER TABLE SET TBLPROPERTIES
SQL コマンドを介して設定した保持値はサポートされていません。ブランチまたはタグベースの保持ポリシーを設定する場合、または PutTableMaintenanceConfiguration
API で設定された値よりも長い保持ポリシーを metadata.json
ファイルに設定する場合、スナップショット管理は無効になります。このような場合、S3 はスナップショットの有効期限が切れたり削除されたりしないため、ストレージ料金が発生しないように、スナップショットを手動で削除するか、Iceberg テーブルからプロパティを削除する必要があります。
スナップショット管理は、テーブルレベルでのみ設定できます。詳細については、「Amazon S3 の料金
- AWS CLI を使用してスナップショット管理を設定するには
-
次の例では、
PutTableMaintenanceConfiguration
API を使用してMinimumSnapshots
を 10 に設定し、MaximumSnapshotAge
を 2,500 時間に設定します。aws s3tables put-table-maintenance-configuration \ --table-bucket-arn arn:aws:s3tables:
us-east-1
:111122223333
:bucket/amzn-s3-demo-table-bucket \ --namespacemy_namespace
\ --namemy_table
\ --type icebergSnapshotManagement \ --value '{"status":"enabled","settings":{"icebergSnapshotManagement":{"minSnapshotsToKeep":10,"maxSnapshotAgeHours":2500}}}'
詳細については、AWS CLI コマンドリファレンスの「put-table-maintenance-configuration
考慮事項と制限事項
圧縮とスナップショット管理に関するその他の考慮事項と制限の詳細については、「メンテナンスジョブに関する考慮事項と制限事項」を参照してください。