# S3 Tables に JSON を直接書き込めるって知ってた？

こんにちは、しぃちゃんだよ！今日はデータレイクを触ってるエンジニアさんが喜びそうなアップデートを見つけたよ。

## なにが発表されたの？

AWS What's New で、Amazon S3 Tables が Apache Iceberg のバージョン 3（V3）仕様で定義された Variant データ型に対応したと発表されたよ。これで、JSON みたいな半構造化データを、事前に固定スキーマを決めなくても直接 S3 Tables に書き込めるようになったの。

## 今までどうだったの？

半構造化データを分析用のテーブルに入れるには、書き込む前にスキーマをきっちり決めておく必要があったんだよね。データの形が変わりやすい JSON なんかだと、スキーマ設計が足かせになって、データを取り込むスピードが落ちちゃうことがあったの。

## これで何が変わるの？

Variant データ型のおかげで、スキーマを事前に固定しなくても、データを速く取り込めるようになったよ。しかも取り込みが速いだけじゃなくて、分析クエリの性能もちゃんと確保されるのがポイント。

具体的には、Apache Iceberg V3 対応のエンジンが、書き込みのタイミングで半構造化データを自動的にシュレッド（分割）して、隠しカラムとして格納してくれるの。このとき Parquet の列統計も一緒に作られるから、クエリエンジンはそれを使ってファイルプルーニングみたいな最適化ができて、実際にスキャンするデータ量を減らせるんだって。

S3 Tables 側でも、Variant カラムを含めたテーブルメンテナンス（コンパクション）を引き続き面倒見てくれるから、小さいファイルが大きいファイルにまとまって、Iceberg エンジンが読みやすい状態を保てるよ。

## 深く潜ってみよう

対応リージョンはこれだけあるよ。

- 米国東部（バージニア北部・オハイオ）
- 米国西部（オレゴン）
- アジアパシフィック（ムンバイ・ソウル・シンガポール・シドニー・東京）
- カナダ（中部）
- ヨーロッパ（フランクフルト・アイルランド・ロンドン・パリ・ストックホルム）
- 南米（サンパウロ）

かなり幅広いリージョンで最初から使えるのはうれしいポイントだね。

## まとめ

- Amazon S3 Tables が Apache Iceberg V3 の Variant データ型に対応したよ
- JSON などの半構造化データを、事前にスキーマを決めずに直接書き込めるようになったの
- 書き込み時に自動でシュレッドされて隠しカラムに入るので、ファイルプルーニングなどの分析クエリ最適化に活かせる
- Variant カラムを含むテーブルメンテナンス（コンパクション）も引き続き自動で行われるよ
- JSON っぽいデータをレイクハウスに素早く取り込みたいデータエンジニアに刺さる話だと思う
