Последнее обновление
Типы данных
Apache Doris поддерживает следующие типы данных:
Числовые типы
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| BOOLEAN | 1 | Логическое значение. 0 означает ложь, 1 означает истину. |
| TINYINT | 1 | Целое число со знаком, диапазон [-128, 127]. |
| SMALLINT | 2 | Целое число со знаком, диапазон [-32768, 32767]. |
| INT | 4 | Целое число со знаком, диапазон [-2147483648, 2147483647]. |
| BIGINT | 8 | Целое число со знаком, диапазон [-9223372036854775808, 9223372036854775807]. |
| LARGEINT | 16 | Целое число со знаком, диапазон [-2^127 + 1 ~ 2^127 - 1]. |
| FLOAT | 4 | Число с плавающей точкой, диапазон [-3.410^38 ~ 3.410^38]. |
| DOUBLE | 8 | Число с плавающей точкой, диапазон [-1.7910^308 ~ 1.7910^308]. |
| DECIMAL | 4/8/16/32 | Число с фиксированной точкой высокой точности. Формат: DECIMAL(P[,S]). P задаёт общее число значащих цифр (точность), а S задаёт число цифр после десятичной точки (масштаб). Диапазон P: [1, MAX_P]. При enable_decimal256=false MAX_P=38; при enable_decimal256=true MAX_P=76. Диапазон S: [0, P].По умолчанию значение enable_decimal256 равно false. Установка значения true обеспечивает более точные результаты, но требует дополнительных вычислительных ресурсов.Размер хранения:
|
Типы даты и времени
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| DATE | 4 | Тип даты. Текущий диапазон значений: ['0000-01-01', '9999-12-31'], формат вывода по умолчанию: 'yyyy-MM-dd'. |
| DATETIME | 8 | Тип даты и времени. Формат: DATETIME([P]). Необязательный параметр P задаёт точность времени и принимает значения в диапазоне [0, 6], то есть поддерживается до 6 цифр дробной части секунды (микросекунды). Если параметр не задан, по умолчанию используется значение 0. Диапазон значений: ['0000-01-01 00:00:00[.000000]', '9999-12-31 23:59:59[.999999]']. Формат вывода: 'yyyy-MM-dd HH:mm:ss.SSSSSS'. |
| TIMESTAMP_NS | 8 | Тип даты и времени без учёта часового пояса, с фиксированной наносекундной точностью. Диапазон значений: ['1677-09-21 00:12:43.145224192', '2262-04-11 23:47:16.854775807']. Формат вывода: 'yyyy-MM-dd HH:mm:ss.SSSSSSSSS'. |
Строковые типы
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| CHAR | M | Строка фиксированной длины. M задаёт длину строки фиксированной длины в байтах. Диапазон M: 1-255. |
| VARCHAR | Переменный | Строка переменной длины. M задаёт длину строки переменной длины в байтах. Диапазон M: 1-65533. Строки переменной длины хранятся в кодировке UTF-8, поэтому английский символ обычно занимает 1 байт, а китайский иероглиф занимает 3 байта. |
| STRING | Переменный | Строка переменной длины. По умолчанию поддерживает 1048576 байт (1MB); максимальную длину можно увеличить до 2147483643 байт (2GB). Она настраивается с помощью параметра конфигурации BE string_type_length_soft_limit_bytes. Тип String можно использовать только в столбцах Value; его нельзя использовать в столбцах Key, а также в столбцах секционирования или распределения по бакетам. |
Полуструктурированные типы
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| ARRAY | Переменный | Массив, состоящий из элементов типа T. Не может использоваться в качестве столбца Key. В настоящее время поддерживается в таблицах моделей Duplicate и Unique. |
| MAP | Переменный | Отображение, состоящее из элементов типов K и V. Не может использоваться в качестве столбца Key. В настоящее время поддерживается в таблицах моделей Duplicate и Unique. |
| STRUCT | Переменный | Структура, состоящая из нескольких полей, которую также можно рассматривать как набор столбцов. Не может использоваться в качестве Key. В настоящее время STRUCT поддерживается только в таблицах модели Duplicate. Имена и количество полей в Struct фиксированы, а сами поля всегда имеют свойство Nullable. |
| JSON | Переменный | Двоичный тип JSON. Хранится в двоичном формате JSON, а доступ к внутренним полям JSON осуществляется с помощью функций JSON. Ограничение длины и способ настройки такие же, как у String. |
| VARIANT | Переменный | Динамически изменяемый тип данных, предназначенный для полуструктурированных данных, таких как JSON. Может хранить произвольный JSON, автоматически выделяя его поля в отдельные подстолбцы для хранения, что повышает эффективность хранения и производительность аналитических запросов. Ограничение длины и способ настройки такие же, как у String. Тип Variant можно использовать только в столбцах Value; его нельзя использовать в столбцах Key, а также в столбцах секционирования или распределения по бакетам. |
Агрегатные типы
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| HLL | Переменный | HLL используется для приближённой дедупликации. При большом объёме данных его производительность выше, чем у Count Distinct. Погрешность HLL обычно составляет около 1%, а иногда достигает 2%. HLL нельзя использовать в качестве столбца Key, а при создании таблицы необходимо указать тип агрегации HLL_UNION. Пользователям не требуется указывать длину и значение по умолчанию. Система сама управляет длиной в зависимости от степени агрегации данных. Запрашивать или использовать столбцы HLL можно только с помощью соответствующих функций hll_union_agg, hll_raw_agg, hll_cardinality и hll_hash. |
| BITMAP | Переменный | Столбцы типа Bitmap можно использовать в таблицах моделей Aggregate, Unique и Duplicate. В таблицах моделей Unique и Duplicate они должны быть столбцами, не входящими в Key. В таблицах модели Aggregate они также должны быть столбцами, не входящими в Key, а при создании таблицы необходимо указать тип агрегации BITMAP_UNION. Пользователям не требуется указывать длину и значение по умолчанию. Система сама управляет длиной в зависимости от степени агрегации данных. Запрашивать или использовать столбцы BITMAP можно только с помощью соответствующих функций bitmap_union_count, bitmap_union, bitmap_hash, bitmap_hash64 и других функций. |
| QUANTILE_STATE | Переменный | QUANTILE_STATE используется для вычисления приближённых значений квантилей. При загрузке он предварительно агрегирует различные значения Value для одного и того же Key. Если число значений не превышает 2048, все данные сохраняются подробно. Если число значений превышает 2048, для агрегации (кластеризации) данных используется алгоритм TDigest, а после кластеризации сохраняются центроиды. QUANTILE_STATE нельзя использовать в качестве столбца Key, а при создании таблицы необходимо указать тип агрегации QUANTILE_UNION. Пользователям не требуется указывать длину и значение по умолчанию. Система сама управляет длиной в зависимости от степени агрегации данных. Запрашивать или использовать столбцы QUANTILE_STATE можно только с помощью соответствующих функций QUANTILE_PERCENT, QUANTILE_UNION, TO_QUANTILE_STATE и других функций. |
| AGG_STATE | Переменный | Агрегатная функция. Может использоваться только совместно с комбинаторами функций state/merge/union. AGG_STATE нельзя использовать в качестве столбца Key, а при создании таблицы также необходимо объявить сигнатуру агрегатной функции. Пользователям не требуется указывать длину и значение по умолчанию. Фактический размер хранимых данных зависит от реализации функции. |
Типы IP
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| IPv4 | 4 байта | Хранит адрес IPv4 в виде 4 байт двоичных данных, используется совместно с семейством функций ipv4_*. |
| IPv6 | 16 байт | Хранит адрес IPv6 в виде 16 байт двоичных данных, используется совместно с семейством функций ipv6_*. |
UUID
| Название типа | Размер хранения (байты) | Описание |
|---|---|---|
| UUID | 16 | Нативный 128-битный идентификатор, отображаемый в каноническом текстовом виде со строчными буквами. |
Все типы данных, поддерживаемые Apache Doris, также можно просмотреть с помощью оператора SHOW DATA TYPES;.