Последнее обновление
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⁶ |
Примеры
- Базовое использование: разбор значения в байтах
SELECT parse_data_size('1024B');
+--------------------------+
| parse_data_size('1024B') |
+--------------------------+
| 1024 |
+--------------------------+
- Разбор значения в килобайтах
SELECT parse_data_size('1kB');
+------------------------+
| parse_data_size('1kB') |
+------------------------+
| 1024 |
+------------------------+
- Разбор дробного значения в мегабайтах
SELECT parse_data_size('2.5MB');
+--------------------------+
| parse_data_size('2.5MB') |
+--------------------------+
| 2621440 |
+--------------------------+
- Разбор значения в гигабайтах
SELECT parse_data_size('1GB');
+------------------------+
| parse_data_size('1GB') |
+------------------------+
| 1073741824 |
+------------------------+
- Разбор значения в терабайтах
SELECT parse_data_size('1TB');
+------------------------+
| parse_data_size('1TB') |
+------------------------+
| 1099511627776 |
+------------------------+
- Неподдерживаемая единица измерения: ошибка
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
- Входное значение NULL
SELECT parse_data_size(NULL);
+-----------------------+
| parse_data_size(NULL) |
+-----------------------+
| NULL |
+-----------------------+
Ключевые слова
PARSE_DATA_SIZE