[レポート]Snowflakeで実現するOpen Lakehouse:Apache Icebergのマルチエンジン相互運用とカタログ統合
2026年3月17日に、「Snowflake Tech Fast Track」が開催されました。
本記事はセッション「Snowflakeで実現するOpen Lakehouse:Apache Icebergのマルチエンジン相互運用とカタログ統合」のレポートブログです。
登壇者
- Snowflake合同会社 ソリューションエンジニアリング統括本部 ソリューションエンジニア 深森 健志郎 氏
セッション内容
データチームが抱える課題
データチームのタスクの一つは、利用者にデータをパフォーマンスよく提供することだが、サイロ化や構築・運用コストなど多くの課題もある。


これまでの一般的な構成はデータレイクとデータウェアハウスの組み合わせだが、それぞれにメリットと課題がある。
- データレイク
- 非構造形式など様々なフォーマットに対応する柔軟性を持つ
- 一方でガバナンスやパフォーマンスチューニングが難しい
- データウェアハウス
- SQL による分析・高いパフォーマンス・信頼性の高いトランザクション管理といった強みを持つ
- 一方でスキーマが決まるため扱えるデータやユースケースが限定される
この組み合わせでは昨今の多様なデータ状況への対応が難しく、両者の特徴を兼ね備えたレイクハウスという概念が登場している。

オープンテーブルフォーマットと Lakehouse の課題
- オープンテーブルフォーマット
- データレイクの相互参照性を維持しつつ、メタデータファイルを保持することでウェアハウスのような信頼性と高いパフォーマンスを実現する仕組み
- カタログが重要な役割を担っており、ファイルの最新状態をポイントすることでさまざまなツールから最新データにアクセスできる
- 一方で、これまではオープンテーブルフォーマットとエンジンが密に結合しており、実運用にはまだ課題が残っていた
- 例:各カタログ製品とエンジンが密に結合しており、エンジンの柔軟性に課題があった

Snowflake Horizon Catalog とは
こうした課題に対し、Snowflake では Enterprise レベルでオープンテーブルフォーマットを運用できる基盤として Horizon Catalog を提供している。
- OSS の Apache Polaris をベースとした Snowflake Open Catalog(マネージドサービス)が Horizon Catalog に統合されている
- 外部からも統一したカタログとして振る舞える点が特徴(他クライアントやフェデレーション構成への対応)
- Apache Polaris および Iceberg REST カタログという Open API を通じて相互運用性を実現目指す


Snowflake で実現する Open Lakehouse
Iceberg REST Catalog API
- Horizon Catalog は Iceberg REST API を提供しており、対応するクライアントであればどこからでもアクセスできる
- ポリシーの適用も可能

カタログフェデレーション
- すでに別のカタログを運用している場合でも、Horizon Catalog が管理する Iceberg テーブルを外部カタログから利用できる仕組み
- 現在 AWS Glue がサポートされており、Glue Catalog の配下に Horizon Catalog を接続する構成で、Glue Catalog 経由での参照が可能

外部管理の Iceberg テーブルの読み書き
- カタログフェデレーションとは逆のアプローチで、Snowflake から外部カタログをマウントする方法
- 任意の REST API カタログ上の外部管理された Iceberg テーブルに対して、DDL および DML のサポートを提供
- Iceberg REST API を提供するカタログに対し、Snowflake から書き込みも可能
- すでに他のカタログを運用している場合の選択肢の1つ

カタログリンクデータベース
- 外部管理をさらに使いやすくするオプション
- オープンカタログまたはリモート Iceberg REST カタログ経由での、Iceberg テーブルとの双方向接続 Snowflake データベース
- 外部カタログの名前空間と同期できるため、Snowflake 側で個別にテーブルを作成する必要がない

デモ
デモは以下のアーキテクチャ構成で実施されました。
Snowflake を中心とし、Iceberg REST Catalog API と Snowflake Horizon Catalog を介して、Spark・AWS(Athena)・Databricks の各エンジンと接続する構成です。

具体的には、以下の3パターンでの連携が紹介されました。
- Spark から Iceberg REST Catalog API へのクエリ
- 外部ボリュームを作成し、それを参照する Snowflake 管理の Iceberg テーブルを作成
- ローカル PC 上の Spark から標準ライブラリを使って HTTP リクエストを経由で接続
- Spark SQL で SELECT クエリを実行
- カタログフェデレーション(AWS)
- AWS Lake Formation のフェデレーション機能を利用
- カタログフェデレーション経由で Glue Catalog から読み取り
- Athena から JOIN クエリを実行
- REST カタログ統合による外部カタログとの連携(Databricks Unity Catalog)
- データの実態は Databricks 側にある構成
- Snowflake でカタログ作成時に Unity Catalog のエンドポイントを指定し、カタログリンクデータベースとして作成
- Snowflake から Databricks 管理の Iceberg テーブルへの読み取り・書き込みを実施
さいごに
Apache Iceberg の概要から、Iceberg REST API・カタログフェデレーション・カタログリンクデータベースを用いた外部エンジンとの統合まで、デモを交えつつご紹介いただいたセッションでした。
Iceberg や Horizon Catalog については引き続きキャッチアップしていければと思います。
また、関連する内容として Iceberg REST Catalog API での Snowflake 管理の Icebergテーブルへの外部エンジンからの書き込みも、早速プレビューとなっていました!








