LowCardinality
Изменяет внутреннее представление других типов данных, превращая их в тип со словарным кодированием.
Синтаксис
LowCardinality(data_type)
Параметры
data_type
— String, FixedString, Date, DateTime и числа за исключением типа Decimal.LowCardinality
неэффективен для некоторых типов данных, см. описание настройки allow_suspicious_low_cardinality_types.
Описание
LowCardinality
— это надстройка, изменяющая способ хранения и правила обработки данных. ClickHouse применяет словарное кодирование в столбцы типа LowCardinality
. Работа с данными, представленными в словарном виде, может значительно увеличивать производительность запросов SELECT для многих приложений.
Эффективность использования типа данных LowCardinality
зависит от разнообразия данных. Если словарь содержит менее 10 000 различных значений, ClickHouse в основном показывает более высокую эффективность чтения и хранения данных. Если же словарь содержит более 100 000 различных значений, ClickHouse может работать хуже, чем при использовании обычных типов данных.
При работе со строками использование LowCardinality
вместо Enum обеспечивает большую гибкость в использовании и часто показывает такую же или более высокую эффективность.
Пример
Создание таблицы со столбцами типа LowCardinality
:
CREATE TABLE lc_t
(
`id` UInt16,
`strings` LowCardinality(String)
)
ENGINE = MergeTree()
ORDER BY id
Связанные настройки и функции
Настройки:
- low_cardinality_max_dictionary_size
- low_cardinality_use_single_dictionary_for_part
- low_cardinality_allow_in_native_format
- allow_suspicious_low_cardinality_types
- output_format_arrow_low_cardinality_as_dictionary
Функции: