---
title: Link
description: A Link stores each combination of business keys that a source delivers for its Hubs once, with its hash key Link_HK, in a table of the Raw Vault layer.
---

[Skip to content](https://knowledge.bigenius-x.com/create-a-link#main-content)

[Contact us](https://knowledge.bigenius-x.com/kb-tickets/new?hsLang=en) [Go to Customer Portal](https://knowledge.bigenius-x.com/customer-portal?hsLang=en)

[![TRI\_Logo\_biGENIUS\_2020\_RGB\_s](https://knowledge.bigenius-x.com/hs-fs/hubfs/Marketing/TRI_Logo_biGENIUS_2020_RGB_s.png?width=150&height=42&name=TRI_Logo_biGENIUS_2020_RGB_s.png)](https://www.bigenius-x.com/)

Open main navigation

Close main navigation

- [Contact us](https://knowledge.bigenius-x.com/kb-tickets/new)
- [Go to Customer Portal](https://knowledge.bigenius-x.com/customer-portal)

 How can we help you?

- There are no suggestions because the search field is empty.

1. [biGENIUS-X Knowledge Base](https://knowledge.bigenius-x.com/?hsLang=en)
2. [Generators](https://knowledge.bigenius-x.com/generators?hsLang=en)
3. [Model Object Type](https://knowledge.bigenius-x.com/generators?hsLang=en#model-object-type)

# Link

**Applies to**  
Platform: Microsoft SQL Server · Snowflake · Snowflake dbt · Databricks · Databricks dbt · Fabric Lakehouse · Fabric Warehouse · Oracle  
Architecture: Data Vault

A Link stores each combination of business keys that a source delivers for its Hubs once, with its hash key `Link_HK`, in a table of the Raw Vault layer. Use it for a relationship or transaction between business objects, such as a loyalty card that belongs to a customer. After each load, the result view shows one row per key combination and the load that first delivered it.

For special cases, use the [Driving Key Link](https://knowledge.bigenius-x.com/create-a-driving-key-link?hsLang=en), [Hierarchical Link](https://knowledge.bigenius-x.com/create-a-hierachical-link?hsLang=en) or [Same As Link](https://knowledge.bigenius-x.com/create-a-same-as-link?hsLang=en).

### Sources and relationships

A Link reads [Stages](https://knowledge.bigenius-x.com/create-a-stage?hsLang=en), [RawVault Composites](https://knowledge.bigenius-x.com/create-a-raw-vault-composite?hsLang=en) and [Store Entities](https://knowledge.bigenius-x.com/create-a-store-entity?hsLang=en) of a linked Data Store project, in one or more dataflows. It has one or more relationships to [Hubs](https://knowledge.bigenius-x.com/create-a-hub?hsLang=en). The foreign-key terms of the relationships are the business keys of the Link. With one relationship, `Link_HK` equals the key of the Hub row.

Link Satellites, Non-Historized Link Satellites, Record Tracking Link Satellites, Effectivity Link Satellites reference a Link. PIT, Current View, History View, BusinessVault Composite, [Vault Out](https://knowledge.bigenius-x.com/create-a-vault-out?hsLang=en) and the Business Vault types can read it as a source.

### Create a Link

- With the wizard: open the menu of a Stage, RawVault Composite or Store Entity, choose **Automate** and then **Create Link**. Its steps are [Create Model Object](https://knowledge.bigenius-x.com/wizard-step-create-model-object?hsLang=en), [Create Dataflow](https://knowledge.bigenius-x.com/wizard-step-create-dataflow?hsLang=en), [Create Multiple Relations](https://knowledge.bigenius-x.com/wizard-step-create-multiple-relations?hsLang=en), [Define Roles](https://knowledge.bigenius-x.com/wizard-step-create-relations-with-role?hsLang=en), [Map Foreign Key Terms](https://knowledge.bigenius-x.com/wizard-step-map-foreign-key-terms?hsLang=en) and [Add to View](https://knowledge.bigenius-x.com/wizard-step-add-to-view?hsLang=en). See [Create a Model Object with the wizard](https://knowledge.bigenius-x.com/create-a-model-object-with-the-wizard?hsLang=en).
- Manually: [create a model object](https://knowledge.bigenius-x.com/create-a-model-object?hsLang=en) of type Link in the Raw Vault layer, [add a relationship](https://knowledge.bigenius-x.com/add-a-relationship?hsLang=en) to each Hub, [create a dataflow set](https://knowledge.bigenius-x.com/create-a-data-flow-set?hsLang=en), [add the source model object](https://knowledge.bigenius-x.com/add-a-model-object-into-a-data-flow-set?hsLang=en) and [map the foreign-key terms](https://knowledge.bigenius-x.com/map-a-source-term-with-a-target-term?hsLang=en).

A Link holds only foreign-key terms and Default Terms. Validation reports an error for any other term; descriptive data goes into a Link Satellite.

### Properties

- [Implementation Type](https://knowledge.bigenius-x.com/implementation-type-model-object?hsLang=en): `Permanent` only.
- [Foreign Key Mode](https://knowledge.bigenius-x.com/foreign-key-mode-model-object?hsLang=en): whether the table gets foreign keys to the Hub tables. With `Create Disabled`, the default, they are created and disabled.
- [Load Caching](https://knowledge.bigenius-x.com/load-caching-model-object?hsLang=en): empty (default) or `Hashing`, which stores the hashing view in a table before the loader runs.
- [Custom Singleton Values](https://knowledge.bigenius-x.com/custom-singleton-values-model-object?hsLang=en): values of the unknown-member row.
- [Deduplication Method](https://knowledge.bigenius-x.com/deduplication-method-model-object?hsLang=en) and [Sort Order within Partition](https://knowledge.bigenius-x.com/deduplication-partition-model-object?hsLang=en), per dataflow.
- [Use Embryo Loader](https://knowledge.bigenius-x.com/embryo-loader?hsLang=en), per relationship: inserts business keys that the Hub does not hold yet.

### Default Terms

- [`Link_HK`](https://knowledge.bigenius-x.com/link_hk?hsLang=en): hash of the business keys of all relationships and primary key of the table. See [How biGENIUS-X builds hash values](https://knowledge.bigenius-x.com/how-bigenius-x-builds-hash-values?hsLang=en).
- [`DVLINK_ForeignKey_Identity`](https://knowledge.bigenius-x.com/dvlink_foreignkey_identity?hsLang=en): names one hash-key column per relationship, `<Hub name>_<role>_HK`. It holds the `Hub_HK` of the related Hub row. Without a role, the Hub name takes the place of the role.
- [`BG_LoadTimestamp`](https://knowledge.bigenius-x.com/bg_loadtimestamp?hsLang=en): the load that inserted the row.
- [`BG_SourceSystem`](https://knowledge.bigenius-x.com/bg_sourcesystem?hsLang=en): the source system of the row; empty unless you map it.
- [`BG_DataQuality_ID`](https://knowledge.bigenius-x.com/bg-dataquality-id?hsLang=en), [`BG_ErrorCount`](https://knowledge.bigenius-x.com/bg_errorcount?hsLang=en) and [`BG_ErrorDescription`](https://knowledge.bigenius-x.com/bg_errordescription?hsLang=en): hidden terms of the data quality objects.

When all foreign-key terms of a nullable relationship are NULL, the Link stores the key of the Hub's unknown-member row. See [Behaviour for Nulled Business Keys in Links](https://knowledge.bigenius-x.com/behaviour-for-nulled-business-keys-in-links?hsLang=en).

### Generated objects

These are the names on Microsoft SQL Server for the Link `multi_hub_lnk` with one dataflow:

| Role | Generated name | Purpose |
| --- | --- | --- |
| Source | `RDV_LNK_multi_hub_lnk_Source` | Reads the sources |
| Deduplication | `RDV_LNK_multi_hub_lnk_Deduplication` | Removes duplicate rows |
| Hashing | `RDV_LNK_multi_hub_lnk_Hashing` | Calculates the hash keys |
| HashingStorage | `RDV_LNK_multi_hub_lnk_HashingTable` | Stores the hashed rows |
| HashingLoader | `RDV_LNK_multi_hub_lnk_HashingLoader` | Fills the hashing table |
| EmbryoLoader | `RDV_LNK_multi_hub_lnk_EmbryoLoader` | Adds missing Hub keys |
| Delta | `RDV_LNK_multi_hub_lnk_Delta` | Selects new key combinations |
| Loader | `RDV_LNK_multi_hub_lnk_Loader` | Inserts the new rows |
| Storage | `RDV_LNK_multi_hub_lnk` | Link table |
| Result | `RDV_LNK_multi_hub_lnk_Result` | Query view |

- Loaders are stored procedures; the Link table and the hashing table are tables; all other objects are views.
- The deduplication view exists only with a Deduplication Method other than `None`.
- The hashing table and hashing loader exist only with Load Caching `Hashing`. The delta view then reads the hashing table.
- The embryo loader exists only when Use Embryo Loader is true on a relationship. It runs before the loader.
- With several dataflows, all objects except the table and the result view exist once per dataflow, with the dataflow name in their names.
- The table script inserts the unknown-member row with a `Link_HK` of zeros, Hub keys of zeros and foreign keys `0`. The result view hides it.
- With Foreign Key Mode `Create Disabled`, the table script adds a foreign key per relationship to the Hub table and disables it with `NOCHECK`.
- The result view always exists, independent of [Create Result Views](https://knowledge.bigenius-x.com/create-result-views-project?hsLang=en).

With the default settings, a load runs this chain:

```
sources -> _Source -> _Hashing -> _Delta -> _Loader
_Loader -> RDV_LNK_multi_hub_lnk -> _Result
_Result -> _Delta (key combinations already stored)
```

The hashing view calculates `Link_HK` and one Hub key per relationship. The delta view keeps the rows whose `Link_HK` is not in the result view, and the loader inserts them with the load timestamp. A Link loader never updates or deletes rows, so a combination that the source no longer delivers stays in the Link. With the optional objects, `_Deduplication` sits between `_Source` and `_Hashing`, `_HashingLoader` fills `_HashingTable` before the delta view reads it, and `_EmbryoLoader` reads `_Hashing` and writes to the Hub tables.

### Example

The Link `multi_hub_lnk` on Microsoft SQL Server reads the Stage `LOYALTYCARD`. It has a relationship to the Hub `common_customer` and one to the Hub `common_loyaltycard`, both without a role. Its dataflow uses Deduplication Method `Partition`. The loads deliver these cards:

- Load 1 on 2026-10-28 08:00: card 501 of customer 1 and card 502 of customer 2.
- Load 2 on 2026-10-29 08:00: the same cards and card 503 of customer 3.
- Load 3 on 2026-10-30 08:00: the same cards as load 2.

### Check the result

Query the result view, here in the schema `rv`:

```
SELECT FK_common_customer_CUSTOMER_ID AS CUSTOMER_ID,
       FK_common_loyaltycard_LOYALTYCARD_ID AS LOYALTYCARD_ID,
       Link_HK, common_customer_common_customer_HK AS customer_HK,
       BG_LoadTimestamp
FROM rv.RDV_LNK_multi_hub_lnk_Result
ORDER BY CUSTOMER_ID;
```

This is the result after load 3, with hash keys shortened to their first four bytes:

```
CUSTOMER_ID  LOYALTYCARD_ID  Link_HK     customer_HK  BG_LoadTimestamp
1            501             0xD9519207  0xE91FE173   2026-10-28 08:00
2            502             0x9A132E91  0x21ED4C7A   2026-10-28 08:00
3            503             0xC506EBFB  0x2064F80F   2026-10-29 08:00
```

- Load 2 inserted only the combination of card 503 and customer 3. Load 3 inserted no row.
- `customer_HK` is the Hub key of the customer, for example 0xE91FE173 for customer 1. A Hub of customers stores the same value.

### Platform differences

- Snowflake: names are in capitals, and the loader is a stored procedure. The load control task `LC_RDV_LNK_<model object name>_TASK` calls it; the embryo loader has the task `LC_RDV_LNK_<model object name>_EMBRYOTASK`. The dataflow properties [Use Stream](https://knowledge.bigenius-x.com/use-stream-model-object?hsLang=en) and [Warehouse Placeholder Variable Name](https://knowledge.bigenius-x.com/warehouse-placeholder-variable-name-dataflow?hsLang=en) apply.
- Databricks and Fabric Lakehouse: table and view names are in lowercase, and the loader is the notebook `RDV_LNK_<model object name>_Loader`. The properties [File Format](https://knowledge.bigenius-x.com/file-format-model-object?hsLang=en), [Optimization Method](https://knowledge.bigenius-x.com/optimization-method-model-object?hsLang=en), [Optimization Method Columns](https://knowledge.bigenius-x.com/optimization-method-columns-model-object?hsLang=en) and [Use Sequential Dataflow Execution](https://knowledge.bigenius-x.com/use-sequential-dataflow-execution-model-object?hsLang=en) apply. Fabric Lakehouse allows only Foreign Key Mode `None`.
- Databricks dbt and Snowflake dbt: the Link becomes the dbt models `rdv_lnk_<model object name>_source` and `rdv_lnk_<model object name>`. The model `rdv_lnk_<model object name>_result` exists only when Create Result Views is true; the default on dbt is false. Load Caching and Use Embryo Loader are not available.
- Fabric Warehouse: the same objects as on Microsoft SQL Server, deployed by notebooks.
- Oracle: names are in capitals, and the loader is a PL/SQL package. [Partition Clause](https://knowledge.bigenius-x.com/partition-clause-and-table-storage-model-object?hsLang=en) adds its text to the `CREATE TABLE` statement. Table Compression, the tablespaces and the statistics properties also apply.
- Foreign Key Mode `Create Enforced` exists only on Microsoft SQL Server and Oracle.

### Limitations

- A Link has at least one relationship and at least one business key, and no terms other than foreign keys and Default Terms.
- A Link keeps no history and no validity. Link Satellites store the descriptive data and its history.
- A dataflow that delivers the same key combination twice in one load makes the loader fail with a primary key violation. A Deduplication Method removes such duplicates before hashing.

### Release differences

- Generator 2.2: Use Embryo Loader is available.
- Generator 2.3: Custom Singleton Values is available.

### Related articles

- Previous: [Hub](https://knowledge.bigenius-x.com/create-a-hub?hsLang=en)
- Next: [Link Satellite](https://knowledge.bigenius-x.com/create-a-link-satellite?hsLang=en), [Non-Historized Link Satellite](https://knowledge.bigenius-x.com/create-a-non-historized-link-satellite?hsLang=en), [Record Tracking Link Satellite](https://knowledge.bigenius-x.com/create-a-record-tracking-link-satellite?hsLang=en), [Effectivity Link Satellite](https://knowledge.bigenius-x.com/create-an-effectivity-link-satellite?hsLang=en)
- Reference: [Link\_HK](https://knowledge.bigenius-x.com/link_hk?hsLang=en), [DVLINK\_ForeignKey\_Identity](https://knowledge.bigenius-x.com/dvlink_foreignkey_identity?hsLang=en), [Foreign Key Mode (Model Object)](https://knowledge.bigenius-x.com/foreign-key-mode-model-object?hsLang=en), [Load Caching (Model Object)](https://knowledge.bigenius-x.com/load-caching-model-object?hsLang=en), [Custom Singleton Values (Model Object)](https://knowledge.bigenius-x.com/custom-singleton-values-model-object?hsLang=en), [Behaviour for Nulled Business Keys in Links (Project)](https://knowledge.bigenius-x.com/behaviour-for-nulled-business-keys-in-links?hsLang=en), [Create Result Views (Project)](https://knowledge.bigenius-x.com/create-result-views-project?hsLang=en)
- See also: [Embryo Loader](https://knowledge.bigenius-x.com/embryo-loader?hsLang=en), [How biGENIUS-X builds hash values](https://knowledge.bigenius-x.com/how-bigenius-x-builds-hash-values?hsLang=en), [Create a Model Object with the wizard](https://knowledge.bigenius-x.com/create-a-model-object-with-the-wizard?hsLang=en), [Model a Data Vault Solution](https://knowledge.bigenius-x.com/model-a-data-vault-solution?hsLang=en)

- [Getting started](https://knowledge.bigenius-x.com/getting-started?hsLang=en#main-content)

    - [Guidelines](https://knowledge.bigenius-x.com/getting-started?hsLang=en#guidelines)
    - [Start working](https://knowledge.bigenius-x.com/getting-started?hsLang=en#start-working)
    - [Account](https://knowledge.bigenius-x.com/getting-started?hsLang=en#account)
- [General overview](https://knowledge.bigenius-x.com/general-overview?hsLang=en)
- [Artificial Intelligence](https://knowledge.bigenius-x.com/artificial-intelligence?hsLang=en)
- [Application Modules](https://knowledge.bigenius-x.com/application-modules?hsLang=en#main-content)

    - [Administration](https://knowledge.bigenius-x.com/application-modules?hsLang=en#administration)
    - [Solutions](https://knowledge.bigenius-x.com/application-modules?hsLang=en#solutions)
    - [Global Features](https://knowledge.bigenius-x.com/application-modules?hsLang=en#global-features)
    - [Projects](https://knowledge.bigenius-x.com/application-modules?hsLang=en#projects)
    - [Branches](https://knowledge.bigenius-x.com/application-modules?hsLang=en#branches)
    - [Data Connections](https://knowledge.bigenius-x.com/application-modules?hsLang=en#data-connections)
    - [Dataflow Modeling - Overview](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-overview)
    - [Dataflow Modeling - Wizard Steps](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-wizard-steps)
    - [Dataflow Modeling - Terms](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-terms)
    - [Dataflow Modeling - Term Mapping](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-term-mapping)
    - [Dataflow Modeling - Relationships](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-relationships)
    - [Dataflow Modeling - Data Quality](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-data-quality)
    - [Dataflow Modeling - Indexes](https://knowledge.bigenius-x.com/application-modules?hsLang=en#dataflow-modeling-indexes)
    - [Relationship Modeling](https://knowledge.bigenius-x.com/application-modules?hsLang=en#relationship-modeling)
    - [Generate Artifacts](https://knowledge.bigenius-x.com/application-modules?hsLang=en#generate-artifacts)
    - [Project Settings](https://knowledge.bigenius-x.com/application-modules?hsLang=en#project-settings)
    - [Data Marketplace](https://knowledge.bigenius-x.com/application-modules?hsLang=en#data-marketplace)
- [Generators](https://knowledge.bigenius-x.com/generators?hsLang=en#main-content)

    - [Fabric Warehouse](https://knowledge.bigenius-x.com/generators?hsLang=en#fabric-warehouse)
    - [Fabric Lakehouse](https://knowledge.bigenius-x.com/generators?hsLang=en#fabric-lakehouse)
    - [Databricks](https://knowledge.bigenius-x.com/generators?hsLang=en#databricks)
    - [Snowflake](https://knowledge.bigenius-x.com/generators?hsLang=en#snowflake)
    - [Microsoft SQL Server](https://knowledge.bigenius-x.com/generators?hsLang=en#microsoft-sql-server)
    - [Oracle](https://knowledge.bigenius-x.com/generators?hsLang=en#oracle)
    - [Artifacts](https://knowledge.bigenius-x.com/generators?hsLang=en#artifacts)
    - [Replace Placeholders](https://knowledge.bigenius-x.com/generators?hsLang=en#replace-placeholders)
    - [Target solution environment](https://knowledge.bigenius-x.com/generators?hsLang=en#target-solution-environment)
    - [Deployment](https://knowledge.bigenius-x.com/generators?hsLang=en#deployment)
    - [Deployment with an Azuze DevOps pipeline](https://knowledge.bigenius-x.com/generators?hsLang=en#deployment-with-an-azuze-devops-pipeline)
    - [Delta Deployment](https://knowledge.bigenius-x.com/generators?hsLang=en#delta-deployment)
    - [Load control environment](https://knowledge.bigenius-x.com/generators?hsLang=en#load-control-environment)
    - [Load data with a native load control](https://knowledge.bigenius-x.com/generators?hsLang=en#load-data-with-a-native-load-control)
    - [Load data with Apache Airflow](https://knowledge.bigenius-x.com/generators?hsLang=en#load-data-with-apache-airflow)
    - [Model Object Type](https://knowledge.bigenius-x.com/generators?hsLang=en#model-object-type)
    - [Properties](https://knowledge.bigenius-x.com/generators?hsLang=en#properties)
    - [Default Terms](https://knowledge.bigenius-x.com/generators?hsLang=en#default-terms)
- [Discovery application](https://knowledge.bigenius-x.com/discovery-application?hsLang=en#main-content)

    - [Discovery configurations](https://knowledge.bigenius-x.com/discovery-application?hsLang=en#discovery-configurations)
- [Best practices](https://knowledge.bigenius-x.com/best-practices?hsLang=en#main-content)

    - [Modeling Approaches](https://knowledge.bigenius-x.com/best-practices?hsLang=en#modeling-approaches)
    - [Use Cases](https://knowledge.bigenius-x.com/best-practices?hsLang=en#use-cases)
    - [Business Rules](https://knowledge.bigenius-x.com/best-practices?hsLang=en#business-rules)
    - [Data Quality Rules](https://knowledge.bigenius-x.com/best-practices?hsLang=en#data-quality-rules)
- [FAQs](https://knowledge.bigenius-x.com/faqs?hsLang=en)
- [Product Release Notes](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#main-content)

    - [SaaS Application](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#saas-application)
    - [Discovery application](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#discovery-application)
    - [Generators](https://knowledge.bigenius-x.com/product-release-notes?hsLang=en#generators)
- [Legal Documents](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#main-content)

    - [Current legal docs](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#current-legal-docs)
    - [Software Product and Limits](https://knowledge.bigenius-x.com/legal-documents?hsLang=en#software-product-and-limits)

- [Contact us](https://knowledge.bigenius-x.com/kb-tickets/new?hsLang=en)
- [Customer Portal](https://knowledge.bigenius-x.com/customer-portal)
- [Sign in](https://knowledge.bigenius-x.com/_hcms/mem/login)

[![biGENIUS logo](https://knowledge.bigenius-x.com/hubfs/TRI_Logo_biGENIUS_2020_RGB-1.svg "biGENIUS logo")](https://www.bigenius-x.com)

<https://www.linkedin.com/company/bigenius> <https://www.youtube.com/@biGENIUS_DWA>

All rights reserved © 2025, biGENIUS AG