DataLakeCatalog con catalog_type = 'horizon'.
Horizon está relacionado con Snowflake Open Catalog / Polaris autohospedado, pero no es lo mismo:
Dado que esta función está en beta, actívela con:
SET allow_experimental_database_iceberg = 1;
(o SET allow_database_iceberg = 1;, según la versión de ClickHouse).Requisitos previos
- Una cuenta de Snowflake con tablas Iceberg administradas por Snowflake
- Endpoint REST de Horizon Iceberg:
https://<organization>-<account>.snowflakecomputing.com/polaris/api/catalog - Un rol de Snowflake con privilegios sobre las tablas Iceberg (y privilegios de escritura si va a usar INSERT)
- Autenticación mediante una de las siguientes opciones:
- Token de acceso programático (PAT)
- JWT de par de claves intercambiado por un token de acceso
- Token de acceso OAuth externo (como
auth_headerde tipo bearer)
- Almacenamiento de objetos accesible desde ClickHouse (se recomiendan las credenciales proporcionadas)
- ClickHouse con soporte para DataLakeCatalog Iceberg
Crear una conexión
Opción A: token de acceso programático (recomendada)
warehouse debe ser el nombre de la base de datos de Snowflake (no de un warehouse virtual de Snowflake).
Los identifiers de Snowflake sin comillas se escriben en mayúsculas.
Opción B: Token de acceso de bearer intercambiado previamente
Consultar tablas Iceberg
El espacio de nombres (schema) y la tabla suelen especificarse como
`SCHEMA.table`, salvo que
estén habilitados los espacios de nombres de tabla experimentales.Ruta de escritura
CREATE TABLE depende de la compatibilidad de escritura de ClickHouse Iceberg / DataLakeCatalog para catálogos REST
en su versión; los errores de privilegios de Snowflake aparecen como errores HTTP del catálogo.