Passer au contenu principal
Les collections nommées permettent de stocker des ensembles de paires clé-valeur utilisés pour configurer des intégrations avec des sources externes. Vous pouvez utiliser des collections nommées avec des dictionnaires, des tables, des fonctions de table et le stockage d’objets. Les collections nommées peuvent être configurées via du DDL ou dans des fichiers de configuration, et sont prises en compte au démarrage de ClickHouse. Elles simplifient la création d’objets et permettent de masquer les informations d’authentification aux utilisateurs sans accès administratif. Les clés d’une collection nommée doivent correspondre aux noms des paramètres de la fonction, du moteur de table, de la base de données, etc. correspondants. Dans les exemples ci-dessous, un lien vers la liste des paramètres est fourni pour chaque type. Les paramètres définis dans une collection nommée peuvent être remplacés en SQL, comme le montrent les exemples ci-dessous. Cette possibilité peut être limitée à l’aide des mots-clés [NOT] OVERRIDABLE et des attributs XML, et/ou de l’option de configuration allow_named_collection_override_by_default.
Si le remplacement est autorisé, des utilisateurs sans accès administratif peuvent être en mesure de découvrir les informations d’authentification que vous essayez de masquer. Si vous utilisez des collections nommées à cette fin, vous devez désactiver allow_named_collection_override_by_default (qui est activé par défaut).

Stocker des collections nommées dans la base de données système

Exemple de DDL

Dans l’exemple ci-dessus :
  • key_1 peut toujours être surchargée.
  • key_2 ne peut jamais être surchargée.
  • url peut être surchargée ou non selon la valeur de allow_named_collection_override_by_default.

Permissions pour créer des collections nommées avec DDL

Pour gérer des collections nommées avec DDL, un utilisateur doit disposer du privilège named_collection_control. Ce privilège peut être attribué en ajoutant un fichier à /etc/clickhouse-server/users.d/. Cet exemple accorde à l’utilisateur default les privilèges access_management et named_collection_control :
/etc/clickhouse-server/users.d/user_default.xml
Dans l’exemple ci-dessus, la valeur password_sha256_hex est la représentation hexadécimale du hachage SHA256 du mot de passe. Cette configuration pour l’utilisateur default comporte l’attribut replace=true, car la configuration par défaut définit un password en clair, et il n’est pas possible de définir à la fois un mot de passe en clair et un mot de passe SHA256 hexadécimal pour un même utilisateur.

Stockage des collections nommées

Les collections nommées peuvent être stockées soit sur un disk local, soit dans ZooKeeper/Keeper. Par défaut, le stockage local est utilisé. Elles peuvent également être stockées de manière chiffrée, avec les mêmes algorithmes que ceux utilisés pour le chiffrement du disque, aes_128_ctr étant utilisé par défaut. Pour configurer le stockage des collections nommées, vous devez spécifier un type. Il peut s’agir de local ou de keeper/zookeeper. Pour le stockage chiffré, vous pouvez utiliser local_encrypted ou keeper_encrypted/zookeeper_encrypted. Pour utiliser ZooKeeper/Keeper, vous devez également définir un path (chemin dans ZooKeeper/Keeper où les collections nommées seront stockées) dans la section named_collections_storage du fichier de configuration. L’exemple suivant utilise le chiffrement et ZooKeeper/Keeper :
Le paramètre de configuration facultatif update_timeout_ms vaut 5000 par défaut.

Stockage des collections nommées dans des fichiers de configuration

Exemple XML

/etc/clickhouse-server/config.d/named_collections.xml
Dans l’exemple ci-dessus :
  • key_1 peut toujours être surchargée.
  • key_2 ne peut jamais être surchargée.
  • url peut être surchargée ou non selon la valeur de allow_named_collection_override_by_default.

Modification des collections nommées

Les collections nommées créées à l’aide de requêtes DDL peuvent être modifiées ou supprimées via des instructions DDL. Les collections nommées créées à partir de fichiers XML peuvent être gérées en modifiant ou en supprimant le fichier XML correspondant.

Modifier une collection nommée DDL

Modifiez ou ajoutez les clés key1 et key3 de la collection collection2 (cela ne modifiera pas la valeur de la propriété overridable pour ces clés) :
Modifiez ou ajoutez la clé key1 et autorisez sa redéfinition systématique :
Supprimez la clé key2 de collection2 :
Modifiez ou ajoutez la clé key1 et supprimez la clé key3 dans la collection collection2 :
Pour forcer une clé à utiliser les paramètres par défaut de l’indicateur overridable, vous devez la supprimer, puis l’ajouter à nouveau.

Supprimez la collection nommée DDL collection2 :

Collections nommées pour accéder à S3

Pour une description des paramètres, voir fonction de table S3.

Exemple de DDL

Exemple XML

fonction s3() et exemples de collection nommée pour la table S3

Les deux exemples suivants utilisent la même collection nommée s3_mydata :

Fonction s3()

Le premier argument de la fonction s3() ci-dessus est le nom de la collection, s3_mydata. Sans collections nommées, l’identifiant de clé d’accès, le secret, le format et l’URL devraient être fournis à chaque appel de la fonction s3().

Table S3

Collection nommée pour accéder à une base de données MySQL

Pour une description des paramètres, voir mysql.

Exemple de DDL

Exemple XML

Exemples de collection nommée pour la fonction mysql(), une table MySQL, une base de données MySQL et un dictionnaire

Les quatre exemples suivants utilisent la même collection nommée mymysql :

fonction mysql()

La collection nommée ne spécifie pas le paramètre table ; il est donc indiqué dans l’appel de fonction sous la forme table = 'test'.

Table MySQL

Le DDL remplace le paramètre connection_pool_size de la collection nommée.

Base de données MySQL

Dictionnaire MySQL

Collections nommées pour accéder à une base de données PostgreSQL

Pour la description des paramètres, voir postgresql. Il existe également les alias suivants :
  • username pour user
  • db pour database.
Le paramètre addresses_expr est utilisé dans une collection à la place de host:port. Ce paramètre est facultatif, car d’autres le sont également : host, hostname, port. Le pseudo-code ci-dessous explique l’ordre de priorité :
Exemple de création :
Exemple de configuration :

Exemple d’utilisation de collections nommées avec la fonction postgresql

Exemple d’utilisation de collections nommées avec une base de données avec moteur PostgreSQL

PostgreSQL copie les données de la collection nommée au moment de la création de la table. Toute modification de la collection n’affecte pas les tables existantes.

Exemple d’utilisation des collections nommées avec une base de données utilisant le moteur PostgreSQL

Exemple d’utilisation de collections nommées avec un dictionnaire dont la source est POSTGRESQL

Collections nommées pour accéder à une base de données ClickHouse distante

Pour la description des paramètres, consultez remote. Exemple de configuration :
secure n’est pas nécessaire pour la connexion grâce à remoteSecure, mais peut être utilisé pour les dictionnaires.

Exemple d’utilisation des collections nommées avec les fonctions remote/remoteSecure

Exemple d’utilisation de collections nommées avec un dictionnaire dont la source est ClickHouse

Collections nommées pour accéder à Kafka

Pour une description des paramètres, voir Kafka.

Exemple de DDL

Exemple XML

Exemple d’utilisation des collections nommées avec une table Kafka

Les deux exemples suivants utilisent la même collection nommée my_kafka_cluster :

Collections nommées pour les sauvegardes

Pour une description des paramètres, voir Sauvegarde et restauration.

Exemple de DDL

Exemple XML

Collections nommées pour accéder aux tables et dictionnaires MongoDB

Pour la description des paramètres, voir mongodb.

Exemple de DDL

Exemple XML

Table MongoDB

Le DDL surcharge le paramètre d’options de la collection nommée.

Dictionnaire MongoDB

La collection nommée indique my_collection comme nom de la collection. Dans l’appel de fonction, ce nom est remplacé par collection = 'my_dict' pour sélectionner une autre collection.
Dernière modification le 2 juillet 2026