Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

CREATE DICTIONARY

Um dicionário é um mapeamento (key -> attributes) útil para vários tipos de listas de referência. O ClickHouse oferece funções especiais para trabalhar com dicionários que podem ser usadas em consultas. Usar dicionários com funções é mais fácil e mais eficiente do que fazer um JOIN com tabelas de referência.

Os dicionários podem ser criados de duas formas:

Criando um Dicionário com uma consulta DDL

Suportado no ClickHouse Cloud

Os dicionários podem ser criados com consultas DDL. Este é o método recomendado porque, com dicionários criados por DDL:

  • Nenhum registro adicional é adicionado aos arquivos de configuração do servidor.
  • Os dicionários podem ser usados como entidades de primeira classe, como tabelas ou views.
  • Os dados podem ser lidos diretamente, usando a sintaxe familiar de SELECT em vez de funções de tabela de dicionário. Observe que, ao acessar um dicionário diretamente por meio de uma instrução SELECT, um dicionário em cache retornará apenas os dados armazenados em cache, enquanto um dicionário sem cache retornará todos os dados que armazena.
  • Os dicionários podem ser renomeados facilmente.

Sintaxe

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'
Cláusula Descrição
Atributos Os atributos do dicionário são especificados de forma semelhante às colunas de uma tabela. A única propriedade obrigatória é o tipo; todas as outras podem ter valores padrão.
PRIMARY KEY Define a(s) coluna(s)-chave para buscas no dicionário. Dependendo do layout, um ou mais atributos podem ser especificados como chaves.
SOURCE Define a fonte de dados do dicionário (por exemplo, tabela do ClickHouse, HTTP, PostgreSQL).
LAYOUT Controla como o dicionário é armazenado em memória (por exemplo, FLAT, HASHED, CACHE).
LIFETIME Define o intervalo de atualização do dicionário.
ON CLUSTER Cria o dicionário em um cluster. Opcional.
SETTINGS Configurações adicionais do dicionário. Opcional.
COMMENT Adiciona um comentário ao dicionário. Opcional.

Criando um dicionário com um arquivo de configuração

Sem suporte no ClickHouse Cloud

O arquivo de configuração do dicionário tem o seguinte formato:

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

Você pode configurar quantos dicionários quiser no mesmo arquivo.

Navigation