AI LAB / KEYWORD DICTIONARY

基礎知識

Apache Iceberg(Apache Iceberg)とは?

Apache Icebergは、大規模な分析データを複数の処理エンジンからSQLテーブルのように扱うための、オープンなテーブル形式です。

仕組みと使いどころ

Apache Icebergは、分散ファイルシステムやオブジェクトストア上のデータファイルを、スキーマ、パーティション設定、スナップショットなどのメタデータとともに管理します。Spark、Trino、Flink、Hiveなどの処理エンジンから利用でき、スキーマやパーティション構成の変更、過去のスナップショットを参照するタイムトラベル、バージョンのロールバックを支えます。コミット済みスナップショットを介して変更を原子的に公開するため、読み手には未完了の更新が見えません。ただし、Iceberg自体は分析処理を実行するエンジンではありません。また、行単位の削除など利用可能な機能は、テーブルの仕様バージョンと処理エンジンの対応状況に左右されます。

Apache Icebergの活用例

たとえば、こんな場面で

データレイク上のParquet、Avro、ORCファイルを分析用テーブルとして管理し、Sparkで更新したデータをTrinoから参照する構成に利用できます。更新前後を確認したい場合は、スナップショットを指定した参照も検討できます。

使うときのポイント

採用時は、利用する処理エンジンが対象のIceberg仕様バージョンと必要な機能に対応しているか確認します。仕様v1〜v3は採用済みですが、v4は資料確認時点で開発中です。

参考資料

Introduction - Apache Iceberg™ (新しいタブで開きます)Spec - Apache Iceberg™ (新しいタブで開きます)

用語の説明や活用例に関連する参考資料です。

READ & LEARN

用語を知ったら、活用を知る。

AI LABで、AIの動向や業務に取り入れるヒントを読む。

記事一覧を見る