DataLakeCatalog с параметром catalog_type = 'horizon'.
Horizon связан со Snowflake Open Catalog / самоуправляемым Polaris, но это не одно и то же:
Поскольку эта возможность находится в бета-версии, включите её:
SET allow_experimental_database_iceberg = 1;
(или SET allow_database_iceberg = 1; в зависимости от версии ClickHouse).Предварительные требования
- Аккаунт Snowflake с таблицами Iceberg под управлением Snowflake
- REST-конечная точка Horizon Iceberg:
https://<organization>-<account>.snowflakecomputing.com/polaris/api/catalog - Роль Snowflake с привилегиями для таблиц Iceberg (и привилегиями на запись, если вы будете выполнять INSERT)
- Аутентификация одним из следующих способов:
- токен программного доступа (PAT)
- JWT, созданный с помощью пары ключей и обмениваемый на токен доступа
- Токен доступа External OAuth (в качестве bearer
auth_header)
- Объектное хранилище, доступное из ClickHouse (рекомендуется использовать предоставляемые учетные данные)
- ClickHouse с поддержкой DataLakeCatalog Iceberg
Создание подключения
Вариант A: токен программного доступа (рекомендуется)
warehouse должно быть именем базы данных Snowflake (а не виртуального хранилища Snowflake).
Идентификаторы Snowflake без кавычек пишутся в верхнем регистре.
Вариант B: Предварительно полученный токен доступа Bearer
Запросы к таблицам Iceberg
Пространство имен (схема) и таблица обычно указываются в формате
`SCHEMA.table`, если не
включены экспериментальные пространства имен для таблиц.Запись данных
CREATE TABLE зависит от поддержки записи в ClickHouse Iceberg / DataLakeCatalog для REST-каталогов
в используемой версии; ошибки привилегий Snowflake отображаются как HTTP-ошибки каталога.