Pour les dictionnaires créés avec des requêtes DDL, le paramètre
dict_name doit être entièrement qualifié, sous la forme <database>.<dict_name>. Sinon, la base de données actuelle est utilisée.Exemples de dictionnaires
Les exemples de cette section s’appuient sur les dictionnaires suivants. Vous pouvez les créer dans ClickHouse pour exécuter les exemples des fonctions décrites ci-dessous.Exemple de dictionnaire pour les fonctions dictGet<T> et dictGet<T>OrDefault
Exemple de dictionnaire pour les fonctions dictGet<T> et dictGet<T>OrDefault
Exemple de dictionnaire pour dictGetAll
Exemple de dictionnaire pour dictGetAll
Créez une table pour stocker les données du dictionnaire regexp tree :Insérez des données dans cette table :Créez le dictionnaire regexp tree :
Exemple de dictionnaire à clé d’intervalle
Exemple de dictionnaire à clé d’intervalle
Créez la table d’entrée :Insérez les données dans la table d’entrée :Créez le dictionnaire :
Exemple de dictionnaire à clé composite
Exemple de dictionnaire à clé composite
Créez la table source :Insérez les données dans la table source :Créez le dictionnaire :
Exemple de dictionnaire hiérarchique
Exemple de dictionnaire hiérarchique
Créez la table source :Insérez les données dans la table source :Créez le dictionnaire :
Passage des clés aux fonctions de dictionnaire
L’argument de clé (id_expr) de fonctions telles que dictGet, dictGetOrDefault, dictGetOrNull et dictHas dépend du type de clé du dictionnaire :
- Pour un dictionnaire avec une clé simple (
UInt64), passez directement la valeur de la clé :
- Pour un dictionnaire avec une clé composite (complexe) de plus d’un attribut, indiquez les valeurs de la clé sous forme de tuple :
- Lorsque la clé composite ne comporte qu’un seul attribut, la valeur de la clé peut être transmise directement, sans l’encapsuler dans
tuple. Les deux formes suivantes sont valides et équivalentes :
ip_trie, dont la clé est constituée d’un seul attribut. L’adresse IP à rechercher peut être transmise directement :
dictGet
Introduit dans : v18.16.0 Récupère des valeurs dans un dictionnaire.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_names— Nom de la colonne du dictionnaire, ou tuple de noms de colonnes.StringouTuple(String)id_expr— Valeur de la clé. Pour un dictionnaire avec une clé simple, expression renvoyant une valeurUInt64. Pour un dictionnaire avec une clé composite (complexe), expression renvoyant un tuple de valeurs de clé. Si la clé composite se compose d’un seul attribut, sa valeur peut être transmise directement, sans être encapsulée danstuple.UInt64ouTuple(T)
<null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
Exemples
Récupérer un seul attribut
Query
Response
Query
Response
dictGetAll
Introduit dans : v23.5.0 Récupère les valeurs d’attribut de tous les nœuds correspondant à chaque clé dans un dictionnaire en arbre d’expressions régulières. Hormis le fait qu’elle renvoie des valeurs de typeArray(T) au lieu de T, cette fonction se comporte comme dictGet.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_names— Nom de la colonne du dictionnaire, ou tuple de noms de colonnes.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)limit— Facultatif. Longueur maximale de chaque tableau de valeurs renvoyé. En cas de troncature, les nœuds enfants ont priorité sur les nœuds parents ; sinon, l’ordre de liste défini pour le dictionnaire regexp tree est respecté. S’il n’est pas spécifié, la longueur du tableau est illimitée.UInt*
id_expr pour chaque attribut spécifié par attr_names.
S’il n’existe aucune clé correspondant à id_expr dans le dictionnaire, un tableau vide est renvoyé.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Array(T)
Exemples
Exemple d’utilisation
Query
Response
dictGetChildren
Introduit dans : v21.4.0 Renvoie les enfants du premier niveau sous forme de tableau d’indices. Il s’agit de la transformation inverse de dictGetHierarchy.Cette fonction n’est pas déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringkey— Clé à vérifier.const String
Array(UInt64)
Exemples
Récupérer les enfants de premier niveau d’un dictionnaire
Query
Response
dictGetDate
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesDate, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
sinon renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetDateOrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesDate, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur passée dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetDateTime
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesDateTime, quelle que soit la configuration du dictionnaire.
Cette fonction n’est pas déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetDateTimeOrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesDateTime, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée.
Cette fonction n’est pas déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetDescendants
Introduit dans : v21.4.0 Renvoie tous les descendants comme si la fonctiondictGetChildren était appliquée récursivement level fois.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringkey— Clé à vérifier.const Stringlevel— Clé à vérifier. Niveau hiérarchique. Silevel = 0, renvoie tous les descendants.UInt8
Array(UInt64)
Exemples
Obtenir les enfants du premier niveau d’un dictionnaire
Query
Response
dictGetFloat32
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesFloat32, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetFloat32OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesFloat32, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetFloat64
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesFloat64, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetFloat64OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesFloat64, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
sinon renvoie la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetHierarchy
Introduit dans : v1.1.0 Crée un tableau contenant tous les parents d’une clé dans le dictionnaire hiérarchique.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringkey— Valeur de la clé.const String
Array(UInt64)
Exemples
Obtenir la hiérarchie d’une clé
Query
Response
dictGetIPv4
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesIPv4, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetIPv4OrDefault
Introduit dans : v23.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesIPv4, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
sinon renvoie la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetIPv6
Introduit dans : v23.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesIPv6, indépendamment de la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetIPv6OrDefault
Introduit dans : v23.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesIPv6, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne correspondant à la cléid_expr.ExpressionouTuple(T)
id_expr,
sinon renvoie la valeur passée via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt16
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesInt16, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
sinon, renvoie le contenu de l’élément <null_value> spécifié pour cet attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt16OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesInt16, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt32
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesInt32, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt32OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesInt32, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt64
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesInt64, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt64OrDefault
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesInt64, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de la clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr ;
sinon, renvoie la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt8
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesInt8, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetInt8OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesInt8, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetKeys
Introduit dans : v25.12.0 Renvoie la ou les clés du dictionnaire dont l’attribut correspond à la valeur spécifiée. Il s’agit de l’inverse de la fonctiondictGet sur un attribut unique.
Utilisez le paramètre max_reverse_dictionary_lookup_cache_size_bytes pour limiter la taille du cache de recherche inverse par requête utilisé par dictGetKeys.
Le cache stocke des tuples de clés sérialisés pour chaque valeur d’attribut afin d’éviter de parcourir à nouveau le dictionnaire au cours de la même requête.
Le cache n’est pas conservé d’une requête à l’autre. Lorsque la limite est atteinte, les entrées sont supprimées selon la politique LRU.
Ce mécanisme est particulièrement efficace avec de grands dictionnaires lorsque l’entrée présente une faible cardinalité et que l’ensemble de travail tient dans le cache. Définissez cette valeur sur 0 pour désactiver la mise en cache.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Attribut à comparer.Stringvalue_expr— Valeur à comparer à l’attribut.Expression
value_expr. Pour les dictionnaires à clés multiples : un tableau de tuples de clés dont l’attribut correspond à value_expr. S’il n’existe aucun attribut correspondant à value_expr dans le dictionnaire, un tableau vide est renvoyé. ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne peut pas être convertie dans le type de données de l’attribut.
Exemples
Exemple d’utilisation
Query
Response
dictGetOrDefault
Introduit dans : v18.16.0 Récupère des valeurs d’un dictionnaire, avec une valeur par défaut si la clé est introuvable.Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_names— Nom de la colonne du dictionnaire, ou tuple de noms de colonnes.StringouTuple(String)id_expr— Valeur de la clé. Pour un dictionnaire avec une clé simple, une expression renvoyant une valeurUInt64. Pour un dictionnaire avec une clé composite (complexe), une expression renvoyant un tuple des valeurs de la clé. Si la clé composite se compose d’un seul attribut, sa valeur peut être transmise directement, sans être encapsulée danstuple.UInt64ouTuple(T)default_value— Valeur par défaut à renvoyer si la clé n’est pas trouvée. Le type doit correspondre au type de données de l’attribut.
id_expr si la clé est trouvée.
Si la clé n’est pas trouvée, renvoie la default_value fournie.
Exemples
Obtenir la valeur avec une valeur par défaut
Query
Response
dictGetOrNull
Introduit dans : v21.4.0 Récupère des valeurs dans un dictionnaire et renvoie NULL si la clé est introuvable.Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire. Littéral de chaîne. -attr_name— Nom de la colonne à récupérer. Littéral de chaîne. -id_expr— Valeur de clé. Expression renvoyant une valeur du type de la clé du dictionnaire.
id_expr si la clé est trouvée.
Si la clé n’est pas trouvée, renvoie NULL.
Exemples
Exemple avec le dictionnaire à clé d’intervalle
Query
Response
dictGetRoot
Introduit dans : v26.7.0 Renvoyer l’ancêtre le plus haut (la racine) d’une clé dans un dictionnaire hiérarchique. Il s’agit d’un équivalent pratique consistant à prendre le dernier élément du tableau renvoyé par dictGetHierarchy, c.-à-d.dictGetHierarchy(dict_name, key)[-1].
Si la clé est elle-même un nœud de niveau supérieur dans la hiérarchie, la clé est renvoyée. Si la clé est absente du dictionnaire, 0 est renvoyé.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
UInt64
Exemples
Obtenir la racine d’une clé
Query
Response
dictGetString
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesString, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
ou, à défaut, le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetStringOrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesString, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur passée dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt16
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesUInt16, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si celle-ci ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt16OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesUInt16, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé n’est pas trouvée.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur passée dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt32
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesUInt32, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr ;
sinon, renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt32OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesUInt32, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr ;
sinon, renvoie la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt64
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesUInt64, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
ou, à défaut, le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt64OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesUInt64, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient aucune ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
ou, à défaut, la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt8
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesUInt8, quelle que soit la configuration du dictionnaire.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
sinon renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUInt8OrDefault
Introduit dans : v1.1.0 Convertit une valeur d’attribut de dictionnaire en type de donnéesUInt8, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne avec la cléid_expr.ExpressionouTuple(T)
id_expr,
sinon renvoie la valeur transmise dans le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas interpréter la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUUID
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesUUID, quelle que soit la configuration du dictionnaire.
Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de clé. Expression renvoyant une valeur de type clé de dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)
id_expr,
sinon renvoie le contenu de l’élément <null_value> spécifié pour l’attribut dans la configuration du dictionnaire.
ClickHouse lève une exception s’il ne parvient pas à analyser la valeur de l’attribut ou si la valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictGetUUIDOrDefault
Introduit dans : v1.1.0 Convertit la valeur d’un attribut de dictionnaire en type de donnéesUUID, quelle que soit la configuration du dictionnaire, ou renvoie la valeur par défaut fournie si la clé est introuvable.
Cette fonction est non déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringattr_name— Nom de la colonne du dictionnaire.StringouTuple(String)id_expr— Valeur de la clé. Expression renvoyant une valeur du type de clé du dictionnaire ou une valeur de tuple (selon la configuration du dictionnaire).ExpressionouTuple(T)default_value_expr— Valeur(s) renvoyée(s) si le dictionnaire ne contient pas de ligne correspondant à la cléid_expr.ExpressionouTuple(T)
id_expr ;
sinon, renvoie la valeur transmise via le paramètre default_value_expr.
ClickHouse lève une exception s’il ne peut pas analyser la valeur de l’attribut ou si cette valeur ne correspond pas au type de données de l’attribut.
Query
Response
dictHas
Introduit dans : v1.1.0 Vérifie si une clé est présente dans un dictionnaire.Cette fonction n’est pas déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringid_expr— Valeur de la cléconst String
1 si la clé existe, sinon 0. UInt8
Exemples
Vérifier l’existence d’une clé dans un dictionnaire
Query
Response
dictIsIn
Introduit dans : v1.1.0 Vérifie l’ancêtre d’une clé sur l’ensemble de la chaîne hiérarchique du dictionnaire.Cette fonction est non-déterministe : elle peut renvoyer des résultats différents pour les mêmes arguments.
dict_name— Nom du dictionnaire.Stringchild_id_expr— Clé à vérifier.Stringancestor_id_expr— Ancêtre présumé de la cléchild_id_expr.const String
0 si child_id_expr n’est pas un enfant de ancestor_id_expr, et 1 si child_id_expr est un enfant de ancestor_id_expr ou si child_id_expr est égal à ancestor_id_expr. UInt8
Exemples
Vérification de la relation hiérarchique
Query
Response