Skip to main content
ClickHouse fournit des fonctions de table pour interroger des données stockées dans des formats de table ouverts directement dans le stockage objet. Cela ne nécessite pas de connexion à un catalogue externe : les données sont interrogées sur place, de la même manière qu’AWS Athena lit depuis S3. Vous transmettez le chemin de stockage et les identifiants directement dans l’appel de fonction, et ClickHouse s’occupe du reste. Toute la syntaxe et toutes les fonctions de ClickHouse SQL sont disponibles, et les requêtes bénéficient de l’exécution parallélisée de ClickHouse et de son lecteur Parquet natif performant.
Server, local ou chDBLes étapes de ce guide peuvent être exécutées à l’aide d’une installation existante de ClickHouse server. Pour des requêtes ad hoc, vous pouvez aussi utiliser clickhouse-local et suivre le même workflow sans démarrer de serveur. Moyennant quelques ajustements mineurs, le processus peut également être effectué avec la distribution intégrée au processus de ClickHouse, chDB.
Les exemples suivants utilisent le dataset hits stocké au format lakehouse sur S3. Pour chaque format lakehouse, des fonctions dédiées existent pour chaque fournisseur de stockage objet.
La fonction de table iceberg (alias de icebergS3) lit les tables Iceberg directement depuis l’object storage. Des variantes existent pour chaque backend de stockage : icebergS3, icebergAzure, icebergHDFS et icebergLocal.Exemple de syntaxe :
Prise en charge de GCSLa variante S3 des fonctions peut être utilisée avec Google Cloud Storage (GCS).
Exemple :

Variante de cluster

La fonction icebergS3Cluster distribue les lectures sur plusieurs nœuds d’un cluster ClickHouse. Le nœud initiateur établit des connexions vers tous les nœuds et distribue dynamiquement les fichiers de données. Chaque nœud worker demande et traite des tâches jusqu’à ce que tous les fichiers aient été lus. icebergCluster est un alias de icebergS3Cluster. Des variantes existent également pour Azure (icebergAzureCluster) et HDFS (icebergHDFSCluster).Exemple de syntaxe :
Exemple (ClickHouse Cloud) :

Moteur de table

Plutôt que d’utiliser la table function dans chaque requête, vous pouvez créer une table persistante à l’aide du moteur de table Iceberg. Les données résident toujours dans l’object storage et sont lues à la demande — aucune donnée n’est copiée dans ClickHouse. L’avantage est que la table definition est stockée dans ClickHouse et peut être partagée entre utilisateurs et sessions sans que chaque utilisateur ait à spécifier le path de stockage et les credentials. Des variantes du moteur existent pour chaque backend de stockage : IcebergS3 (ou l’alias Iceberg), IcebergAzure, IcebergHDFS et IcebergLocal.Le table engine et la table function prennent tous deux en charge la mise en cache des données, en utilisant le même mécanisme de mise en cache que les moteurs de stockage S3, AzureBlobStorage et HDFS. De plus, un metadata cache stocke les informations des fichiers manifest en mémoire, réduisant ainsi les lectures répétées des métadonnées Iceberg. Ce cache est activé par défaut via le paramètre use_iceberg_metadata_files_cache.Exemple de syntaxe :Le moteur de table Iceberg est un alias de IcebergS3.
Prise en charge de GCSLa variante S3 du moteur de table peut être utilisée avec Google Cloud Storage (GCS).
Exemple :
Pour les fonctionnalités prises en charge, notamment le partition pruning, la schema evolution, le time travel, le caching et bien d’autres, consultez la matrice de compatibilité. Pour la référence complète, consultez la documentation de la fonction de table iceberg et du moteur de table Iceberg.
Dernière modification le 3 juillet 2026