We can read concerning link loading in The Data Vault Guru that:
Has the staged source file of the link table been used to supply content to parent hub tables?
Yes
Should we understand that when a link is inserted we also have to insert (if not already present) all related hubs?
More generally, should we always insert in parent table (hub or link) when we insert in a child table (link or satellite)?
What if you have a database source that enforces referential integrity, from which you do a direct pull?
I have table Customer_Core with CustomerID which gets loaded to Hub_Customer and Sat_Customer_Core.
Then I have table Customer_Additional with CustomerID which gets loaded to Sat_Customer_Additional. CustomerID in this table cannot exist if it is not in Customer_Core. Should I still load Hub_Customer from this table?
I would say yes. Load from all possible occurrences in all sources. You’ll get a hit on performance but since you’re loading a hub which will probably never be that big, the performance hit isn’t significant.
Hello,
Thanks for the reply.
The special case I was thinking about is when we load link and we only have the BK of a referenced hub in the staged table.
I note that we always insert in parent table even if there is no descriptive data to add in a satellite.
Well it’s not a dbtvault limitation actually, they support the multi-source hub pattern. So no problems there. It’s just that the select with the unions will be slower, hence the performance hit I was referring to.