ClickHouse/docs/fr/sql-reference/functions/ext-dict-functions.md
Ivan Blinkov d91c97d15d
[docs] replace underscores with hyphens (#10606)
* Replace underscores with hyphens

* remove temporary code

* fix style check

* fix collapse
2020-04-30 21:19:18 +03:00

7.7 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 58 Travailler avec des dictionnaires externes

Fonctions Pour Travailler Avec Des Dictionnaires Externes

Pour plus dinformations sur la connexion et la configuration de dictionnaires externes, voir Dictionnaires externes.

dictGet

Récupère une valeur dun dictionnaire externe.

dictGet('dict_name', 'attr_name', id_expr)
dictGetOrDefault('dict_name', 'attr_name', id_expr, default_value_expr)

Paramètre

  • dict_name — Name of the dictionary. Chaîne littérale.
  • attr_name — Name of the column of the dictionary. Chaîne littérale.
  • id_expr — Key value. Expression de retour dun UInt64 ou Tuple- tapez la valeur en fonction de la configuration du dictionnaire.
  • default_value_expr — Value returned if the dictionary doesnt contain a row with the id_expr clé. Expression renvoyer la valeur dans le type de données configuré pour attr_name attribut.

Valeur renvoyée

  • Si ClickHouse analyse lattribut avec succès dans le lattribut type de données, les fonctions renvoient la valeur du dictionnaire de lattribut qui correspond à id_expr.

  • Si il ny a pas la clé, correspondant à id_expr dans le dictionnaire, puis:

    - `dictGet` returns the content of the `<null_value>` element specified for the attribute in the dictionary configuration.
    - `dictGetOrDefault` returns the value passed as the `default_value_expr` parameter.
    

ClickHouse lève une exception si elle ne peut pas analyser la valeur de lattribut ou si la valeur ne correspond pas au type de données dattribut.

Exemple

Créer un fichier texte ext-dict-text.csv contenant les éléments suivants:

1,1
2,2

La première colonne est id la deuxième colonne est c1.

Configurer le dictionnaire externe:

<yandex>
    <dictionary>
        <name>ext-dict-test</name>
        <source>
            <file>
                <path>/path-to/ext-dict-test.csv</path>
                <format>CSV</format>
            </file>
        </source>
        <layout>
            <flat />
        </layout>
        <structure>
            <id>
                <name>id</name>
            </id>
            <attribute>
                <name>c1</name>
                <type>UInt32</type>
                <null_value></null_value>
            </attribute>
        </structure>
        <lifetime>0</lifetime>
    </dictionary>
</yandex>

Effectuer la requête:

SELECT
    dictGetOrDefault('ext-dict-test', 'c1', number + 1, toUInt32(number * 10)) AS val,
    toTypeName(val) AS type
FROM system.numbers
LIMIT 3
┌─val─┬─type───┐
│   1 │ UInt32 │
│   2 │ UInt32 │
│  20 │ UInt32 │
└─────┴────────┘

Voir Aussi

dictHas

Vérifie si une clé est présente dans un dictionnaire.

dictHas('dict_name', id_expr)

Paramètre

Valeur renvoyée

  • 0, si il ny a pas de clé.
  • 1, si il y a une clé.

Type: UInt8.

dictGetHierarchy

Crée un tableau contenant tous les parents dune clé dans le hiérarchique dictionnaire.

Syntaxe

dictGetHierarchy('dict_name', key)

Paramètre

Valeur renvoyée

  • Les Parents pour la clé.

Type: Tableau (UInt64).

dictisine

Vérifie lancêtre dune clé à travers toute la chaîne hiérarchique dans le dictionnaire.

dictIsIn('dict_name', child_id_expr, ancestor_id_expr)

Paramètre

  • dict_name — Name of the dictionary. Chaîne littérale.
  • child_id_expr — Key to be checked. Expression de retour dun UInt64-le type de la valeur.
  • ancestor_id_expr — Alleged ancestor of the child_id_expr clé. Expression de retour dun UInt64-le type de la valeur.

Valeur renvoyée

  • 0, si child_id_expr nest pas un enfant de ancestor_id_expr.
  • 1, si child_id_expr est un enfant de ancestor_id_expr ou si child_id_expr est un ancestor_id_expr.

Type: UInt8.

DAutres Fonctions

ClickHouse prend en charge des fonctions spécialisées qui convertissent les valeurs dattribut de dictionnaire en un type de données spécifique, quelle que soit la configuration du dictionnaire.

Fonction:

  • dictGetInt8, dictGetInt16, dictGetInt32, dictGetInt64
  • dictGetUInt8, dictGetUInt16, dictGetUInt32, dictGetUInt64
  • dictGetFloat32, dictGetFloat64
  • dictGetDate
  • dictGetDateTime
  • dictGetUUID
  • dictGetString

Toutes ces fonctions ont le OrDefault modification. Exemple, dictGetDateOrDefault.

Syntaxe:

dictGet[Type]('dict_name', 'attr_name', id_expr)
dictGet[Type]OrDefault('dict_name', 'attr_name', id_expr, default_value_expr)

Paramètre

  • dict_name — Name of the dictionary. Chaîne littérale.
  • attr_name — Name of the column of the dictionary. Chaîne littérale.
  • id_expr — Key value. Expression de retour dun UInt64-le type de la valeur.
  • default_value_expr — Value which is returned if the dictionary doesnt contain a row with the id_expr clé. Expression renvoyer une valeur dans le type de données configuré pour attr_name attribut.

Valeur renvoyée

  • Si ClickHouse analyse lattribut avec succès dans le lattribut type de données, les fonctions renvoient la valeur du dictionnaire de lattribut qui correspond à id_expr.

  • Si il nest pas demandé id_expr dans le dictionnaire,:

    - `dictGet[Type]` returns the content of the `<null_value>` element specified for the attribute in the dictionary configuration.
    - `dictGet[Type]OrDefault` returns the value passed as the `default_value_expr` parameter.
    

ClickHouse lève une exception si elle ne peut pas analyser la valeur de lattribut ou si la valeur ne correspond pas au type de données dattribut.

Article Original