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

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>, несколько значений разделяются указанием длины
  • Если параметры недопустимы, возвращается ошибка

Примеры​

  1. Базовое использование: 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 |
+------------------------------------------------------------+
  1. 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 |
+--------------------------------------------------------------+
  1. LIST с одним значением
SELECT auto_partition_name('list', 'helloworld');
+-------------------------------------------+
| auto_partition_name('list', 'helloworld') |
+-------------------------------------------+
| phelloworld10 |
+-------------------------------------------+
  1. LIST с несколькими значениями
SELECT auto_partition_name('list', 'hello', 'world');
+-----------------------------------------------+
| auto_partition_name('list', 'hello', 'world') |
+-----------------------------------------------+
| phello5world5 |
+-----------------------------------------------+
  1. Поддержка специальных символов UTF-8: режим LIST
SELECT auto_partition_name('list', 'ṭṛì', 'ḍḍumai');
+-------------------------------------------------------+
| auto_partition_name('list', 'ṭṛì', 'ḍḍumai') |
+-------------------------------------------------------+
| p1e6d1e5bec31e0d1e0dumai6 |
+-------------------------------------------------------+
  1. Недопустимое значение параметра единицы времени
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