コンテンツにスキップ
Dev Classmethod Jp Snowflake Iceberg Rest Catalog Google Cloud Lakehouse

Snowflake から Google Cloud の Lakehouse ランタイム カタログに Apache Iceberg REST カタログ統合で接続

詳細

機能の概要

  • 2026年6月のアップデートでGA
  • Snowflake → Google Cloud Lakehouse ランタイムカタログ(REST EP: https://biglake.googleapis.com/iceberg/v1/restcatalog)への接続
  • 認証にWIF(Workload Identity Federation)を使用、サービスアカウント長期鍵不要

従来との違い

  • 従来:metadata.jsonパスを手動指定 → 更新のたびに最新パスを特定してテーブル定義を再設定するストアドプロシージャが必要
  • 今回:カタログ経由で自動検知 → メタデータパス管理不要

設定の流れ(要点)

  1. Google CloudでWIF Pool・OIDCプロバイダーを作成(SnowflakeのSYSTEM$GET_WORKLOAD_IDENTITY_ISSUER_URL()を使用)
  2. PyIcebergでLakehouseカタログにIcebergテーブルを作成
  3. SnowflakeでCATALOG INTEGRATIONオブジェクトを作成(CATALOG_SOURCE = ICEBERG_REST
  4. 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から参照する相互運用が実現