Горизонтальное масштабирование звездообразной схемы

AFAIK, в случае реляционной базы данных на оборудовании MPP ключом к производительности является правильное распределение данных. Хотя многомерное моделирование касается гибкости запросов, вы даже не знаете, как данные будут запрашиваться (перетасовываться) в будущем.

Например, у вас есть хранилище данных MPP (Greenplum, Redshift, Synapse Analytics). Например, через 1-2 года вы ожидаете, что ваша таблица фактов вырастет до 10 миллиардов строк, и у вас будет 15-30 таблиц измерений, содержащих 10 миллионов строк. Как данные должны распределяться по узлам DW? Есть ли какие-нибудь общие методы? Например, таблица фактов осколка и репликация таблиц измерений. Или мне следует минимизировать количество узлов в MPP DW?

Я могу привести конкретный вариант использования, но я считаю, что вопрос возникает из-за моего непонимания того, как пространственное моделирование может сочетаться с масштабированием.


person VB_    schedule 29.12.2019    source источник
comment
совместим ли ваш вариант использования с перемещением всех данных измерений в таблицу фактов? и имея только 1 широкий стол? Это может быть наиболее эффективным подходом для некоторых случаев использования redhsift.   -  person Jon Scott    schedule 30.12.2019
comment
@JonScott Я думаю, что нет, поскольку а) количество измерений довольно велико, а объем таблицы фактов значительно вырастет б) у меня SCD типа 2 в) у меня будет несколько таблиц фактов в будущем, и я хочу иметь согласованные размеры, не уверен как добиться этого с помощью плоского стола   -  person VB_    schedule 30.12.2019
comment
Что по идее мне не хватило практики в этих вопросах)   -  person VB_    schedule 30.12.2019


Ответы (1)


Один из приемов, который я видел в прошлом с успехом, заключается в следующем: сегментируйте таблицу фактов (например, путем изменения ключа даты) и распределяйте все измерения по всем узлам. Таким образом, все соединения могут быть выполнены локально.

Обратите внимание, что даже с большими размерами их общий размер на диске должен составлять небольшую часть от общего размера, необходимого для таблицы фактов.

person nsousa    schedule 30.12.2019
comment
Спасибо за ваш ответ! Что вы делали, когда добавляли новые узлы? Поддерживал ли ваш склад последовательное хеширование и автоматическую повторную сегментацию? Или это было сделано вручную? - person VB_; 30.12.2019
comment
это было сделано вручную, iirc. Но в зависимости от вашего db of choicd у вас могут быть инструменты, чтобы сделать это автоматически. - person nsousa; 31.12.2019