【登壇資料】 「Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤」 というタイトルでDevelopersIO 2026 Osakaに登壇しました #devio2026

【登壇資料】 「Snowflake Horizon Catalog と Apache Iceberg で作る オープンなデータ基盤」 というタイトルでDevelopersIO 2026 Osakaに登壇しました #devio2026

DevelopersIO 2026 Osakaの登壇ブログです。Snowflake Horizon Catalog と Apache Iceberg のことについて話しました。
2026.09.29

こんにちは、データ事業本部のキタガワです。

DevelopersIO 2026 Osaka にて登壇したのでブログにも残しておきます。

スライド

以下かいつまんで紹介します。

file-515609ad9189292d89fe8f9830be4430

登壇時は「山登りが好きです」にしていましたが、しっくりこなかったので「山が好きです」に変更しました。

Snowflakeの「なんでも相談してください」の時に「なんでもは答えられませんが、知っていることは答えます」を言い損ねたのが今日一番の後悔です。

file-732b376e489c1c1393282197ae1144b0

ターゲットとしては Snowflake はちょっと使ってるけど Iceberg までは手が出せてないくらいの層をイメージしています。大仰なことを書いていますが、データ基盤構築そのものについてはそんなに語っていないです。Iceberg テーブルが複数エンジンから読み書きできることと、そのデモをお見せしました。

オープンなデータ基盤とは

file-3a006c62c89cc2ca6239361bd98148dd

従来だと例えば Snowflake に蓄えられたデータを Spark や Trino で使いたい場合は、データを S3 等にアンロードして対応していました。これだとデータの鮮度やガバナンスに問題があります。オープンなデータ基盤では同じデータファイルをさまざまなクエリエンジンから参照することができます。

Horizon Catalog と Iceberg を使うとこの辺りの課題が解決できます。

Apache Iceberg とは

https://iceberg.apache.org/spec/

file-04a4830e72abbd4527fdb1757e7913e1

Iceberg はテーブルフォーマットです。S3 などのオブジェクトストレージ上にファイルを持ちながら、ACIDトランザクションや非常に高速なクエリが実行できます。他にもいろいろな機能があります。

file-fb229553a1f6c44efebb5a184f739b98

階層構造を持たせたメタデータレイヤーによって前述の機能が実現されています。

file-cd1195404a9072a8d9afb1eff74c5f55

また Iceberg REST Catalog API が標準化されていることにより、クエリエンジン側はサービスを問わずデータにアクセスできるようになっています。

Snowflake Horizon Catalog とは

https://www.snowflake.com/en/product/features/horizon/

file-58982c74f718bc5ff7e21db62a957755

Horizon Catalog は Snowflake 内外のデータを統制・保護し、コンピュートリソースやAIモデルをデータにつなぐ統合カタログです。Apache Polaris を元に作られています。

Horizon Catalog を介することで外部エンジンからのクエリにもロールやポリシーを適用できます。

また Iceberg の vended credentials により、外部エンジンにS3などへのアクセス権限を持たせることなく、データの利用を許可できます。

Snowflake で Iceberg を試してみる

file-cf3064997425d366bb5063cab22bd772

現在 Snowflake で Iceberg テーブルを利用するときは、大きく3つの方法があります。

  • Snowflake Horizon Catalog を利用し、ストレージを Snowflake 外部に持つ
  • Snowflake Horizon Catalog を利用し、ストレージを Snowflake 内部に持つ
  • 外部のカタログを利用する

どの方法でも Snowflake と外部エンジンの相互利用は可能です。Snowflake Horizon Catlog を利用するとコンパクションなどの Iceberg テーブルのメンテナンスを Snowflake が行ってくれるという利点があります。

file-f8e4d453daea48ac6fea532dbb17cfc8

デモでは Snowflake で Iceberg テーブルを作り、 Amazon Athena の PySpark エンジンで書き込み、DuckDB で参照するという一連の流れを確かめました。

file-577e0d53cb0334249b44f5e74867b18c
Snowflake でテーブル作成

file-9b28bdfe39ca041c5dba3aa258448685
Amazon Athena で Insert

file-3859b2d8284424ecc71e1fb6a7fbd15b
DuckDB で SELECT

Amazon Athena や DuckDB は専用のサービスユーザーを用意し、PAT で認証しています。無事に複数エンジンからの参照を検証できました。

参考ブログ

https://dev.classmethod.jp/articles/snowflake-managed-iceberg-tables-write-from-athena/

https://dev.classmethod.jp/articles/snowflake-tables-iceberg-internal-storage-query-try/

まとめ

file-b7a184a846a1ce9ffce0eb2fa947e9c3

登壇を終えて

Snowflakeのことなら何でも相談してください。お待ちしております。


Snowflakeの導入支援はクラスメソッドに!

クラスメソッドでは Snowflake の導入を支援しております。
製品の詳細や支援の内容についてお気軽にお問い合わせください。

Snowflakeの詳細を見る

この記事をシェアする

カジュアル面談受付中

関連記事