Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

CREATE DICTIONARY

Un dictionnaire est une correspondance (key -> attributes) pratique pour différents types de listes de référence. ClickHouse prend en charge des fonctions spéciales pour utiliser les dictionnaires dans les requêtes. Il est plus simple et plus efficace d’utiliser des dictionnaires avec ces fonctions que d’effectuer un JOIN avec des tables de référence.

Les dictionnaires peuvent être créés de deux façons :

Création d’un dictionnaire avec une requête DDL

Compatible avec ClickHouse Cloud

Les dictionnaires peuvent être créés à l’aide de requêtes DDL. Il s’agit de la méthode recommandée, car avec les dictionnaires créés via DDL :

  • Aucun enregistrement supplémentaire n’est ajouté aux fichiers de configuration du serveur.
  • Les dictionnaires peuvent être utilisés comme des entités à part entière, telles que des tables ou des vues.
  • Les données peuvent être lues directement, en utilisant la syntaxe SELECT habituelle plutôt que des fonctions de table de dictionnaire. Notez que, lors d’un accès direct à un dictionnaire via une instruction SELECT, un dictionnaire mis en cache ne renvoie que les données en cache, tandis qu’un dictionnaire non mis en cache renvoie toutes les données qu’il stocke.
  • Les dictionnaires peuvent être renommés facilement.

Syntaxe

CREATE [OR REPLACE] DICTIONARY [IF NOT EXISTS] [db.]dictionary_name [ON CLUSTER cluster]
(
    key1  type1  [DEFAULT | EXPRESSION expr1] [IS_OBJECT_ID],
    key2  type2  [DEFAULT | EXPRESSION expr2],
    attr1 type2  [DEFAULT | EXPRESSION expr3] [HIERARCHICAL|INJECTIVE],
    attr2 type2  [DEFAULT | EXPRESSION expr4] [HIERARCHICAL|INJECTIVE]
)
PRIMARY KEY key1, key2
SOURCE(SOURCE_NAME([param1 value1 ... paramN valueN]))
LAYOUT(LAYOUT_NAME([param_name param_value]))
LIFETIME({MIN min_val MAX max_val | max_val})
SETTINGS(setting_name = setting_value, setting_name = setting_value, ...)
COMMENT 'Comment'
Clause Description
Attributs Les attributs du dictionnaire sont définis de manière similaire aux colonnes d'une table. La seule propriété obligatoire est le type ; toutes les autres peuvent avoir des valeurs par défaut.
PRIMARY KEY Définit la ou les colonnes clés pour les recherches dans le dictionnaire. Selon le layout, un ou plusieurs attributs peuvent être définis comme clés.
SOURCE Définit la source de données du dictionnaire (par ex. table ClickHouse, HTTP, PostgreSQL).
LAYOUT Contrôle la façon dont le dictionnaire est stocké en mémoire (par ex. FLAT, HASHED, CACHE).
LIFETIME Définit l'intervalle de rafraîchissement du dictionnaire.
ON CLUSTER Crée le dictionnaire sur un cluster. Facultatif.
SETTINGS Paramètres supplémentaires du dictionnaire. Facultatif.
COMMENT Ajoute un commentaire au dictionnaire. Facultatif.

Créer un dictionnaire avec un fichier de configuration

Non pris en charge par ClickHouse Cloud

Le fichier de configuration du dictionnaire se présente au format suivant :

<clickhouse>
    <comment>An optional element with any content. Ignored by the ClickHouse server.</comment>

    <!--Optional element. File name with substitutions-->
    <include_from>/etc/clickhouse-server/substitutions.xml</include_from>

    <dictionary>
        <!-- Dictionary configuration. -->
        <!-- There can be any number of dictionary sections in a configuration file. -->
    </dictionary>

</clickhouse>

Vous pouvez configurer autant de dictionnaires que vous le souhaitez dans le même fichier.

Navigation