# Multi-Active Satellite or Weak Hub + Link?

**URL:** https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330
**Category:** Data Vault 2.0
**Tags:** multi-active-sat
**Created:** [June 16, 2022, 8:19am UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330 "2022-06-16T08:19:04Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![FrenkLoonen](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/frenkloonen/32/119_2.png) [@FrenkLoonen](https://forum.data-community.org/u/FrenkLoonen)
#### Post date: [June 16, 2022, 8:19am UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/1 "2022-06-16T08:19:04Z")

</div>

Which flavor do you guys like best?

I have two tables:  
Customer\_Core with PK CustomerID that I load into Hub\_Customer and Sat\_Customer  
Customer\_Additional with PK CustomerID+Method+Number

Method is always a 2-character string (of about 20 distinct values) for which I haven’t figured out what value means what. In current implementations using this same table, they always filter on value ‘01’ but I feel like this is done solely to fix the grain difference in the easiest way. ‘01’ always exists.  
Number is just an extra unique identifier, so it seems, that only one rare occasions makes a record unique. Looks like a table-scoped sequence (instead of a record-scoped sequence).  
Basically, the table contains funky data, that I just have to deal with.

How would you model this table?

- MAS\_Customer\_Additional with both Method+Number as child dependent keys, OR
- (weak) Hub\_Customer\_Additional with a (concatenated or composite?) three-part BK and Link\_Customer\_Customer\_Additional

I’m in favor of the first. I’ll end up with fewer tables and going towards the BDV it will be easier to apply a business rule (where I most probably will be doing some filtering similar to the current implementation) to end up with a satellite with the same grain as Customer.

All thoughts are appreciated!

---

<div class="post-metadata">

### Author: ![patrickcuba](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/patrickcuba/32/19_2.png) [@patrickcuba](https://forum.data-community.org/u/patrickcuba)
#### Post date: [June 16, 2022, 3:07pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/2 "2022-06-16T15:07:58Z")

</div>

No such think as “weak” entities in DV2.0; that is an Ensemble DV concept.

Satellite with a dependent-child key (your method column)  
Or if you wish to treat your descriptive content as a SET then use an MSat

---

<div class="post-metadata">

### Author: ![FrenkLoonen](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/frenkloonen/32/119_2.png) [@FrenkLoonen](https://forum.data-community.org/u/FrenkLoonen)
#### Post date: [June 16, 2022, 5:07pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/3 "2022-06-16T17:07:24Z")

</div>

My client had all its data analysts and engineers do the CDVDM certification so I’m trying to figure out which patterns would be preferrable. Personally I’ve always preferred satellites with DCK’s.

---

<div class="post-metadata">

### Author: ![patrickcuba](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/patrickcuba/32/19_2.png) [@patrickcuba](https://forum.data-community.org/u/patrickcuba)
#### Post date: [June 16, 2022, 5:16pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/4 "2022-06-16T17:16:52Z")

</div>

That’s unfortunate

Get them to read this

> **[Seven Deadly Sins of Fake Vault](https://medium.com/snowflake/seven-deadly-sins-of-fake-vault-ce5b1ecfd264)**
>
> The term “Fake Vault” was coined at wwdvc 2019; Fake Vaults are supposed Data Vault 2.0 implementations that fail the basic tenets of an…

---

<div class="post-metadata">

### Author: ![FrenkLoonen](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/frenkloonen/32/119_2.png) [@FrenkLoonen](https://forum.data-community.org/u/FrenkLoonen)
#### Post date: [June 16, 2022, 5:32pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/5 "2022-06-16T17:32:34Z")

</div>

By now I don’t think there’s any article of yours I myself haven’t yet read… with this particular post, I was already waiting for the right moment to drop this bomb on them 😇

---

<div class="post-metadata">

### Author: ![FrenkLoonen](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/frenkloonen/32/119_2.png) [@FrenkLoonen](https://forum.data-community.org/u/FrenkLoonen)
#### Post date: [June 21, 2022, 12:58pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/6 "2022-06-21T12:58:19Z")

</div>

@patrickcuba

I’m going to order your book tonight (I really am!), hoping to find the answer in there as well. In the meantime, do you happen to have a blog post somewhere that describes the difference between MSat and a Satellite with a dependent-child key (and isn’t there a nice abbreviation for that as well?)? I think it will be similar to the explanation [**in this blog post**](https://www.linkedin.com/pulse/data-vault-constructs-satellite-variations-modern-warehousing-kaul), right?

Is [**the dbtvault implementation**](https://dbtvault.readthedocs.io/en/latest/tutorial/tut_multi_active_satellites/) of an MSat what you call a DCK Sat? (also, kind of funny, the use the term Child-Dependent Key, not Dependent Child Key)

---

<div class="post-metadata">

### Author: ![patrickcuba](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/patrickcuba/32/19_2.png) [@patrickcuba](https://forum.data-community.org/u/patrickcuba)
#### Post date: [June 21, 2022, 2:12pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/7 "2022-06-21T14:12:28Z")

</div>

Hello!

Ah! The book I spent a largish section on the difference and their use case. Where choosing one or the other may succeed or fail depending on how you structure them.

I believe dbtvault has implemented the msat style from the book! @alex.higgs or @neil.strange can confirm!

Book also includes the load code as a template for the SQL literate to grasp how these sats work.  
The sat with a dep-key code doesn’t differ from a regular Sat load code too much.

I don’t have a blog on that I’m afraid!

---

<div class="post-metadata">

### Author: ![patrickcuba](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/patrickcuba/32/19_2.png) [@patrickcuba](https://forum.data-community.org/u/patrickcuba)
#### Post date: [June 21, 2022, 2:15pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/8 "2022-06-21T14:15:35Z")

</div>

Btw Christian follows Ensemble Data Vault, not Data Vault 2.0. Ensemble does not allow for dep-keys in sats, instead each of these dep-keys end up being a hub!

That means you end up with far too many tables to join on whereas the DV2.0 approach keeps this number down!

> **[A Data Vault Analogy](https://medium.com/snowflake/a-data-vault-analogy-182a15307769)**
>
> Born out of a need to model, integrate, and historicize a vast landscape of operational systems around business objects, data vault has…

---

<div class="post-metadata">

### Author: ![patrickcuba](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/patrickcuba/32/19_2.png) [@patrickcuba](https://forum.data-community.org/u/patrickcuba)
#### Post date: [June 21, 2022, 2:16pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/9 "2022-06-21T14:16:41Z")

</div>

Of course the choice is yours, follow Hultgren or Linstedt  
There’s a lot more different between the two than just using hash keys!

---

<div class="post-metadata">

### Author: ![FrenkLoonen](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/frenkloonen/32/119_2.png) [@FrenkLoonen](https://forum.data-community.org/u/FrenkLoonen)
#### Post date: [June 22, 2022, 7:45am UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/10 "2022-06-22T07:45:56Z")

</div>

Sweet, looking forward to the book then! It makes me wonder, what the dbtvault team has used for inspiration (or in a more literal sense, where they found the SQL or to what degree they came up with the SQL themselves) for their implementation of all patterns.

Really appreciate your swift and elaborate responses 🤗

---

<div class="post-metadata">

### Author: ![alex.higgs](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/alex.higgs/32/434_2.png) [@alex.higgs](https://forum.data-community.org/u/alex.higgs)
#### Post date: [June 22, 2022, 5:54pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/11 "2022-06-22T17:54:17Z")

</div>

We implemented as in Patrick’s book, with a few minor adjustments to support dbt’s materialisations

---

<div class="post-metadata">

### Author: ![RhysHanscombe](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.data-community.org/rhyshanscombe/32/394_2.png) [@RhysHanscombe](https://forum.data-community.org/u/RhysHanscombe)
#### Post date: [December 1, 2025, 2:29pm UTC](https://forum.data-community.org/t/multi-active-satellite-or-weak-hub-link/330/12 "2025-12-01T14:29:41Z")

</div>


