Pular para o conteúdo principal
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

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áusulaDescrição
AtributosOs 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 KEYDefine a(s) coluna(s)-chave para buscas no dicionário. Dependendo do layout, um ou mais atributos podem ser especificados como chaves.
SOURCEDefine a fonte de dados do dicionário (por exemplo, tabela do ClickHouse, HTTP, PostgreSQL).
LAYOUTControla como o dicionário é armazenado em memória (por exemplo, FLAT, HASHED, CACHE).
LIFETIMEDefine o intervalo de atualização do dicionário.
ON CLUSTERCria o dicionário em um cluster. Opcional.
SETTINGSConfigurações adicionais do dicionário. Opcional.
COMMENTAdiciona um comentário ao dicionário. Opcional.

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

Criar um dicionário com um arquivo de configuração não se aplica ao ClickHouse Cloud. Use DDL (veja acima) e crie o dicionário como o usuário default.
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>

    <!--Elemento opcional. Nome do arquivo com substituições-->
    <include_from>/etc/metrika.xml</include_from>

    <dictionary>
        <!-- Configuração do dicionário. -->
        <!-- É possível ter qualquer número de seções de dicionário em um arquivo de configuração. -->
    </dictionary>

</clickhouse>
Você pode configurar quantos dicionários quiser no mesmo arquivo.
Última modificação em 10 de junho de 2026