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

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

最終更新:
💡 データレイクに「秩序」を与える氷山のような存在

大規模な分析データをテーブルとして管理するオープンなテーブルフォーマット。データファイルとメタデータを組み合わせ、列の変更や過去の状態の参照などを支える。

📌 このページのポイント
ファイル群をテーブルとして管理 対応エンジンがテーブルを利用 Spark Trino Flink Iceberg:テーブルの管理情報 列のID・構造 スナップショット Parquet データファイル ORC データファイル Avro データファイル タイムトラベル:保持された履歴が対象
管理情報がデータファイルを指す簡略図。使える操作やファイル形式の対応は、エンジン・版によって異なる。
ひよこ ひよこ
データレイクって、ファイルをどんどん放り込むだけじゃダメなの?
ペンギン先生 ペンギン先生
分析で表として使うなら、どのファイルがテーブルを構成しているか、列をどう解釈するかも管理したいよね。Icebergはデータファイルとメタデータを使って、その仕組みを提供するフォーマットだよ。
ひよこ ひよこ
スキーマ進化って何がうれしいの?
ペンギン先生 ペンギン先生
列の追加や名前の変更などを、既存のデータファイルを書き換えずに行えるよ。Icebergは列に固有のIDを付けて追跡するので、名前や順番が変わっても別の列と取り違えないようにしているんだ。
ひよこ ひよこ
パーティション進化とは別なの?
ペンギン先生 ペンギン先生
別の機能だよ。パーティションはデータの分け方で、たとえば日単位から時間単位へ変更できる。古いデータは以前の配置のまま、新しいデータは新しい仕様で書き込み、両方を管理できるんだ。
ひよこ ひよこ
タイムトラベルなら、いつでも過去に戻れる?
ペンギン先生 ペンギン先生
保持されているスナップショットを使って、過去の状態を参照できるよ。有効なスナップショットへの巻き戻しも可能。ただし期限切れにしたものは参照できないので、無制限の履歴やバックアップと考えず、保持方針を決めよう。
ひよこ ひよこ
どんなツールから使うの?
ペンギン先生 ペンギン先生
Spark、Flink、Trinoなど、対応するエンジンから使うよ。Iceberg自体がSQLを実行するデータベース製品というわけではない。読み書きや管理操作の対応は、エンジンやコネクターの版を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Apache Iceberg」って出てきたら「データレイクをテーブルとして賢く管理するオープン規格」と思えればだいたいOK!
📖 おまけ:英語の意味
「Apache Iceberg」 = Icebergは英語で「氷山」
💬 Apache Software Foundationのプロジェクト名だよ。Icebergという単語は「氷山」を意味するんだ

参考資料

← 用語集にもどる