Skip to main content
ClickHouse peut se connecter au catalogue Horizon de Snowflake via l’API REST Iceberg exposée par Horizon (basée sur Apache Polaris). Vous pouvez ainsi lire et écrire des tables Iceberg gérées par Snowflake depuis ClickHouse à l’aide du moteur de base de données 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_header Bearer)
  • 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

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

Avec un rôle disposant des autorisations INSERT/UPDATE/DELETE (et CREATE ICEBERG TABLE lors de la création de tables), ClickHouse peut écrire via le même catalogue :
La syntaxe exacte de 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.

Chargement dans MergeTree

Dernière modification le 26 août 2026