Сочетание методов агрегирования В агрегатах можно сочетать связи и столбцы "группировать по". Для агрегатов на основе связей может потребоваться разделить денормализованные таблицы измерений на несколько таблиц. Если это затратно или нецелесообразно для определенных таблиц измерений, необходимые атрибуты можно реплицировать в таблице агрегирования для этих измерений и использовать связи для остальных.
Например, приведенная ниже модель реплицирует Month, Quarter, Semester и Year в таблице Sales Agg. Между таблицами Sales Agg и Date связи нет, но с Customer и Product Subcategory связи существуют. Режим хранения Sales Agg — импорт.
В следующей таблице показаны записи, заданные в диалоговом окне Управление агрегированием для таблицы Sales Agg. Записи GroupBy, где Date является таблицей сведений, обязательны для обращения к агрегатам для запросов, которые выполняют группирование по атрибутам Date. Как и в предыдущем примере, записи GroupBy для CustomerKey и ProductSubcategoryKey не влияют на обращения к агрегатам (за исключением DISTINCTCOUNT) из-за наличия связей.
Примеры запросов к комбинированным агрегатам Приведенный ниже запрос достигает агрегата, так как столбец CalendarMonth охватывается таблицей агрегирования, а столбец CategoryName доступен через связи "один ко многим". Для столбца SalesAmount используется агрегат SUM.
Приведенный ниже запрос не достигнет агрегата, так как столбец CalendarDay не охватывается таблицей агрегирования.
Приведенный ниже запрос логики операций со временем не достигнет агрегата, так как функция DATESYTD создает таблицу со значениями из столбца CalendarDay, но таблица агрегирования не охватывает CalendarDay.
Приоритет агрегирования Приоритет агрегирования позволяет учитывать несколько таблиц агрегирования в одном вложенном запросе.
Ниже приведен пример составной модели, содержащей несколько источников.
Таблица Driver Activity, работающая в режиме DirectQuery, содержит более триллиона строк данных Интернета вещей, полученных из системы больших данных. Она обслуживает запросы детализации для просмотра отдельных показаний Интернета вещей в управляемом контексте фильтров.
Таблица Driver Activity Agg — промежуточная таблица агрегирования в режиме DirectQuery. Она содержит более миллиарда строк в Хранилище данных SQL Azure и оптимизирована в источнике с помощью индексов columnstore.
Для таблицы Driver Activity Agg2, работающей в режиме импорта, характерен высокий уровень детализации, так как она содержит немного атрибутов "группировать по" с низкой кратностью. Количество строк может ограничиваться тысячами, поэтому она легко помещается в кэш в памяти. Эти атрибуты используются важной панелью мониторинга для руководителей, поэтому запросы, ссылающиеся на них, должны выполняться с максимально возможной скоростью.