Можно ли использовать системную временную таблицу в дизайне DWH фактического измерения?

Скажем, я хочу реализовать таблицу измерений истории SCD type2 (или я должен сказать таблицу с атрибутами SCD type2) в системе DWH, которую я сейчас внедряю как "обычную таблицу" с natural key + primary surrogate key + datefrom + dateto + iscurrent дополнительные столбцы.

где

  • primary surrogate key необходим для использования его в качестве внешнего ключа во всех таблицах фактов и
  • datefrom + dateto + iscurrent столбцы необходимы для отслеживания истории.

Теперь я хочу использовать временную таблицу с версией системы в проекте DWH для измерения фактов, но MSDN говорит, что:

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

Похоже, я должен использовать вид с primary surrogate key генерирование "на лету" или другой процесс ETL, но мне не нравятся обе идеи...

Может есть другой способ?

1 ответ

Решение

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

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

 ROW_NUMBER () OVER (ORDER BY EmployeeID, ValidTo) AS EmployeeKey

И затем присоединение к таблице измерений при загрузке таблицы фактов, как обычно.

Но интересно то, что это может отложить ваше пространственное моделирование и выбор типов SCD, пока они вам действительно не понадобятся. А сокращение и отсрочка разработки и реализации витрины данных помогает быстрее обеспечить постепенный прогресс. Вы можете с уверенностью доставлять начальный набор отчетов, используя представления по вашей постоянной промежуточной области (или "озеру данных", если вы предпочитаете этот термин), в то время как ваше проектное мышление для витрин данных развивается.

Другие вопросы по тегам