Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Polaris カタログ

ベータ機能

ClickHouse は複数のカタログ (Unity、Glue、Polaris など) とのインテグレーションをサポートしています。このガイドでは、ClickHouse と Apache Polaris Catalog を使用してデータをクエリする手順を説明します。 Apache Polaris は Iceberg テーブルと Delta Tables (Generic Tables 経由) をサポートしていますが、現時点でこのインテグレーションでサポートされているのは Iceberg テーブルのみです。

前提条件

Polaris カタログに接続するには、次のものが必要です。

  • Snowflake Open Catalog (ホスト型の Polaris) またはセルフホストの Polaris カタログ
  • Polaris カタログの URI (例: https://<account-id>.<region>.aws.snowflakecomputing.com/polaris/api/catalog/v1 または http://polaris:8181/api/catalog/v1/oauth/tokens)
  • カタログの認証情報 (client ID と client secret)
  • Polaris インスタンスの OAuth トークン URI
  • Iceberg データが保存されているオブジェクトストアのストレージエンドポイント (例: S3)
  • ClickHouse 26.1 以降

Snowflake のマネージド Polaris である Open Catalog では、URI に /polaris が含まれます。一方、セルフホストの場合は含まれないことがあります。

Polaris と ClickHouse の接続を作成する

ClickHouse を Polaris カタログに接続するデータベースを作成します。

CREATE DATABASE polaris_catalog
ENGINE = DataLakeCatalog('https://<catalog_uri>/api/catalog/v1')
SETTINGS
    catalog_type = 'rest',
    catalog_credential = '<client-id>:<client-secret>',
    warehouse = 'snowflake',
    auth_scope = 'PRINCIPAL_ROLE:ALL',
    oauth_server_uri = 'https://<catalog_uri>/api/catalog/v1/oauth/tokens',
    storage_endpoint = '<storage_endpoint>'

ClickHouse を使って Polaris カタログをクエリする

接続が確立されたら、Polaris に対してクエリを実行できます。

クエリsql
USE polaris_catalog;
SHOW TABLES;

テーブルをクエリするには、次を実行します。

クエリsql
SELECT count(*) FROM `polaris_db.my_iceberg_table`;

テーブルの DDL を確認するには、次を実行します。

SHOW CREATE TABLE `polaris_db.my_iceberg_table`;

Polaris から ClickHouse にデータを読み込む

Polaris から ClickHouse のテーブルにデータを読み込むには、まず必要なスキーマでターゲットテーブルを作成し、その後 Polaris のテーブルから INSERT します。

クエリsql
CREATE TABLE my_clickhouse_table
(
    -- Iceberg テーブルに合わせてカラムを定義
    `id` Int64,
    `name` String,
    `event_time` DateTime64(3)
)
ENGINE = MergeTree
ORDER BY id;

INSERT INTO my_clickhouse_table
SELECT * FROM polaris_catalog.`polaris_db.my_iceberg_table`;
Navigation