メンテナンスジョブに関する考慮事項と制限事項
Amazon S3 には、S3 テーブルまたはテーブルバケットのパフォーマンスを向上させるためのメンテナンスオペレーションが用意されています。これらのオプションは、ファイル圧縮、スナップショット管理、および参照されていないファイルの削除です。これらの管理オプションの制限事項と考慮事項を次に示します。
圧縮に関する考慮事項
圧縮には以下の考慮事項が適用されます。圧縮の詳細については、「テーブルのメンテナンス」を参照してください。
-
圧縮は Apache Parquet、Avro、および ORC ファイルタイプでサポートされています。
-
圧縮は、デフォルトで新しいファイルを Apache Parquet 形式で書き込みます。代わりにファイルを Avro または ORC 形式に圧縮するには、
write.format.default
テーブルプロパティをavro
またはorc
に設定します。 -
圧縮はデータ型
Fixed
をサポートしていません。 -
圧縮は圧縮タイプ
brotli
、lz4
をサポートしていません。 圧縮は自動スケジュールで行われます。圧縮に関連する料金を回避するには、PutTableMaintenanceConfiguration API オペレーションを使用してテーブルに対して手動で無効にできます。
注記
Apache Iceberg は、オプティミスティック同時実行モデルと競合検出を使用して、書き込みトランザクションを調停します。オプティミスティック同時実行では、ユーザートランザクションと圧縮トランザクションが競合し、トランザクションが失敗する可能性があります。競合が発生すると、圧縮ジョブは失敗時に再試行されます。さらに、パイプラインで再試行ロジックを使用して、競合するオペレーションで失敗したトランザクションを克服することもお勧めします。
スナップショット管理に関する考慮事項
スナップショット管理には、以下の考慮事項が適用されます。スナップショット管理の詳細については、「テーブルのメンテナンス」を参照してください。
-
スナップショットは、保持するスナップショットの最小数と指定された保持期間という両方の基準が満たされた場合にのみ保持されます。
-
スナップショット管理では、Apache Iceberg から期限切れのスナップショットメタデータを削除し、期限切れのスナップショットのタイムトラベルクエリを防ぎ、オプションで関連するデータファイルを削除します。
-
スナップショット管理では、ブランチやタグベースの保持を含め、
metadata.json
ファイル内の Iceberg テーブルプロパティとして、またはALTER TABLE SET TBLPROPERTIES
SQL コマンドを介して設定した保持値はサポートされていません。ブランチまたはタグベースの保持ポリシーを設定する場合、またはPutTableMaintenanceConfiguration
API で設定された値よりも長い保持ポリシーをmetadata.json
ファイルに設定する場合、スナップショット管理は無効になります。このような場合、S3 はスナップショットの有効期限が切れたり削除されたりしないため、ストレージ料金が発生しないように、スナップショットを手動で削除するか、Iceberg テーブルからプロパティを削除する必要があります。
参照されていないファイルの削除に関する考慮事項
参照されていないファイルの削除には、以下の考慮事項が適用されます。参照されていないファイルの削除の詳細については、「テーブルバケットのメンテナンス」を参照してください。
-
参照されていないファイルを削除すると、作成時刻が保持期間より前の場合、Iceberg メタデータによって参照されなくなったデータとメタデータファイルが削除されます。
S3 テーブルおよびテーブルバケットのメンテナンスオペレーションの制限と関連する API
メンテナンスオペレーション | プロパティ | テーブルバケットレベルで設定可能か。 | テーブルレベルで設定可能か。 | デフォルト値 | 最小値 | 関連する Iceberg メンテナンスルーチン | S3 Tables API の制御 |
---|---|---|---|---|---|---|---|
圧縮 | targetFileSizeMB |
なし | あり | 512MB | 64MB |
|
PutTableMaintenanceConfiguration |
スナップショットの管理 | minimumSnapshots |
なし | あり | 1 | 1 | ExpireSnapshots retainLast |
PutTableMaintenanceConfiguration |
スナップショットの管理 | maximumSnapshotAge |
なし | あり | 120 時間 | 1 時間 | ExpireSnapshots expireOlderThan |
PutTableMaintenanceConfiguration |
参照されていないファイルの削除 | unreferencedDays |
あり | なし | 3 日 | 1 日 | deleteOrphanFiles |
PutTableBucketMaintenanceConfiguration |
参照されていないファイルの削除 | nonCurrentDays |
あり | なし | 10 日 | 1 日 | 該当なし | PutTableBucketMaintenanceConfiguration |
注記
S3 Tables は、parquet の row-group-default サイズである 128 MB を適用します。