Azure SQL DWH Design для микропакетного обновления - PullRequest
1 голос
/ 25 марта 2019

Мне просто нужно одно мнение относительно дизайна базы данных с использованием Azure SQl DWH

Вот текущий сценарий:

Мы создаем систему DWH с использованием SQL DWH Azure, источником которой является БД Timeseries, которая собирает информацию, связанную с датчиком, каждые 15 секунд. Теперь у нас есть кластер кирпичей данных, работающий каждые 2 минуты, который агрегирует эти данные и сохраняет их в наших таблицах фактов. Для всех таблиц фактов я сохранил тип индекса: Clustered Column Store Index с распределением Round Robin

Точно так же наши таблицы измерений заполняются из разделов служебной шины. Эти темы получают все записи «Вставить / обновить / удалить», которые записываются с помощью веб-заданий Azure, которые непрерывно объединяют эти темы и вносят необходимые записи в наши таблицы измерений.

Для всех таблиц измерений я сохранил тип индекса: Кластерный индекс (Для бизнес-ключа) с распределением Round Robin.

Считаете ли вы, что это хороший дизайн для Azure SQl DWH, где записи обновляются в целевом виде в виде микропакета? Также есть некоторые отчеты Power BI, выполняемые для этих таблиц в DWH с использованием режима Direct Query Mode для анализа почти в реальном времени.

Пожалуйста, предложите, если есть какой-либо альтернативный подход

1 Ответ

2 голосов
/ 25 марта 2019

Вы получите гораздо лучшую производительность, изменив распределение фактов на HASH () и распределение измерений на Реплицирование.

Круглые таблицы будут перераспределять последующие запросы, а репликация будет избегать перестановок данных между узлами.до присоединения.

...