Все поддерживаемые возможности партиционирования и бакетирования

В этом разделе перечислены все поддерживаемые в StarRocks возможности партиционирования и бакетирования.

Поддерживаемые типы таблиц

  • Bucketing

    Hash Bucketing поддерживается для всех типов таблиц. Random Bucketing (начиная с v3.1) поддерживается только для таблиц Duplicate Key.

  • Partitioning

    Expression Partitioning (с v3.1), Range Partitioning и List Partitioning (с v3.1) поддерживаются во всех типах таблиц.

Бакетирование

Возможность Особенности Поддержка Примечание
Bucketing strategy Hash Bucketing Да
Random Bucketing Да (v3.1+) Random Bucketing поддерживается только в таблицах Duplicate Key.
Начиная с v3.2, **StarRocks** поддерживает динамическую настройку числа создаваемых tablets в зависимости от информации о кластере и объёма данных.
Bucket Key data type Date, Integer, String Да
Bucket number Автоматическое определение количества бакетов Да (v3.0+) Автоматически определяется по числу BE‑узлов или по объёму данных в наибольшей исторической партиции.
Логика отдельно оптимизирована для партиционированных и непартиционированных таблиц в более поздних версиях.
Динамическое уменьшение количества бакетов при Random Bucketing Да (v3.2+)

Партицирование

Возможность Особенности Поддержка Примечание
Partitioning strategy Expression Partitioning Да (v3.1+)
  • Включает партиционирование по time‑функции (с v3.0) и по column expression (с v3.1)
  • Поддерживаемые time‑функции: date_trunc, time_slice
Range Partitioning Да (v3.2+) С v3.3.0 можно использовать три специальные time‑функции как Partition Key: from_unixtime, from_unixtime_ms, str2date, substr/substring.
List Partitioning Да (v3.1+)
Partition Key data type Date, Integer, Boolean Yes
String Да
  • String‑типы Partition Key поддерживаются только в Expression Partitioning и List Partitioning.
  • Range Partitioning не поддерживает String‑типы Partition Key. Используйте str2date для преобразования в date‑типы.

Разница различных подходов к партицированию

Expression Partitioning Range Partitioning List Partitioning
Партицирование на основе временной функции Партицирование на основе выражения в столбце таблицы
Тип данных Date (DATE/DATETIME)
  • String (кроме BINARY)
  • Date (DATE/DATETIME)
  • Integer и Boolean
  • String (кроме BINARY) [1]
  • Date или timestamp [1]
  • Integer
  • String (кроме BINARY)
  • Date (DATE/DATETIME)
  • Integer и Boolean
Поддержка нескольких ключей партицирования / (Поддерживает только один date-type ключ партицирования) Да Да Да
Поддежка NULL значений для ключей партицирования Да / [2] Да / [2]
Ручное создание партиций перед загрузкой данных / [3] / [3]
  • Да, если партиция вручную создана в батче
  • Нет, если применяется стратегия динамического партицирования
Да
Автоматическое создание партиций во время загрузки данных Да Да / /
  • [1]: необходимо использовать from_unixtime, str2date или другие time‑функции для преобразования столбца в типы дат.

  • [2]: значения NULL в Partition Key для List Partitioning поддерживаются начиная с v3.3.3.

  • [3]: партиции создаются автоматически.