ClickHouse/docs/fr/engines/table-engines/special/dictionary.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

3.1 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true f865c9653f 35 Dictionnaire

Dictionnaire

Le Dictionary le moteur affiche le dictionnaire données comme une table ClickHouse.

À titre dexemple, considérons un dictionnaire de products avec la configuration suivante:

<dictionaries>
<dictionary>
        <name>products</name>
        <source>
            <odbc>
                <table>products</table>
                <connection_string>DSN=some-db-server</connection_string>
            </odbc>
        </source>
        <lifetime>
            <min>300</min>
            <max>360</max>
        </lifetime>
        <layout>
            <flat/>
        </layout>
        <structure>
            <id>
                <name>product_id</name>
            </id>
            <attribute>
                <name>title</name>
                <type>String</type>
                <null_value></null_value>
            </attribute>
        </structure>
</dictionary>
</dictionaries>

Interroger les données du dictionnaire:

SELECT
    name,
    type,
    key,
    attribute.names,
    attribute.types,
    bytes_allocated,
    element_count,
    source
FROM system.dictionaries
WHERE name = 'products'
┌─name─────┬─type─┬─key────┬─attribute.names─┬─attribute.types─┬─bytes_allocated─┬─element_count─┬─source──────────┐
│ products │ Flat │ UInt64 │ ['title']       │ ['String']      │        23065376 │        175032 │ ODBC: .products │
└──────────┴──────┴────────┴─────────────────┴─────────────────┴─────────────────┴───────────────┴─────────────────┘

Vous pouvez utiliser l dictGet* fonction pour obtenir les données du dictionnaire dans ce format.

Cette vue nest pas utile lorsque vous avez besoin dobtenir des données brutes ou JOIN opération. Pour ces cas, vous pouvez utiliser le Dictionary moteur, qui affiche les données du dictionnaire dans une table.

Syntaxe:

CREATE TABLE %table_name% (%fields%) engine = Dictionary(%dictionary_name%)`

Exemple dutilisation:

create table products (product_id UInt64, title String) Engine = Dictionary(products);
  Ok

Jetez un oeil à ce qui est dans le tableau.

select * from products limit 1;
┌────product_id─┬─title───────────┐
│        152689 │ Some item       │
└───────────────┴─────────────────┘

Article Original