Configure a multi-version load

You have a historized ODS and also perhaps some delete detection activated in your ODS or a source that contains several entries for the same Business Key but with a different timeline: you can load the full history of your source object in your Data Vault DWH with the Multi-Version Load behavior.

We can configure the Multi-Version Load behavior on the following Model Objects:

  • Satellite
  • Link Satellite
  • Business Satellite
  • Business Link Satellite
  • Mart Dimension

To configure it, you must set, for all the Dataflow Set Model Objects containing historized data, the ValidFrom Source Term Property to the Dataflow Set Model Object Term containing the start date of the source row:

For Data Vault Model Objects, the corresponding Hub and all the related Links must be deduplicated, so have the Deduplication Method Property set.

To have a better understanding, let's take an example.

Source data

In this example, we have a historized source table named ProductS.

Products 317, 382, 383, and 384 have several rows for different timelines:

Data Vault model

Let's create the following object:

  • A Hub named HubProductS (source data ODS_Sales.AWProduction_ProductS)
    • Set the Deduplication Method Property to Distinct
  • A Satellite named SatProductS (source data ODS_Sales.AWProduction_ProductS) and his relationship to the HubProductS
    • Set the ValidFrom Source Term Property with the Term ODS_ValidFrom

Load of data

Generate, replace the placeholders, deploy, and load the project.

Then check the data for the ProductS :

SELECT sat.[BG_LoadTimestamp]
      , hub.[Hub_HK]
      , hub.[ProductSID]
      , sat.[BG_ValidFromTimestamp]
      , sat.[Name]
      , sat.[ProductSNumber]
  FROM [RDV].[RDV_SAT_AW_ProductS1] sat
  left join [RDV].[RDV_HUB_AW_ProductS] hub on hub.Hub_HK = sat.Hub_HK
  where hub.[ProductSID] in (317, 382, 383, 384)

You should have this result:

The history from the source was loaded, and the load dates (BG_ValidFromTimestamp) are the same as the ODS_ValidFrom Term mapped.