structure описывает ключ словаря и поля, доступные в запросах.
Описание XML:
<id>— ключевой столбец<attribute>— столбец данных: атрибутов может быть несколько.
PRIMARY KEY— ключевой столбецAttrName AttrType— столбец данных. Атрибутов может быть несколько.
Ключ
- Числовой ключ.
UInt64. Задаётся в теге<id>или с помощью ключевого словаPRIMARY KEY. - Составной ключ. Набор значений разных типов. Задаётся в теге
<key>или с помощью ключевого словаPRIMARY KEY.
<id>, либо <key>. DDL-запрос должен содержать только один PRIMARY KEY.
Не следует описывать ключ как атрибут.
Числовой ключ
UInt64.
Пример конфигурации:
name– имя столбца с ключами.
PRIMARY KEY– Имя столбца, содержащего ключи.
Составной ключ
Tuple из полей любых типов. Структура в этом случае должна быть complex_key_hashed или complex_key_cache.
Структура ключа задаётся в элементе <key>. Поля ключа указываются в том же формате, что и атрибуты словаря. Пример:
dictGet* в качестве ключа передаётся Tuple. Пример: dictGetString('dict_name', 'attr_name', tuple('string for field1', num_for_field2)).
Атрибуты
| Tag | Описание | Обязательно |
|---|---|---|
name | Имя столбца. | Да |
type | Тип данных ClickHouse: UInt8, UInt16, UInt32, UInt64, Int8, Int16, Int32, Int64, Float32, Float64, UUID, Decimal32, Decimal64, Decimal128, Decimal256,Date, Date32, DateTime, DateTime64, String, Array. ClickHouse пытается привести значение из словаря к указанному типу данных. Например, в MySQL поле исходной таблицы может иметь тип TEXT, VARCHAR или BLOB, но в ClickHouse его можно загрузить как String.Nullable в настоящее время поддерживается для словарей Flat, Hashed, ComplexKeyHashed, Direct, ComplexKeyDirect, RangeHashed, Polygon, Cache, ComplexKeyCache, SSDCache, SSDComplexKeyCache. В словарях IPTrie типы Nullable не поддерживаются. | Да |
null_value | Значение по умолчанию для несуществующего элемента. В примере это пустая строка. Значение NULL можно использовать только для типов Nullable (см. предыдущую строку с описанием типов). | Да |
expression | Выражение, которое ClickHouse выполняет над значением. Выражение может быть именем столбца в удалённой SQL-базе данных. Таким образом, его можно использовать для создания псевдонима удалённого столбца. Значение по умолчанию: выражение отсутствует. | Нет |
hierarchical | Если true, атрибут содержит значение родительского ключа для текущего ключа. См. Иерархические словари.Значение по умолчанию: false. | Нет |
injective | Флаг, показывающий, является ли отображение id -> attribute инъективным.Если true, ClickHouse может автоматически размещать после предложения GROUP BY запросы к словарям с инъективным отображением. Обычно это значительно уменьшает количество таких запросов.Значение по умолчанию: false. | Нет |
is_object_id | Флаг, показывающий, выполняется ли запрос для документа MongoDB по ObjectID.Значение по умолчанию: false. |