DataLakeCatalog avec catalog_type = 'horizon'.
Horizon est lié à Snowflake Open Catalog / Polaris auto-hébergé, mais il s’agit de solutions distinctes :
Cette fonctionnalité étant en bêta, activez-la avec :
SET allow_experimental_database_iceberg = 1;
(ou SET allow_database_iceberg = 1; selon votre version de ClickHouse).Prérequis
- Un compte Snowflake avec des tables Iceberg gérées par Snowflake
- Endpoint REST Horizon Iceberg :
https://<organization>-<account>.snowflakecomputing.com/polaris/api/catalog - Un rôle Snowflake disposant de privilèges sur les tables Iceberg (et de privilèges d’écriture si vous effectuez un INSERT)
- Authentification via l’un des éléments suivants :
- Jeton d’accès programmatique (PAT)
- JWT à paire de clés échangé contre un jeton d’accès
- Jeton d’accès OAuth externe (en tant qu’en-tête
auth_headerBearer)
- Stockage d’objets accessible depuis ClickHouse (les identifiants fournis sont recommandés)
- ClickHouse avec prise en charge d’Iceberg dans DataLakeCatalog
Création d’une connexion
Option A : jeton d’accès programmatique (recommandé)
warehouse doit correspondre au nom de la base de données Snowflake (et non à un entrepôt virtuel Snowflake).
Les identifiants Snowflake non entre guillemets sont en majuscules.
Option B : jeton d’accès Bearer obtenu au préalable
Interroger des tables Iceberg
L’espace de noms (schéma) et la table sont généralement référencés sous la forme
`SCHEMA.table`, sauf
si les espaces de noms de table expérimentaux sont activés.Chemin d’écriture
CREATE TABLE dépend de la prise en charge des écritures ClickHouse Iceberg / DataLakeCatalog pour les REST catalogues
dans votre version ; les problèmes de privilèges Snowflake se manifestent sous forme d’erreurs HTTP du catalogue.