Последнее обновление
Типы данных
Apache Doris поддерживает следующие типы данных:
Числовые типы
| Имя типа | Размер хранения (байт) | Описание |
|---|---|---|
| BOOLEAN | 1 | Логическое значение. 0 означает false, 1 означает true. |
| 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'. |
Строковые типы
| Имя типа | Размер хранения (байт) | Описание |
|---|---|---|
| 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, автоматически выделяя поля 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_*. |
Все типы данных, поддерживаемые Apache Doris, также можно просмотреть с помощью инструкции SHOW DATA TYPES;.