Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Motor de tabla Diccionario

El motor Dictionary muestra los datos del diccionario como una tabla de ClickHouse.

Ejemplo

Por ejemplo, considere un diccionario de products con la siguiente configuración:

<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>

Consulta los datos del diccionario:

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 │
└──────────┴──────┴────────┴─────────────────┴─────────────────┴─────────────────┴───────────────┴─────────────────┘

Puedes usar las funciones dictGet* para obtener los datos del diccionario en este formato.

Esta vista no resulta útil cuando necesitas obtener datos sin procesar o realizar una operación JOIN. En esos casos, puedes usar el motor Dictionary, que muestra los datos del diccionario en una tabla.

Sintaxis:

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

Ejemplo de uso:

CREATE TABLE products (product_id UInt64, title String) ENGINE = Dictionary(products);

Bien

Echa un vistazo a lo que hay en la tabla.

SELECT * FROM products LIMIT 1;
┌────product_id─┬─title───────────┐
│        152689 │ Some item       │
└───────────────┴─────────────────┘

Véase también

Navigation