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
- With the wizard: open the menu of one of its source model objects, choose Automate and then Create BusinessVault Composite. Its steps are Create Model Object, Create Dataflow, Map Selected Terms and Add to View. See Create a Model Object with the wizard.
- Manually: create a model object of type BusinessVault Composite in the Business Vault layer, create a dataflow set, add the source model objects and map the terms.
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 asBG_LoadTimestamp. A query shows the content of the last load.
Properties
- Implementation Type:
Virtual(default) orCached. - Deduplication Method and Sort Order within Partition, per dataflow.
Partitionuses the business keys of the composite; without business keys, validation reports a warning.
The project property Create Result Views also applies.
Default Terms
BG_LoadTimestamp: withCached, the load that filled the table. WithVirtual, 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:
| Role | Generated name | Purpose |
|---|---|---|
| Source | BDV_BC_<model object name>_Source | Joins, filters and maps |
| Deduplication | BDV_BC_<model object name>_Deduplication | Removes duplicate rows |
| Loader | BDV_BC_<model object name>_Loader | Reloads the table |
| Storage | BDV_BC_<model object name> | Composite table |
| Result | BDV_BC_<model object name>_Result | Query 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_LoadTimestampis 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 withCachedalsobdv_bc_<model object name>. The modelbdv_bc_<model object name>_resultexists 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 TABLEstatement. 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
Permanentis 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
- Previous: Link, Satellite, Current View
- Next: Business Hub, Business Link, Business Satellite, Vault Out
- Reference: Implementation Type (Model Object), Deduplication Method (Dataflow), Create Result Views (Project)
- See also: RawVault Composite, Hierarchy Flatten, Create a Model Object with the wizard