Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Dicionários hierárquicos

Dicionários hierárquicos

O ClickHouse oferece suporte a dicionários hierárquicos com uma chave numérica.

Veja a seguinte estrutura hierárquica:

0 (Common parent)

├── 1 (United States of America)
│   │
│   └── 2 (California)
│       │
│       └── 3 (San Francisco)

└── 4 (Great Britain)

    └── 5 (London)

Essa hierarquia pode ser expressa na seguinte tabela do dicionário.

region_id parent_region region_name
1 0 Estados Unidos da América
2 1 Califórnia
3 2 São Francisco
4 0 Grã-Bretanha
5 4 Londres

Esta tabela contém uma coluna parent_region que armazena a chave do pai mais próximo do elemento.

O ClickHouse oferece suporte à propriedade hierárquica para atributos de dicionários externos. Essa propriedade permite configurar o dicionário hierárquico de forma semelhante ao que foi descrito acima.

A função dictGetHierarchy permite obter a cadeia de pais de um elemento. A função dictGetRoot retorna apenas o ancestral mais alto (a raiz) de um elemento.

No nosso exemplo, a estrutura do dicionário pode ser a seguinte:

CREATE DICTIONARY regions_dict
(
    region_id UInt64,
    parent_region UInt64 DEFAULT 0 HIERARCHICAL,
    region_name String DEFAULT ''
)
PRIMARY KEY region_id
SOURCE(...)
LAYOUT(HASHED())
LIFETIME(3600);

Navigation