Перейти к основному содержанию
Словарь — это соответствие (key -> attributes), удобное для различных типов справочных списков. ClickHouse поддерживает специальные функции для работы со словарями, которые можно использовать в запросах. Использовать словари через функции проще и эффективнее, чем JOIN со справочными таблицами. Словари можно создавать двумя способами:

Создание словаря с помощью DDL-запроса

Словари можно создавать с помощью DDL-запросов. Это рекомендуемый способ, поскольку для словарей, созданных с помощью DDL:
  • В файлы конфигурации сервера не добавляются дополнительные записи.
  • Словари можно использовать как полноценные сущности, такие как таблицы или представления.
  • Данные можно читать напрямую, используя знакомый синтаксис SELECT, а не табличные функции словарей. Обратите внимание: при прямом обращении к словарю через оператор SELECT кэшируемый словарь вернет только кэшированные данные, тогда как некэшируемый словарь вернет все хранимые в нем данные.
  • Словари можно легко переименовывать.

Синтаксис

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'
ПредложениеОписание
АтрибутыАтрибуты словаря задаются аналогично столбцам таблицы. Единственное обязательное свойство — тип; все остальные могут иметь значения по умолчанию.
PRIMARY KEYОпределяет ключевой столбец или столбцы для поиска в словаре. В зависимости от структуры один или несколько атрибутов могут быть указаны как ключи.
SOURCEОпределяет источник данных для словаря (например, таблицу ClickHouse, HTTP, PostgreSQL).
LAYOUTОпределяет способ хранения словаря в памяти (например, FLAT, HASHED, CACHE).
LIFETIMEЗадает интервал обновления словаря.
ON CLUSTERСоздает словарь на кластере. Необязательно.
SETTINGSДополнительные настройки словаря. Необязательно.
COMMENTДобавляет текстовый комментарий к словарю. Необязательно.

Создание словаря с помощью файла конфигурации

Создание словаря с помощью файла конфигурации не поддерживается в ClickHouse Cloud. Используйте DDL (см. выше) и создайте словарь от имени пользователя default.
Файл конфигурации словаря имеет следующий формат:
<clickhouse>
    <comment>Необязательный элемент с произвольным содержимым. Игнорируется сервером ClickHouse.</comment>

    <!--Необязательный элемент. Имя файла с подстановками-->
    <include_from>/etc/metrika.xml</include_from>

    <dictionary>
        <!-- Конфигурация словаря. -->
        <!-- В файле конфигурации может быть любое количество секций dictionary. -->
    </dictionary>

</clickhouse>
Вы можете настроить любое количество словарей в одном файле.
Последнее изменение 10 июня 2026 г.