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
接続を作成する
オプション A: プログラムによるアクセストークン (推奨)
warehouse には、Snowflake 仮想ウェアハウスではなく、Snowflake データベース名を指定する必要があります。
引用符で囲まれていない Snowflake 識別子は大文字で扱われます。
オプション B: 事前に交換した Bearer アクセストークン
Icebergテーブルのクエリ
実験的なテーブルネームスペースが有効になっていない限り、ネームスペース (スキーマ) とテーブルは通常、
`SCHEMA.table` の形式で指定します。書き込みパス
CREATE TABLE の正確な構文は、ご使用のバージョンでの REST カタログに対する ClickHouse Iceberg / DataLakeCatalog の書き込みサポートに従います。Snowflake の権限不足は、カタログの HTTP エラーとして報告されます。