Последнее обновление
AUTO_PARTITION_NAME
Описание
Функция AUTO_PARTITION_NAME используется для формирования имён партиций при автоматическом партиционировании. Она поддерживает два режима: в режиме RANGE имена партиций формируются на основе единиц времени, а в режиме LIST имена партиций формируются на основе строковых значений.
Поддерживается начиная с Apache Doris 2.1.6.
Синтаксис
AUTO_PARTITION_NAME('RANGE', <unit>, <datetime>)
AUTO_PARTITION_NAME('LIST', <value>[, <value> ...])
Параметры
| Параметр | Описание |
|---|---|
'RANGE' | Режим партиционирования RANGE, в котором имена партиций формируются на основе времени |
'LIST' | Режим партиционирования LIST, в котором имена партиций формируются на основе строковых значений |
<unit> | Единица времени для режима RANGE: year, month, day, hour, minute, second. Тип: VARCHAR |
<datetime> | Значение даты и времени для режима RANGE. Тип: DATETIME |
<value> | Значение партиции для режима LIST (можно указать несколько значений). Тип: VARCHAR |
Возвращаемое значение
Возвращает значение типа VARCHAR, представляющее сформированное имя партиции.
Особые случаи:
- Режим RANGE: имя партиции имеет формат
pYYYYMMDDHHMMSSи усекается до точности, соответствующей указанной единице времени - Режим LIST: имя партиции имеет формат
p<value><length>, несколько значений разделяются указанием длины - Если параметры недопустимы, возвращается ошибка
Примеры
- Базовое использование: RANGE по дням
SELECT auto_partition_name('range', 'day', '2022-12-12 19:20:30');
+------------------------------------------------------------+
| auto_partition_name('range', 'day', '2022-12-12 19:20:30') |
+------------------------------------------------------------+
| p20221212000000 |
+------------------------------------------------------------+
- RANGE по месяцам
SELECT auto_partition_name('range', 'month', '2022-12-12 19:20:30');
+--------------------------------------------------------------+
| auto_partition_name('range', 'month', '2022-12-12 19:20:30') |
+--------------------------------------------------------------+
| p20221201000000 |
+--------------------------------------------------------------+
- LIST с одним значением
SELECT auto_partition_name('list', 'helloworld');
+-------------------------------------------+
| auto_partition_name('list', 'helloworld') |
+-------------------------------------------+
| phelloworld10 |
+-------------------------------------------+
- LIST с несколькими значениями
SELECT auto_partition_name('list', 'hello', 'world');
+-----------------------------------------------+
| auto_partition_name('list', 'hello', 'world') |
+-----------------------------------------------+
| phello5world5 |
+-----------------------------------------------+
- Поддержка специальных символов UTF-8: режим LIST
SELECT auto_partition_name('list', 'ṭṛì', 'ḍḍumai');
+-------------------------------------------------------+
| auto_partition_name('list', 'ṭṛì', 'ḍḍumai') |
+-------------------------------------------------------+
| p1e6d1e5bec31e0d1e0dumai6 |
+-------------------------------------------------------+
- Недопустимое значение параметра единицы времени
SELECT auto_partition_name('range', 'years', '2022-12-12');
ERROR 1105 (HY000): errCode = 2, detailMessage = range auto_partition_name must accept year|month|day|hour|minute|second for 2nd argument
Ключевые слова
AUTO_PARTITION_NAME,AUTO,PARTITION,NAME