Tipos de layout de dicionário
| Layout | Descrição |
|---|---|
| flat | Armazena dados em arrays simples indexados por chave. É o layout mais rápido, mas as chaves devem ser UInt64 e estar dentro do limite de max_array_size. |
| hashed | Armazena dados em uma tabela hash. Não há limite para o tamanho da chave, e ele suporta qualquer número de elementos. |
| sparse_hashed | Como hashed, mas reduz o uso de memória à custa de CPU. |
| complex_key_hashed | Como hashed, para chaves compostas. |
| complex_key_sparse_hashed | Como sparse_hashed, para chaves compostas. |
| hashed_array | Atributos armazenados em arrays com uma tabela hash que mapeia chaves para índices do array. Eficiente em termos de memória para muitos atributos. |
| complex_key_hashed_array | Como hashed_array, para chaves compostas. |
| range_hashed | Tabela hash com intervalos ordenados. Suporta buscas por chave + intervalo de data/hora. |
| complex_key_range_hashed | Como range_hashed, para chaves compostas. |
| cache | Cache em memória de tamanho fixo. Apenas as chaves acessadas com frequência são armazenadas. |
| complex_key_cache | Como cache, para chaves compostas. |
| ssd_cache | Como cache, mas armazena dados em SSD com um índice em memória. |
| complex_key_ssd_cache | Como ssd_cache, para chaves compostas. |
| direct | Sem armazenamento em memória — consulta a origem diretamente a cada solicitação. |
| complex_key_direct | Como direct, para chaves compostas. |
| ip_trie | Estrutura trie para buscas rápidas de prefixos de IP (baseadas em CIDR). |
Especifique o layout de dicionário
LAYOUT (para DDL) ou com a configuração layout em definições de arquivo de configuração.
- DDL
- Arquivo de configuração
Consulte também CREATE DICTIONARY para ver a sintaxe DDL completa. Dicionários cujo layout não contém a palavra
complex-key* têm uma chave do tipo UInt64; dicionários complex-key* têm uma chave composta (complexa, com tipos arbitrários).
Exemplo de chave numérica (a coluna key_column é do tipo UInt64):
- DDL
- Arquivo de configuração
Exemplo de chave composta (a chave tem um elemento do tipo String):
- DDL
- Arquivo de configuração
Melhore o desempenho do dicionário
- Chame a função usada para trabalhar com o dicionário após o
GROUP BY. - Marque como injetivos os atributos a serem extraídos.
Um atributo é considerado injetivo se chaves diferentes corresponderem a valores de atributo diferentes.
Portanto, quando o
GROUP BYusa uma função que busca um valor de atributo pela chave, essa função é automaticamente removida doGROUP BY.
- Não foi possível carregar o dicionário acessado.
- Erro ao consultar um dicionário
cached.