Какой хороший подход к проектированию хранилища данных, если запрошенные отчеты требуют обобщенной информации об одних и тех же измерениях (и с той же степенью детализации), но базовые данные хранятся в отдельных таблицах фактов?
Например, отчет, показывающий общую выплаченную зарплату и общие расходы по каждому сотруднику за каждый год, когда зарплата и расходы регистрируются в разных таблицах фактов. Или отчет, в котором перечислены общие продажи за месяц и полученные за месяц запасы для каждой SKU, проданной компанией, когда продажи поступают из одной таблицы фактов, а получение - из другой.
Наивное решение этой проблемы кажется довольно простым: просто запросите и объедините обе таблицы фактов параллельно, а затем объедините агрегированные результаты либо в хранилище данных, либо в клиентском приложении.
Но меня также интересуют другие способы думать об этой проблеме. Как другие решили это? Мне интересно, как о схеме и дизайне хранилища данных, так и о том, как сделать этот дизайн удобным для клиентских инструментов для создания отчетов, подобных приведенным выше примерам.
Кроме того, есть ли у этого варианта использования "сэндвич измерений" название в канонической терминологии хранилищ данных? Если да, это упростит поиск через Google.
Мы работаем с SQL Server, но я надеюсь, что вопросы, которые у меня возникают, не зависят от платформы.