Перейти к содержимому
Последнее обновление

PARSE_DATA_SIZE

Описание​

Функция PARSE_DATA_SIZE разбирает строку с единицами измерения объёма данных (например, "1.5GB") и преобразует её в числовое значение в байтах.

Синтаксис​

PARSE_DATA_SIZE(<str>)

Параметры​

ПараметрОписание
<str>Строка с размером данных и единицей измерения (например, "100MB", "2.5GB"). Тип: VARCHAR

Возвращаемое значение​

Возвращает значение типа LARGEINT, представляющее размер в байтах после преобразования.

Особые случаи:

  • Поддерживаемые единицы измерения (регистр учитывается; используйте именно эти обозначения): B, kB, MB, GB, TB, PB, EB, ZB, YB
  • Для единиц измерения используется основание 1024 (например, 1kB = 1024B)
  • Поддерживаются десятичные дроби (например, "2.5MB")
  • Если формат параметра некорректен, возвращается ошибка
  • Если параметр равен NULL, возвращается NULL. В ветке Doris 4.1 начиная с версии 4.1.5 строки со значением NULL в столбцах, допускающих такие значения, пропускаются до разбора строкового содержимого

Таблица поддерживаемых единиц измерения:

Единица измеренияНазваниеБайты
BБайты1
kBКилобайты1024
MBМегабайты1024²
GBГигабайты1024³
TBТерабайты1024⁴
PBПетабайты1024⁵
EBЭксабайты1024⁶

Примеры​

  1. Базовое использование: разбор значения в байтах
SELECT parse_data_size('1024B');
+--------------------------+
| parse_data_size('1024B') |
+--------------------------+
| 1024 |
+--------------------------+
  1. Разбор значения в килобайтах
SELECT parse_data_size('1kB');
+------------------------+
| parse_data_size('1kB') |
+------------------------+
| 1024 |
+------------------------+
  1. Разбор дробного значения в мегабайтах
SELECT parse_data_size('2.5MB');
+--------------------------+
| parse_data_size('2.5MB') |
+--------------------------+
| 2621440 |
+--------------------------+
  1. Разбор значения в гигабайтах
SELECT parse_data_size('1GB');
+------------------------+
| parse_data_size('1GB') |
+------------------------+
| 1073741824 |
+------------------------+
  1. Разбор значения в терабайтах
SELECT parse_data_size('1TB');
+------------------------+
| parse_data_size('1TB') |
+------------------------+
| 1099511627776 |
+------------------------+
  1. Неподдерживаемая единица измерения: ошибка
SELECT parse_data_size('1iB');
ERROR 1105 (HY000): errCode = 2, detailMessage = (10.16.10.3)[INVALID_ARGUMENT]Invalid Input argument "1iB" of function parse_data_size
  1. Входное значение NULL
SELECT parse_data_size(NULL);
+-----------------------+
| parse_data_size(NULL) |
+-----------------------+
| NULL |
+-----------------------+

Ключевые слова​

PARSE_DATA_SIZE