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