Google Cloud Next Tokyo:7/30、31 東京ビッグサイトにて開催!

Apache Iceberg とは

Last Updated: 05/01/2026

Apache Iceberg は、データレイクに保存されている大規模な分析データセット用に設計されたオープンソースのテーブル形式です。Iceberg テーブルは、データをファイルのコレクションとして管理し、最新のデータ アーキテクチャの信頼性、パフォーマンス、柔軟性を向上させます。Cloud Storage などのデータレイク ストレージの上層に位置するインテリジェント レイヤと考えることができ、大規模なデータセットに対してデータベースのような機能を提供します。Iceberg は、単にファイルを管理するのではなく、データファイルのコレクションとしてテーブルを管理し、スキーマの進化、タイムトラベル、より効率的なクエリ プランニングなどの機能を可能にします。これにより、データ アナリスト、データ サイエンティスト、エンジニアは、データレイク内のデータをより簡単かつ効率的に操作し、分析ワークロードを増やすことができます。

トランザクション データレイクとは

トランザクション データレイクは、データを大規模に保存するだけでなく、トランザクション オペレーションをサポートして、データの正確性と整合性を確保します。Iceberg テーブルでは、これらのプロパティ(ACID と総称される)が有効になります。

  • アトミック性: 各トランザクションが単一の単位として扱われ、完全に成功するか完全に失敗するかのどちらかであり、中途半端な状態にならないことを保証します。
  • 整合性: データレイクの定義済みルールに従って、書き込まれたすべてのデータが有効であることを確認します。
  • 独立性: 複数のトランザクションが互いに干渉することなく同時に実行される
  • 耐久性: トランザクションが送信されると、システム障害が発生した場合でも、データが失われたり破損したりしないようにします。

Iceberg テーブルの一般的なユースケース

Iceberg テーブルは、次のような最新のデータレイクやレイクハウスのさまざまなユースケースに適しています。

  • コンプライアンスとプライバシー: データ プライバシー法を施行するために頻繁な削除が必要なデータレイクに最適
  • レコードレベルの更新: 顧客返品によって変更される販売データなど、データセット全体を再公開せずに個々のレコードを更新できます。
  • 予測できない変更の管理: 連絡先情報が不明な間隔で変更される可能性がある顧客レコードなど、変化が緩やかなディメンション(SCD)テーブルをサポートします。
  • タイムトラベルと監査: テーブル スナップショットの履歴を保持し、ユーザーが履歴バージョンをクエリして傾向分析を行ったり、ロールバックして問題を修正したりできるようにします。
  • ML: 信頼性の高いモデルのトレーニングに不可欠な、一貫性のあるバージョン管理されたデータセットを提供

Iceberg テーブルのユーザー

さまざまな技術担当者が Iceberg テーブルを活用して、大規模なデータセットを効率的に管理しています。

  • データ エンジニアと管理者: Iceberg テーブルを使用して、スケーラブルで信頼性の高いストレージ システムを設計、構築できます。
  • データ アナリストとデータ サイエンティスト: Iceberg テーブルを使用して、使い慣れた SQL と再現可能な過去のスナップショットで大規模なデータセットを分析します。

Iceberg テーブルの主なメリット

標準 SQL に精通しているユーザーは、新しい言語を習得しなくても、複雑なデータレイク オペレーションを実行できます。

クエリを中断することなく、データ構造をシームレスに変更(列の追加、名前変更、削除)できます。

変更データ キャプチャ(CDC)をサポートしているため、ユーザーは前回の実行以降に変更されたデータのみを処理して効率を向上させることができます。

メタデータを使用して不要なファイルを削除し、述語プッシュダウンなどの手法でクエリの実行を高速化します。

Spark、Flink、Hive、Presto などのさまざまなエンジンに対応。

Apache Iceberg テーブルの仕組み

Apache Iceberg は、データレイク内の実際のデータファイルの上にあるメタデータレイヤを導入します。このメタデータは、従来のファイルベースのシステムよりも整理された堅牢な方法でテーブルの構造とコンテンツをトラッキングします。主なメカニズムは次のとおりです。

  • メタデータ管理: Iceberg は、テーブルのスキーマ、パーティション、データファイルの場所を記述するメタデータ ファイルを保持します。これらのメタデータ ファイルは通常、データとともにデータレイクに保存されます。
  • カタログ: Iceberg はカタログを使用して、各テーブルの現在のメタデータの場所をトラッキングします。このカタログは、Hive Metastore などのサービス、ファイル システムベースの実装、またはクラウドネイティブのカタログ サービスにすることができます。
  • テーブル スナップショット: テーブルに変更が加えられるたび(データの追加、データの削除、スキーマの進化など)、Iceberg はテーブルのメタデータの新しいスナップショットを作成します。これらのスナップショットは変更不可であり、テーブルの状態の履歴レコードを提供します。
  • マニフェスト リストとマニフェスト ファイル: 各スナップショットはマニフェスト リストを指し、マニフェスト リストは 1 つ以上のマニフェスト ファイルをリストします。マニフェスト ファイルには、個々のデータファイルに関するメタデータが含まれています。これには、ファイルの場所、パーティション値、統計情報(行数や値の範囲など)が含まれます。

Apache Iceberg のアーキテクチャ

Apache Iceberg のアーキテクチャには、連携して動作するいくつかの主要コンポーネントが含まれます。

  • データレイク ストレージ: Cloud Storage などの基盤となるストレージ レイヤです。実際のデータファイル(Parquet、ORC、Avro などの形式)と Iceberg のメタデータ ファイルが保存されます。
  • Iceberg REST カタログ: このコンポーネントは、Iceberg テーブルのメタデータ ポインタの管理を担当します。各テーブルのメタデータの現在のバージョンを追跡する中央レジストリとして機能します。一般的なカタログの実装には、次のようなものがあります。
  • Hive メタストア: 広く使用されているメタデータ リポジトリで、Hadoop ベースのシステムでよく使用されます。
  • ファイル システム カタログ: カタログ情報がデータレイクのファイル システムに直接保存されるシンプルな実装。
  • クラウドネイティブ カタログ サービス: クラウド プロバイダがメタデータの保存と管理のために提供するマネージド サービス。
  • Iceberg メタデータ: テーブルの構造とデータを追跡するメタデータ ファイルの複数のレイヤで構成されます。
  • テーブル メタデータ ファイル: このファイルは現在のマニフェスト リストを指し、スキーマやパーティショニング仕様など、テーブルに関する概要情報が含まれています。
  • マニフェスト リスト: このファイルには、テーブルの特定のスナップショット内のデータファイルに関するメタデータを含むマニフェスト ファイルが一覧表示されます。
  • マニフェスト ファイル: これらのファイルには、個々のデータファイルに関する詳細情報(場所、パーティション値、統計情報など)が含まれます。
  • クエリエンジンと処理フレームワーク: Iceberg テーブルとやり取りしてデータを読み書きするツールです。これらのエンジンは、Iceberg のメタデータを活用してクエリの計画と実行を最適化します。
  • コンピューティング リソース: クエリエンジンと処理フレームワークを実行する基盤となるインフラストラクチャ(仮想マシンやコンテナなど)です。

Apache Iceberg とデータレイク

Apache Iceberg は、信頼性とパフォーマンスに優れたテーブル形式を追加することで、データレイクの機能を大幅に強化します。Iceberg のようなテーブル形式のない従来のデータレイクでは、データは単なるファイルの集まりであることがよくあります。これにより、次のような課題が生じます。

  • スキーマの進化の欠如: データの構造を変更するのは複雑でエラーが発生しやすい
  • 整合性のない読み取り: 同時書き込みオペレーションにより、クエリが古いデータと新しいデータの混在を読み取る可能性がある
  • クエリ パフォーマンスの低下: クエリエンジンをガイドするメタデータがないと、データの大部分をスキャンしなければならないことがよくあります。
  • データ マネジメントの難しさ: タイムトラベルやバージョニングなどの機能がすぐに利用できない

Iceberg は、データレイクの上に構造化されたレイヤを提供することで、これらの制限に対処します。データレイクにデータベースのような機能をもたらし、より強力で管理しやすいデータ レイクハウスに変換します。Iceberg では、テーブルを豊富なメタデータを持つファイルのコレクションとして管理することで、次のことが可能になります。

  • 信頼性と一貫性のあるデータアクセス: ACID プロパティによりデータの完全性が確保される
  • 効率的なクエリ処理: メタデータ ドリブンのデータ スキップとフィルタリングにより、クエリが高速化されます。
  • 柔軟なデータ マネジメント: スキーマの進化とタイムトラベルにより、データのメンテナンスと分析が簡素化される
  • 相互運用性: Iceberg は、データレイクで一般的に使用されるさまざまなクエリエンジンや処理フレームワークと互換性があるように設計されています。

Google Cloud でビジネスの課題を解決する

新規のお客様には、Google Cloud で使用できる無料クレジット $300 分を差し上げます。
お客様独自の課題については、Google Cloud のセールス スペシャリストまで詳しくご相談ください。

Google Cloud と Apache Iceberg

Google Cloud は、Apache Iceberg を活用するための堅牢な環境を提供します。Google Cloud のいくつかのサービスは Iceberg との統合に優れており、ユーザーは強力でスケーラブルなデータレイクハウス ソリューションを構築できます。

次のステップ

$300 分の無料クレジットと 20 以上の無料枠プロダクトを活用して、Google Cloud で構築を開始しましょう。

  • Google Cloud プロダクト
  • 100 種類を超えるプロダクトをご用意しています。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。また、すべてのお客様に 25 以上のプロダクトを無料でご利用いただけます(毎月の使用量上限があります)。
Google Cloud