Можно ли использовать системную версию темпоральной таблицы в проекте DWH с измерением фактов? - PullRequest
0 голосов
/ 09 мая 2018

Скажем, я хочу реализовать таблицу измерений истории 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 Ответ

0 голосов
/ 09 мая 2018

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...