AWSは2026年10月2日、Amazon S3 TablesがApache Iceberg V3のすべてのデータ型に対応したと発表しました。対応は2026年9月30日に始まり、半構造化データや地理空間データ、ナノ秒精度の時刻を扱えるようになりました。
扱えるデータが増加、ファイル形式には制限
今回の対応には、半構造化データ向けのバリアント型が含まれます。半構造化データは、一定の構造を持ちながら、項目の組み合わせなどが一律ではないデータです。AWSによると、バリアント型はこれを列ごとに保存する形式で扱えます。JSON文字列を解析する方法と比べ、データの読み書きであるI/Oを削減できるとしています。
このほか、ナノ秒精度のタイムスタンプ型、地理空間データ向けのジオメトリ型とジオグラフィー型に対応しました。列に入れるデータの型が未確定の場合に使うunknown型も対象です。
ただし、新しいV3データ型で使えるファイル形式はParquetのみです。ORCとAvroは対象外となります。また、バリアント、ジオメトリ、ジオグラフィー、ナノ秒タイムスタンプの各列は、コンパクション用のテーブルのソート順に指定できません。コンパクションは、データファイルをまとめる処理です。型が利用できることと、すべての処理で自由に使えることは分けて確認する必要があります。
V2から更新可能、元のバージョンには戻せない
AWSによると、既存のV2テーブルは、データを書き換えずにV3へ更新できます。一方、Apache Iceberg仕様はV3からV2へのダウングレードに対応していません。更新後に同じテーブルをV2へ戻す手順を前提にしないことが重要です。
AWSは更新前に、利用するすべてのエンジンがV3に対応しているか確認するよう求めています。エンジンとは、データを読み出したり処理したりするソフトウェアです。新データ型の利用要件はApache Spark 4.0以降で、AWS Glueでは6.0以降です。Amazon EMRリリース8.1以降で構築したエンジンも利用対象になります。
S3 Tablesは、V3の削除ベクトルと行リネージにも対応します。削除ベクトルは、削除情報の保存方法を変える仕組みです。V2では位置削除ファイルを使いますが、V3では情報を小さくまとめたバイナリ形式で扱います。その書き込みを有効にするには、merge-on-readモードの設定が必要です。
行リネージは、行の変更を追うための情報です。AWSによると、テーブル全体を走査せずに変更行を特定できます。関連するフィールドは、V3への更新直後ではなく、最初のデータ変更時に初期化されます。
情シス・会社への影響
提供地域は、Amazon S3 Tablesを提供するすべてのAWSリージョンです。Iceberg V3対応に伴う追加料金はなく、標準のS3 Tables料金が適用されます。追加料金がないことと、サービス利用自体が無料であることは別です。
V3テーブルでも、自動コンパクションとメンテナンスは継続します。S3 Tables CompactionはV3の削除ベクトルを処理し、行リネージ情報も保持します。
すでにS3 Tablesを利用している会社では、保存したいデータの種類を広げる選択肢になります。ただし、更新判断では新しい型の利点だけでなく、データを読み書きする処理全体の互換性を確認してください。社内の処理と委託先の処理を別々に管理している場合も、利用エンジンをまとめて洗い出すことが大切です。
V3テーブルはAmazon S3コンソールやAWS CLIから作成できます。AWS CLIは、コマンドでAWSを操作するためのツールです。作成手段が用意されていても、既存テーブルの更新は互換性確認を終えてから判断するのがよいでしょう。
いま確かめること
- 管理画面や構成資料で、対象テーブルのバージョンと、読み書きに使うすべてのエンジンを確認する。委託先が管理する処理も確認対象に含める。
- 新データ型を使う処理について、Apache Spark、AWS Glue、Amazon EMRの利用バージョンを確認する。
- 保存形式がParquetか確認する。バリアント、ジオメトリ、ジオグラフィー、ナノ秒タイムスタンプの各列を、コンパクション用のテーブルのソート順に指定していないかも点検する。
- 更新手順を見直し、V3からV2へのダウングレードを復旧策にしていないか確認する。削除ベクトルを使う場合はmerge-on-read設定も確かめる。
- 利用リージョンと標準のS3 Tables料金を確認する。行リネージの確認手順には、更新後の最初のデータ変更で初期化される点を反映する。