ClickHouse
Data source: External ClickHouseEnterprise Edition+Présentation
ClickHouse peut être connecté à NocoBase en tant que base de données externe. Une fois la connexion établie, NocoBase lit les tables de données, les champs et les vues de ClickHouse, puis les utilise comme tables de données dans la source de données externe.
ClickHouse est particulièrement adapté aux requêtes analytiques, à l’analyse des journaux, aux statistiques de métriques et à l’affichage de rapports. Contrairement aux bases de données transactionnelles, il n’est pas adapté à une source de données utilisée pour ajouter, modifier et supprimer fréquemment des enregistrements métier dans NocoBase.
Scénarios adaptés à l’utilisation de ClickHouse comme source externe :
- Connecter des données analytiques telles que les journaux, les événements de suivi, les métriques et les données de gestion des risques
- Créer dans NocoBase des tableaux de bord opérationnels, des rapports statistiques ou des pages de requête
- Fournir aux équipes métier un point d’accès en lecture seule aux requêtes, afin de réduire les accès directs aux clients de base de données
- Contrôler les autorisations et afficher sous forme visuelle des données ClickHouse existantes
Dans NocoBase, il est recommandé d’utiliser ClickHouse comme source de données d’analyse en lecture seule. Ne l’utilisez pas comme source d’écriture pour les tables métier classiques et il n’est pas non plus recommandé de configurer dans les pages des opérations d’ajout, de modification ou de suppression.
Installation du plugin
Ce plugin est un plugin commercial. Pour connaître les modalités détaillées d’activation, consultez le guide d’activation des plugins commerciaux
Ajouter une source de données
Dans « Gestion des sources de données », cliquez sur « Add new », sélectionnez ClickHouse, puis renseignez les informations de connexion.

Voici les configurations de connexion courantes :
Le plugin ClickHouse se connecte via le protocole compatible MySQL. Avant la configuration, vérifiez que le service ClickHouse a activé le port compatible MySQL et que le réseau, le pare-feu ainsi que les autorisations du compte permettent à NocoBase d’y accéder.
Portée de la connexion
Les pages ClickHouse ne proposent pas de tableau de sélection « Collections ». La portée de la connexion est principalement contrôlée par Database, les autorisations du compte de connexion et Table prefix.
Si ClickHouse contient de nombreuses tables, il est recommandé de préparer pour NocoBase une database, un compte ou un préfixe de noms de tables dédié, afin de n’exposer que les tables nécessaires à la consultation et aux statistiques de l’application actuelle.
Une même source de données externe peut connecter au maximum 500 tables ou vues en une seule fois. Si ClickHouse contient de nombreux objets, il est recommandé de réduire la portée au moyen d’une database, des autorisations du compte ou de Table prefix.
Synchronisation et configuration des champs
La structure des tables ClickHouse externes est gérée côté base de données. NocoBase ne crée pas de champs, ne modifie pas les types de champs et ne supprime pas les champs réels dans ClickHouse externe.
Lorsque la structure d’une table change côté ClickHouse, vous pouvez exécuter « Sync from database » dans la source de données afin de relire les métadonnées des tables et des champs. La synchronisation met à jour les informations enregistrées dans NocoBase concernant les tables de données, les champs, les clés primaires, les clés uniques et le mappage des types de champs, mais elle ne supprime ni les tables ni les données réelles dans ClickHouse.
Après la synchronisation des champs, vous pouvez configurer dans NocoBase le libellé du champ, son type (Field type) et son composant (Field interface). Si vous devez créer des champs de relation NocoBase, les métadonnées de relation sont également enregistrées dans NocoBase et aucun véritable champ de clé étrangère n’est automatiquement ajouté aux tables ClickHouse.
Mappage des types de champs
NocoBase convertit les types de champs ClickHouse dans un style compatible MySQL, puis les mappe vers un Field type et un Field interface appropriés. Vous pouvez ajuster le mode d’affichage dans la configuration du champ.
Voici les mappages courants :
Certains types analytiques ou imbriqués de ClickHouse peuvent ne pas être directement mappables vers des champs métier ordinaires. Si un type de champ n’est pas pris en charge, vous pouvez d’abord créer côté ClickHouse une vue ou une table de requête adaptée à l’affichage, puis la connecter à NocoBase.
Clé primaire et identifiant unique des enregistrements
La clé de tri et la clé de partition de ClickHouse ne correspondent pas nécessairement à un identifiant métier unique. Pour les tables de données utilisées dans les blocs de page, il est tout de même recommandé de prévoir un champ permettant d’identifier chaque enregistrement de manière unique.
Si vous connectez une table ou une vue dépourvue de champ unique, vous devez définir manuellement « Record unique key » dans la configuration de la table de données. En l’absence d’un identifiant unique utilisable, les blocs de page peuvent ne pas parvenir à afficher correctement les détails des enregistrements et il n’est pas recommandé d’y configurer des opérations de modification ou de suppression.

Liens associés
- Base de données externe — Consulter la configuration générale et les instructions de gestion des bases de données externes
- Gestion des sources de données — Consulter l’accès aux sources de données et leur mode de gestion
- Champs des tables de données — Consulter les types de champs et les instructions de mappage des champs

