【アパッチアイスバーグ】

Apache Iceberg(アイスバーグ) とは?

💡 データレイクに「秩序」を与える氷山のような存在
📌 このページのポイント
Apache Iceberg テーブルフォーマット Spark Trino Flink Presto クエリエンジン Apache Iceberg(テーブルフォーマット) スキーマ進化 / タイムトラベル / パーティション進化 メタデータファイル スナップショット / マニフェスト スキーマ情報 カラム定義 / パーティション仕様 Parquet ORC Avro データファイル
Apache Icebergのアーキテクチャ
ひよこ ひよこ

データレイクって、ファイルをどんどん放り込むだけじゃダメなの?

ペンギン先生 ペンギン先生

それだと「どのファイルが最新?」「カラム追加したらどうなる?」が分からなくなるんだ。Icebergはファイル群に"テーブルの秩序"を与えてくれるフォーマットだよ

ひよこ ひよこ

スキーマ進化って何がうれしいの?

ペンギン先生 ペンギン先生

たとえばカラムを追加しても過去のデータはそのまま読めるし、カラムのリネームも安全にできる。普通のデータレイクだと全データの書き換えが必要になったりするんだ

ひよこ ひよこ

タイムトラベルって名前がかっこいいね!

ペンギン先生 ペンギン先生

実際にかっこいい機能だよ。「昨日の時点のテーブル状態でクエリしたい」ができるんだ。間違ってデータを消しても巻き戻せるから安心だね

ひよこ ひよこ

Delta LakeやHudiとの違いは?

ペンギン先生 ペンギン先生

どれもオープンテーブルフォーマットだけど、Icebergはエンジン非依存の設計が強みだよ。Sparkだけじゃなく、Trino、Flink、Prestoなど色々なエンジンから同じテーブルを読み書きできるんだ

ひよこ ひよこ

実際にどこで使われてるの?

ペンギン先生 ペンギン先生

NetflixやApple、LinkedInなどの大規模データ基盤で採用されているよ。最近はSnowflakeやDatabricksもIceberg対応を強化していて、業界標準になりつつあるんだ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
Apache Iceberg」って出てきたら「データレイクテーブルとして賢く管理するオープン規格」と思えればだいたいOK!
📖 おまけ:英語の意味
「Apache Iceberg」 = アパッチ氷山
💬 氷山のように見えている部分はわずかで、水面下に膨大なメタデータ管理の仕組みが隠れているイメージだよ
← 用語集にもどる