Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

каталог Polaris

Возможность в статусе бета

ClickHouse поддерживает интеграцию с несколькими каталогами (Unity, Glue, Polaris, и т. д.). В этом руководстве мы покажем, как выполнять запросы к данным с помощью ClickHouse и каталога Apache Polaris. Apache Polaris поддерживает таблицы Iceberg и таблицы Delta (через Generic Tables). На данный момент эта интеграция поддерживает только таблицы Iceberg.

Предварительные требования

Для подключения к каталогу Polaris вам понадобятся:

  • Snowflake Open Catalog (хостируемый Polaris) или самоуправляемый каталог Polaris
  • URI вашего каталога Polaris (например, https://<account-id>.<region>.aws.snowflakecomputing.com/polaris/api/catalog/v1 или http://polaris:8181/api/catalog/v1/oauth/tokens)
  • Учетные данные каталога (client ID и client secret)
  • URI OAuth-токенов для вашего экземпляра Polaris
  • Конечная точка объектного хранилища, где находятся ваши данные Iceberg (например, S3)
  • ClickHouse версии 26.1+

В случае Open Catalog, управляемого сервиса Polaris от Snowflake, ваш 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>'

Выполнение запросов к каталогу Polaris с помощью ClickHouse

После настройки подключения вы можете выполнять запросы к 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:

Запрос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