Перейти к основному содержанию

Иерархические словари

ClickHouse поддерживает иерархические словари с числовым ключом. Рассмотрим следующую иерархию:
0 (Common parent)

├── 1 (Russia)
│   │
│   └── 2 (Moscow)
│       │
│       └── 3 (Center)

└── 4 (Great Britain)

    └── 5 (London)
Эта иерархия может быть представлена в виде следующей таблицы словаря.
region_idparent_regionregion_name
10Russia
21Moscow
32Center
40Great Britain
54London
Эта таблица содержит столбец parent_region, в котором хранится ключ ближайшего родительского элемента. ClickHouse поддерживает иерархическое свойство для атрибутов внешних словарей. Это свойство позволяет настроить иерархический словарь так, как описано выше. Функция dictGetHierarchy позволяет получить цепочку родительских элементов. Для нашего примера структура словаря может быть следующей:
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);

Последнее изменение 10 июня 2026 г.