Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

CREATE DICTIONARY

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

Словари можно создавать двумя способами:

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

Доступно в ClickHouse Cloud

Словари можно создавать с помощью 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

Файл конфигурации словаря имеет следующий формат:

<clickhouse>
    <comment>An optional element with any content. Ignored by the ClickHouse server.</comment>

    <!--Optional element. File name with substitutions-->
    <include_from>/etc/clickhouse-server/substitutions.xml</include_from>

    <dictionary>
        <!-- Dictionary configuration. -->
        <!-- There can be any number of dictionary sections in a configuration file. -->
    </dictionary>

</clickhouse>

Вы можете настроить любое количество словарей в одном файле.

Navigation