Dev Classmethod Jp Snowflake Iceberg Rest Catalog Google Cloud Lakehouse
Snowflake から Google Cloud の Lakehouse ランタイム カタログに Apache Iceberg REST カタログ統合で接続
- URL: https://dev.classmethod.jp/articles/snowflake-iceberg-rest-catalog-integration-google-cloud-lakehouse-runtime/
- 日付: 2026-06-06
- Tier: Tier 3
- 要旨: Snowflakeから Google Cloud の Lakehouse ランタイムカタログ(旧 BigLake Metastore)へ Apache Iceberg REST カタログ統合で接続し、Catalog-linked databaseを作成することで、SnowflakeとBigQueryの間でIcebergテーブルを手動のメタデータパス管理なしに共有できるようになった(GA)。
詳細
機能の概要
- 2026年6月のアップデートでGA
- Snowflake → Google Cloud Lakehouse ランタイムカタログ(REST EP:
https://biglake.googleapis.com/iceberg/v1/restcatalog)への接続 - 認証にWIF(Workload Identity Federation)を使用、サービスアカウント長期鍵不要
従来との違い
- 従来:metadata.jsonパスを手動指定 → 更新のたびに最新パスを特定してテーブル定義を再設定するストアドプロシージャが必要
- 今回:カタログ経由で自動検知 → メタデータパス管理不要
設定の流れ(要点)
- Google CloudでWIF Pool・OIDCプロバイダーを作成(Snowflakeの
SYSTEM$GET_WORKLOAD_IDENTITY_ISSUER_URL()を使用) - PyIcebergでLakehouseカタログにIcebergテーブルを作成
- SnowflakeでCATALOG INTEGRATIONオブジェクトを作成(
CATALOG_SOURCE = ICEBERG_REST) - Catalog-linked databaseを作成(namespace → schemaとして自動同期)
重要な設定ポイント
credential-mode=vended-credentialsでカタログ側がGCSの資格情報を払い出し → Snowflake側で外部ボリューム不要- PyIceberg接続時に
cloud-platformスコープを明示したOAuth2トークンが必要(auth.type=google単独だと401になる) roles/serviceusage.serviceUsageConsumerの付与がSYSTEM$VERIFY_CATALOG_INTEGRATION実行に必要
BigQueryとの連携
- Lakehouseランタイムカタログが管理するIcebergテーブルはBigQueryからも参照可能
- Snowflakeが作成・書き込みしたテーブルをBigQueryから参照する相互運用が実現