Data Vault

What is Data Vault?

Data Vault is a data warehouse modeling methodology designed to build an enterprise data platform that is:

  • scalable
  • auditable
  • historically accurate
  • adaptable to changing source systems
  • able to integrate data from many different sources

The central idea is: Separate business identity, relationships, and descriptive history.

Data Vault mainly does this through three building blocks:

Hub + Link + Satellite

You will often see this called: Hubs, Links, and Satellites — HLS

Hub: Represents the primary business objects.
Link: Defines the associations between business objects.
Satellite: Stores descriptive attributes and records historical changes to those attributes.

You can think this way, a Bank, it has many source systems

CRM
│
├── Customer
│
Core Banking
│
├── Customer
├── Account
│
Credit System
│
├── Customer
├── Loan
│
Credit Card System
│
├── Customer
├── Card
│
Mobile Banking
│
├── Customer
└── Transaction

A customer has:

CRM            → C123
Core Banking   → 100023
Credit System  → CU-789
Card System    → 998877

Assuming Source systems changeing

# Now

Customer
----------------
Customer_ID
Name
Email
Phone

# tomorrow changing to
Customer
----------------
Customer_ID
First_Name
Last_Name
Email
Mobile_Phone

Data Vault will sperate Business Identity and Descriptive Attributes

Hub_Customer, looks after “Customer Business Key”

Satellite_Customer: looks after

“Name
Email
Phone
Address
Status
… “

Once source add a new attribute – “Preferred_Language”, System only need change Satellite.

Assuming, Historical data tracking

assuming,

2024:
Customer = John
City = Toronto

2025:
Customer = John
City = Vancouver

2026:
Customer = John
City = Calgary

under this scenario, enterprice wants to know:
“When did John live in Toronto? When did he move to Vancouver, and when did he move to Calgary?”

Data Vault does “Don’t overwrite histrory unnecessarily“, keep all history change

Hub Customer
     │
     ▼
Satellite Customer
     
Customer_Key | City       | Load_Date
-------------|------------|-----------
C10001       | Toronto    | 2024-01-01
C10001       | Vancouver  | 2025-03-15
C10001       | Calgary    | 2026-02-10

Auditability

Enterprice offen asks where does this data come?
e.g. Customer Email = abc@gmail.com

Data Vault highly emphasizes:

  • Source System
  • Load Date
  • Record Source
  • Business Key
  • Hash Key
  • Hash Diff

so we create

Source System
↓
Raw Data
↓
Data Vault
↓
Business Data

to keep data lineage / history

The three core components of Data Vault

Hub – Link – Satellite

Hub represents a unique business concept or business key. It answers “Who is this business entity?”

Link represents a business relationship between Hubs. It is Business relationship

Customer owns Account
Customer applies for Loan
Customer holds Credit Card
Employee works for Branch
Supplier provides Product

Satellite stores descriptive attributes and their historical changes. It descripts Hub or Link and information lineages, history change.

example: customer

Data Vault will ask:
What is this entity? —- Hub

Customer ID = C10001

How does it relate to other objects? —- Link

Link Customer-Account
Customer C10001
|
| owns
|
Account A90001

What attributes does this Customer have? —- Satellite

Customer C10001

Name = John Smith
Email = john@gmail.com
City = Toronto
Status = Active

             ┌──────────────┐
             │    HUB       │
             │              │
             │ WHO ARE YOU? │
             └──────┬───────┘
                    │
                    │ relationship
                    ▼
             ┌──────────────┐
             │    LINK      │
             │              │
             │ WHO IS       │
             │ RELATED TO   │
             │ WHOM?        │
             └──────┬───────┘
                    │
                    ▼
             ┌──────────────┐
             │  SATELLITE   │
             │              │
             │ WHAT DO WE   │
             │ KNOW ABOUT   │
             │ IT?          │
             └──────────────┘

A complete example

assuming:

Customer:
C001

Account:
A100

Customer open Account.

Hub Customer

Hub_Customer

Customer_HK | Customer_BK | Load_DTS  | Record_Source
-------------|-------------|-----------|--------------
...          | C001        | 2026-01-01| CRM

Hub Account

Hub_Account

Account_HK | Account_BK | Load_DTS  | Record_Source
-----------|------------|-----------|--------------
...        | A100       | 2026-01-01| CoreBanking

Link Customer Account

Link_Customer_Account

Customer_HK | Account_HK | Load_DTS  | Record_Source
------------|------------|-----------|--------------
...         | ...        | 2026-01-01| CoreBanking

Satellite Customer

Sat_Customer

Customer_HK
Name
Email
City
Status
Load_DTS
Record_Source
Hash_Diff

e.g.

C001 | John | john@gmail.com | Toronto | Active

then:

C001 | John | john@gmail.com | Vancouver | Active

we keep the histrory

Key Takeaways

A scalable, auditable, historical data modeling methodology for enterprise data integration.

ComponentEnglish中文人话
HubBusiness identity / key业务身份你是谁
LinkBusiness relationship业务关系你和谁有关系
SatelliteDescriptive attributes + history属性 + 历史关于你的信息

Hub tells us WHAT business entity we have, Link tells us HOW entities are related, and Satellite tells us WHAT we know about those entities over time.

Hub 告诉我们“业务对象是谁”,Link 告诉我们“对象之间是什么关系”,Satellite 告诉我们“关于这些对象知道什么,以及这些信息如何随时间变化”。