---
title: Hierarchical Link
description: A Hierarchical Link stores parent-child pairs of one Hub, such as an employee and their manager, with the hash key Link_HK, in a Raw Vault table.
---

[Skip to content](https://knowledge.bigenius-x.com/hierarchical-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)

# Hierarchical Link

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

A Hierarchical Link stores parent-child pairs of one Hub, such as an employee and their manager or an item and its component, with the hash key `Link_HK`, in a table of the Raw Vault layer. Use it for a hierarchy inside one business object. After each load, the result view shows one row per pair and the load that first delivered it.

### Sources and relationships

A Hierarchical Link reads [Stages](https://knowledge.bigenius-x.com/stage?hsLang=en), [RawVault Composites](https://knowledge.bigenius-x.com/rawvault-composite?hsLang=en) and [Store Entities](https://knowledge.bigenius-x.com/store-entity?hsLang=en) of a linked Data Store project, in one or more dataflows. It has exactly two relationships, both to the same [Hub](https://knowledge.bigenius-x.com/hub?hsLang=en), with roles, for example `EMPLOYEE` and `MANAGER`. The foreign-key terms are the business keys of the Hierarchical Link. See [Use parent-child relationships](https://knowledge.bigenius-x.com/use-parent-child-relationships?hsLang=en).

Link Satellites, Record Tracking Link Satellites, Effectivity Link Satellites reference a Hierarchical Link. PIT, Current View, History View, BusinessVault Composite, [Vault Out](https://knowledge.bigenius-x.com/vault-out?hsLang=en) and the Business Vault types can read it as a source. A Current View on a Hierarchical Link and its Link Satellite is the usual source of a [Hierarchy Flatten](https://knowledge.bigenius-x.com/hierarchy-flatten?hsLang=en).

### Create a Hierarchical Link

- With the wizard: open the menu of a Stage, RawVault Composite or Store Entity, choose **Automate** and then **Create Hierarchical 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 Hierarchical Link in the Raw Vault layer, [add two relationships](https://knowledge.bigenius-x.com/add-a-relationship?hsLang=en) to the Hub with a role each, [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).

### 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 table. 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-dataflow?hsLang=en) and [Sort Order within Partition](https://knowledge.bigenius-x.com/sort-order-within-partition-dataflow?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 both relationships and primary key of the table.
- [`DVLINK_ForeignKey_Identity`](https://knowledge.bigenius-x.com/dvlink_foreignkey_identity?hsLang=en): names one hash-key column per relationship, `<Hub name>_<role>_HK`, for example `common_employee_MANAGER_HK`, with the key of the related Hub row.
- [`BG_LoadTimestamp`](https://knowledge.bigenius-x.com/bg_loadtimestamp?hsLang=en) and [`BG_SourceSystem`](https://knowledge.bigenius-x.com/bg_sourcesystem?hsLang=en): the load that inserted the row and its source system, 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.

A row without a parent has a NULL parent key when that foreign-key term is nullable. The Hierarchical Link then stores the key of the Hub's unknown-member row for the parent. See [Behaviour for Nulled Business Keys in Links](https://knowledge.bigenius-x.com/behaviour-for-nulled-business-keys-in-links-project?hsLang=en) and [How biGENIUS-X builds hash values](https://knowledge.bigenius-x.com/how-bigenius-x-builds-hash-values?hsLang=en).

### Generated objects

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

| Role | Generated name | Purpose |
| --- | --- | --- |
| Source | `RDV_HLNK_load_employee_hlnk_Source` | Reads the sources |
| Deduplication | `RDV_HLNK_load_employee_hlnk_Deduplication` | Removes duplicate rows |
| Hashing | `RDV_HLNK_load_employee_hlnk_Hashing` | Calculates the hash keys |
| HashingStorage | `RDV_HLNK_load_employee_hlnk_HashingTable` | Stores the hashed rows |
| HashingLoader | `RDV_HLNK_load_employee_hlnk_HashingLoader` | Fills the hashing table |
| EmbryoLoader | `RDV_HLNK_load_employee_hlnk_EmbryoLoader` | Adds missing Hub keys |
| Delta | `RDV_HLNK_load_employee_hlnk_Delta` | Selects new pairs |
| Loader | `RDV_HLNK_load_employee_hlnk_Loader` | Inserts the new rows |
| Storage | `RDV_HLNK_load_employee_hlnk` | Hierarchical Link table |
| Result | `RDV_HLNK_load_employee_hlnk_Result` | Query view |

- Loaders are stored procedures; the Hierarchical 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 hash keys of zeros. The result view hides it.
- 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_HLNK_load_employee_hlnk -> _Result
_Result -> _Delta (pairs already stored)
```

The hashing view calculates `Link_HK` and the Hub key of each role. The delta view keeps the rows whose `Link_HK` is not in the result view, and the loader inserts them. The loader never updates or deletes rows, so a pair that the source no longer delivers stays in the table. A Link Satellite on the Hierarchical Link stores the history of each pair. With the optional objects, `_Deduplication` sits between `_Source` and `_Hashing`, `_HashingLoader` fills `_HashingTable` before the delta view reads it, and `_EmbryoLoader` writes missing keys to the Hub table.

### Example

The Hierarchical Link `load_employee_hlnk` on Microsoft SQL Server reads the Stage `EMPLOYEE`. Both relationships go to the Hub `common_employee`, with the roles `EMPLOYEE` and `MANAGER`. `MANAGER_ID` is nullable in the source. The loads deliver these rows:

- Load 1 on 2026-10-28 08:00: employee 101 without a manager, employees 102 and 103 with manager 101.
- Load 2 on 2026-10-29 08:00: employee 103 now reports to 102, and employee 104 is new with manager 102.

### Check the result

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

```
SELECT FK_common_employee_EMPLOYEE_EMPLOYEE_ID AS EMPLOYEE_ID,
       FK_common_employee_MANAGER_EMPLOYEE_ID AS MANAGER_ID,
       common_employee_MANAGER_HK AS MANAGER_HK, BG_LoadTimestamp
FROM rv.RDV_HLNK_load_employee_hlnk_Result
ORDER BY EMPLOYEE_ID, BG_LoadTimestamp;
```

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

```
EMPLOYEE_ID  MANAGER_ID  MANAGER_HK  BG_LoadTimestamp
101          NULL        0x00000000  2026-10-28 08:00
102          101         0x6348AE9A  2026-10-28 08:00
103          101         0x6348AE9A  2026-10-28 08:00
103          102         0x8887BDD9  2026-10-29 08:00
104          102         0x8887BDD9  2026-10-29 08:00
```

- Employee 101 has no manager, so `MANAGER_HK` holds the key of the unknown-member row, all zeros.
- Employee 103 has two rows: the pair with manager 101 stays after load 2 adds the pair with manager 102.
- `MANAGER_HK` 0x6348AE9A is the Hub key of employee 101.

### Platform differences

- Snowflake: names are in capitals, and the loader is a stored procedure. The load control task `LC_RDV_HLNK_<model object name>_TASK` calls it. 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_HLNK_<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 Hierarchical Link becomes the dbt models `rdv_hlnk_<model object name>_source` and `rdv_hlnk_<model object name>`. The model `rdv_hlnk_<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 Hierarchical Link has exactly two relationships to the same Hub and no terms other than foreign keys and Default Terms. Validation reports an error otherwise.
- A Hierarchical Link holds one level, the direct parent. A [Hierarchy Flatten](https://knowledge.bigenius-x.com/hierarchy-flatten?hsLang=en) resolves all levels.
- A dataflow that delivers the same pair 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/hub?hsLang=en)
- Next: [Link Satellite](https://knowledge.bigenius-x.com/link-satellite?hsLang=en), [Hierarchy Flatten](https://knowledge.bigenius-x.com/hierarchy-flatten?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-project?hsLang=en), [Create Result Views (Project)](https://knowledge.bigenius-x.com/create-result-views-project?hsLang=en)
- See also: [Use parent-child relationships](https://knowledge.bigenius-x.com/use-parent-child-relationships?hsLang=en), [Link](https://knowledge.bigenius-x.com/link?hsLang=en), [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)

- [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