Skip to main content
ClickHouse は、Horizon が提供する Iceberg REST API (Apache Polaris を基盤とする) を介して、Snowflake Horizon Catalogに接続できます。 これにより、catalog_type = 'horizon' を指定した DataLakeCatalog データベースエンジンを使用して、ClickHouse から Snowflake 管理の Iceberg テーブルの読み取りと書き込みを行えます。 Horizon は Snowflake Open Catalog / セルフホスト型 Polaris と関連していますが、同じものではありません。
この機能はベータ版のため、次のコマンドで有効にしてください。 SET allow_experimental_database_iceberg = 1; (ClickHouse のバージョンによっては SET allow_database_iceberg = 1;) 。

前提条件

  • Snowflake 管理の Iceberg テーブルがある Snowflake アカウント
  • Horizon Iceberg REST エンドポイント: https://<organization>-<account>.snowflakecomputing.com/polaris/api/catalog
  • Iceberg テーブルに対する権限を持つ Snowflake ロール (INSERT を実行する場合は書き込み権限も必要)
  • 以下のいずれかによる認証:
    • プログラムによるアクセストークン (PAT)
    • アクセストークンと交換するキーペア JWT
    • 外部 OAuth アクセストークン (Bearer auth_header として使用)
  • ClickHouse からアクセス可能なオブジェクトストレージ (Snowflake から提供される認証情報を推奨)
  • DataLakeCatalog の Iceberg サポートを備えた ClickHouse

接続を作成する

warehouse には、Snowflake 仮想ウェアハウスではなく、Snowflake データベース名を指定する必要があります。 引用符で囲まれていない Snowflake 識別子は大文字で扱われます。

オプション B: 事前に交換した Bearer アクセストークン

Icebergテーブルのクエリ

実験的なテーブルネームスペースが有効になっていない限り、ネームスペース (スキーマ) とテーブルは通常、`SCHEMA.table` の形式で指定します。

書き込みパス

INSERT/UPDATE/DELETE (テーブル作成時は CREATE ICEBERG TABLE) の権限を持つロールを使用すると、 ClickHouse は同じカタログを介して書き込めます。
CREATE TABLE の正確な構文は、ご使用のバージョンでの REST カタログに対する ClickHouse Iceberg / DataLakeCatalog の書き込みサポートに従います。Snowflake の権限不足は、カタログの HTTP エラーとして報告されます。

MergeTree へのロード

最終更新日 2026年8月26日