Поддержка функций: Распределение данных
Этот документ описывает функции партиционирования и бакетирования, поддерживаемые Selena.
Поддерживаемые типы таблиц
-
Бакетирование
Hash Bucketing поддерживается во всех типах таблиц. Random Bucketing (начиная с v3.1) поддерживается только в таблицах Duplicate Key.
-
Партиционирование
Expression Partitioning (начиная с v3.1), Range Partitioning и List Partitioning (начиная с v3.1) поддерживаются во всех типах таблиц.
Бакетирование
| Функция | Ключевой моме нт | Статус поддержки | Примечание |
|---|---|---|---|
| Стратегия бакетирования | Hash Bucketing | Да | |
| Random Bucketing | Да (v3.1+) | Random Bucketing поддерживается только в таблицах Duplicate Key. Начиная с v3.2, Selena поддерживает динамическое изменение количества tablet для создания в соответствии с информацией о кластере и размером данных. | |
| Тип данных Bucket Key | Date, Integer, String | Да | |
| Количество бакетов | Автоматическая установка количества бакетов | Да (v3.0+) | Автоматически определяется количеством узлов BE или объемом данных самой большой исторической партиции. Логика была отдельно оптимизирована для партиционированных и непартиционированных таблиц в более поздних версиях. |
| Динамическое увеличение количества бакетов для Random Bucketing | Да (v3.2+) |
Партиционирование
| Функция | Ключевой момент | Статус поддержки | Примечание |
|---|---|---|---|
| Стратегия партиционирования | Expression Partitioning | Да (v3.1+) |
|
| Range Partitioning | Да (v3.2+) | Начиная с v3.3.0, три специфические временные функции могут использоваться для Partition Keys: from_unixtime, from_unixtime_ms, str2date, substr/substring. | |
| List Partitioning | Да (v3.1+) | ||
| Тип данных Partition Key | Date, Integer, Boolean | Да | |
| String | Да |
|
Различия между стратегиями партиционирования
| Expression Partitioning | Range Partitioning | List Partitioning | ||
|---|---|---|---|---|
| Партиционирование на основе выражения временной функции | Партиционирование на основе выражения столбца | |||
| Тип данных | Date (DATE/DATETIME) |
|
|
|
| Поддержка нескольких Partition Keys | / (Поддерживает только один Partition Key типа date) | Да | Да | Да |
| Поддержка значений Null для Partition Keys | Да | / [2] | Да | / [2] |
| Ручное создание партиций перед загрузкой данных | / [3] | / [3] |
| Да |
| Автоматическое создание партиций во время загрузки данных | Да | Да | / | / |
примечание
- [1]: Необходимо использовать from_unixtime, str2date или другие временные функции для преобразования столбца в типы date.
- [2]: Значения Null будут поддерживаться в Partition Keys для List Partitioning начиная с v3.3.3.
- [3]: Партиции создаются автоматически.
Для подробного сравнения между List Partitioning и Expression Partitioning обратитесь к Сравнение между list partitioning и expression partitioning.