Data Vault 2.0: Graining LINK с определенной версией PIT некоторого HUB
Как лучше всего реализовать следующий сценарий. У меня есть 3 бизнес-объекта, сопоставленных непосредственно с концентраторами:
- Алгоритм (с несколькими SAT и таблицей PIT)
- поставщик
- потребитель
Это также транзакция, которая связывает их все, представленная в виде LINK Algo_Supplier_Consumer: она имеет SAT с данными результатов, собранными с помощью конкретного алгоритма в паре поставщик-потребитель.
Алгоритм является классическим SCD в этом случае. Но когда данные поступают в цикле ETL, могут быть результаты из разных версий алгоритма. Сырой кортеж выглядит следующим образом:
(временная метка, Algo, Algo_timestamp, поставщик, потребитель, результат)
Где Algo_timestamp может быть значительно старше, чем отметка времени. Я хочу отслеживать это в отчетах, потому что конечный результат зависит от результата и подробностей алгоритма, находящихся в SAT алгоритма.
Поэтому я должен явным образом ввести отдельный HUB, такой как 'Algo_Version' с соответствующей ссылкой LINK to Algorithm, и изменить Algo_Supplier_Consumer LINK, чтобы использовать ссылку на Algo_Version вместо Algorithm ref.
Или, LINK Algo_Supplier_Consumer может быть просто детализирован с помощью ключа PIT алгоритма. Будет ли это Data Vault 2.0?
Кроме того, первый способ заставляет меня переопределить все алгоритмы SAT для Algo_Version. Но это выглядит как накладные расходы, потому что новый Algo_Version создается каждый раз, когда изменяется любой из параметров Algo. Это правильно?