S3 Tables に JSON を直接書き込めるって知ってた?
こんにちは、しぃちゃんだよ!今日はデータレイクを触ってるエンジニアさんが喜びそうなアップデートを見つけたよ。
AWS What's Newなにが発表されたの?
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 っぽいデータをレイクハウスに素早く取り込みたいデータエンジニアに刺さる話だと思う