Skip to content
  • There are no suggestions because the search field is empty.

BusinessVault Composite

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

A BusinessVault Composite prepares Raw Vault data with joins, filters and expressions in the Business Vault layer, as a view or a reloaded table. Use it to derive the input of Business Vault objects from Hubs, Links, satellites and views, for example to combine the business keys of a Link for a Business Link. The Business Vault objects then read it like a source.

Earlier versions of this article spelled the type "Business Vault Composite".

Sources and relationships

A BusinessVault Composite reads Raw Vault objects: Hubs, Links, Driving Key Links, Hierarchical Links, Same As Links, Satellites, Link Satellites, Non-Historized Satellites, Non-Historized Link Satellites, Record Tracking Satellites, Record Tracking Link Satellites, Effectivity Satellites and Effectivity Link Satellites. It also reads Current Views, History Views, Hierarchy Flattens and other BusinessVault Composites. It has exactly one dataflow, with one or more dataflow sets, and no relationships. Its terms are the columns it delivers, at least one besides the Default Terms.

The Business Vault types, Hierarchy Flatten, other BusinessVault Composites and Vault Out can read it. In a Vault and Mart project, a Mart Composite that reads a BusinessVault Composite raises validation warning ID-21002, which names Vault Out as the object to read instead.

Create the model object

Add join, filter and term expressions in the dataflow set. The source view reads the result views of its Raw Vault sources.

Implementation types

  • Virtual (default): the composite is a view over its sources. A query always shows the current content of the sources, and there is no loader.
  • Cached: the composite has a table. Its loader empties the table and inserts all rows of the source view, with the load timestamp as BG_LoadTimestamp. A query shows the content of the last load.

Properties

The project property Create Result Views also applies.

Default Terms

  • BG_LoadTimestamp: with Cached, the load that filled the table. With Virtual, empty unless you map it.
  • BG_SourceSystem: the source system, empty unless you map it.

Generated objects

These are the names on Microsoft SQL Server, in the Business Vault schema. <model object name> stands for the name of the model object:

RoleGenerated namePurpose
SourceBDV_BC_<model object name>_SourceJoins, filters and maps
DeduplicationBDV_BC_<model object name>_DeduplicationRemoves duplicate rows
LoaderBDV_BC_<model object name>_LoaderReloads the table
StorageBDV_BC_<model object name>Composite table
ResultBDV_BC_<model object name>_ResultQuery view
  • The loader is a stored procedure and the composite table is a table; the other objects are views.
  • The loader and the table exist only with Implementation Type Cached.
  • The deduplication view exists only with a Deduplication Method other than None.
  • The result view exists only with Create Result Views.

The chain depends on the implementation type:

Virtual: Raw Vault result views -> _Source -> _Result
Cached:  Raw Vault result views -> _Source -> _Loader
         _Loader -> BDV_BC_<model object name> -> _Result

With Virtual, the result view reads the source view. With Cached, it reads the table. _Deduplication sits after _Source.

Example

The BusinessVault Composite load_salestransaction_virtual_bcmp on Microsoft SQL Server has Implementation Type Virtual. It reads the Link common_salestransaction, which links items, loyalty cards and cashiers. It maps the business keys of the Link as FK_ITEM_ITEM_ID, FK_LOYALTYCARD_LOYALTYCARD_ID and FK_EMPLOYEE_EMPLOYEE_ID. The loads deliver these sales transactions to the Link:

  • Load 1 on 2026-10-28 08:00: item 2 with loyalty card 501, sold by cashier 101.
  • Load 2 on 2026-10-29 08:00: item 3 with loyalty card 503, sold by cashier 102.

Check the result

Query the result view, here in the schema p2b:

SELECT FK_ITEM_ITEM_ID, FK_LOYALTYCARD_LOYALTYCARD_ID,
       FK_EMPLOYEE_EMPLOYEE_ID, BG_LoadTimestamp
FROM p2b.BDV_BC_load_salestransaction_virtual_bcmp_Result
ORDER BY FK_ITEM_ITEM_ID;

This is the result after load 2, with the column names shortened:

ITEM  LOYALTYCARD  EMPLOYEE  BG_LoadTimestamp
2     501          101       NULL
3     503          102       NULL
  • The view shows one row per Link row. It reads the result view of the Link, which hides the unknown-member row.
  • BG_LoadTimestamp is empty because the composite is virtual and the dataflow does not map it.

Platform differences

  • Snowflake: names are in capitals, and the loader of a cached composite is a stored procedure. A load control task calls it. The dataflow properties Use Stream and Warehouse Placeholder Variable Name apply.
  • Databricks and Fabric Lakehouse: table and view names are in lowercase, and the loader of a cached composite is the notebook BDV_BC_<model object name>_Loader. The properties File Format, Optimization Method and Optimization Method Columns apply.
  • Databricks dbt and Snowflake dbt: the BusinessVault Composite becomes the dbt model bdv_bc_<model object name>_source, and with Cached also bdv_bc_<model object name>. The model bdv_bc_<model object name>_result exists only when Create Result Views is true; the default on dbt is false.
  • Fabric Warehouse: the same objects as on Microsoft SQL Server, deployed by notebooks.
  • Oracle: names are in capitals, and the loader of a cached composite is a PL/SQL package. Partition Clause adds its text to the CREATE TABLE statement. Table Compression, the tablespaces and the statistics properties also apply.

Limitations

  • A BusinessVault Composite has exactly one dataflow and no relationships. Validation reports an error otherwise.
  • Implementation Type Permanent is not available. An index on a virtual composite raises a validation warning.
  • A dataflow that reads the composite itself, directly or through other composites, raises a validation error.
  • A BusinessVault Composite does not read Multi-Active Satellites, PITs, Reference Tables or the Business Vault Hub, Link, satellite and PIT types.

Release differences

  • Generator 2.0: the Create BusinessVault Composite wizard is available.

Related articles