Имеет смысл, что данные измерений в исходной системе хранятся не в развернутом виде - это база данных, поэтому ее следует нормализовать.Как вы справляетесь с этим в хранилище данных - это другой вопрос.
В предыдущей работе мы обсуждали, следует ли и как переносить сводные / денормализованные / "широкие и неглубокие" данные.В нашей реализации каждая таблица принесла с собой представление (содержащее логику ETL) и процедуру (для загрузки таблицы).Это много инфраструктуры, поэтому мы подумали дважды, прежде чем добавить еще одну таблицу.Кроме того, требование к сводным данным часто исходило от аналитической группы для использования в Tableau, инструменте, который легко использует неповернутые / «узкие и глубокие» данные и сводит их - поэтому мы часто обсуждали, были ли действительно необходимы сводные данные.
В конце концов мы решили, что иногда будем переносить сводные данные, но только через представление отчетов.(У нас были соглашения об именах, чтобы отличать представления отчетов от представлений ETL.) Я думаю, что этот подход следует рассмотреть по причинам, которые вы упомянули сами: могут быть добавлены новые категории, что сделает ваш сводный дизайн устаревшим.Кроме того, если у вас есть несколько клиентов, использующих эти данные, каждый клиент может быть заинтересован в своем наборе категорий.Вы можете создать настраиваемое сводное представление отчетов в верхней части этой таблицы для каждого клиента.Это звучит как большая работа, но я думаю, что это меньше, чем переделывать сводную таблицу каждый раз, когда вы узнаете, что была добавлена новая категория.Удачи!