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

Record Tracking Satellite

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

A Record Tracking Satellite records in which loads the business keys of a Hub appeared in the source, in a table of the Raw Vault layer. Use it to see when a key was delivered and, with Delete Detection Method FullSet, in which loads it was missing. After each load, the result view shows one row per key and load with its BG_Appearance value.

Sources and relationships

A Record Tracking Satellite reads Stages, RawVault Composites and Store Entities of a linked Data Store project, in one or more dataflows. It has exactly one relationship to a Hub, and its foreign-key terms must be mapped. It has no descriptive terms. BusinessVault Composite, Vault Out and the Business Vault types can read it. PIT, Current View and History View do not read it.

Create the model object

You do not map BG_Appearance. The source view sets it to 1 for every key that the source delivers.

Loading behavior

Every load inserts one row for each key that the source delivers, with the load timestamp as BG_ValidFromTimestamp and BG_Appearance 1. A row is valid until the next row of the same key. Delete Detection Method decides what happens to a key that the source does not deliver:

  • FullSet (default): the delta view compares the source keys with the rows of the latest load in the table. A key of that load that is missing from the source gets a row with BG_Appearance 0. It gets such a row in every load until the source delivers it again.
  • None: there is no delta view. The loader inserts the delivered keys only, so a missing key gets no row.

With Delete Detection Method FullSet, every load must deliver all keys of the source. A key missing from one load gets a row with BG_Appearance 0. Load partial or per-day extracts with Delete Detection Method None.

Properties

The project properties Persist Validity and Create Result Views also apply.

Default Terms

A Record Tracking Satellite has no BG_RowHash and no BG_IncrementalFilter.

Generated objects

These are the names on Microsoft SQL Server for a Record Tracking Satellite with one dataflow. <model object name> stands for the name of the model object:

RoleGenerated namePurpose
SourceRDV_RSAT_<model object name>_SourceReads the sources
DeduplicationRDV_RSAT_<model object name>_DeduplicationRemoves duplicate rows
HashingRDV_RSAT_<model object name>_HashingCalculates Hub_HK
HashingStorageRDV_RSAT_<model object name>_HashingTableStores the hashed rows
HashingLoaderRDV_RSAT_<model object name>_HashingLoaderFills the hashing table
EmbryoLoaderRDV_RSAT_<model object name>_EmbryoLoaderAdds missing Hub keys
DeltaRDV_RSAT_<model object name>_DeltaAdds rows for missing keys
LoaderRDV_RSAT_<model object name>_LoaderInserts the rows
StorageRDV_RSAT_<model object name>Record Tracking Satellite table
ResultRDV_RSAT_<model object name>_ResultQuery view with validity
  • Loaders are stored procedures; the Record Tracking Satellite table and the hashing table are tables; all other objects are views.
  • The delta view exists only with Delete Detection Method FullSet.
  • 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 embryo loader exists only when Use Embryo Loader is true on the relationship. It runs before the loader.
  • The result view exists only with Create Result Views; without it, Persist Validity must be true.
  • 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 has no unknown-member row.

With the default settings, a load runs this chain:

sources -> _Source -> _Hashing -> _Delta -> _Loader
_Loader -> RDV_RSAT_<model object name> -> _Result
_Result -> _Delta (rows of the latest load)

The delta view joins the hashed source keys with the rows of the latest load in the result view. Delivered keys keep BG_Appearance 1, and keys found only in the result view get 0. The loader inserts all rows of the delta view with the load timestamp. With None, the loader reads _Hashing directly. _Deduplication sits between _Source and _Hashing, and _HashingTable after _Hashing.

Example

The Record Tracking Satellite record_tracking_with_delete_detection_sat on Microsoft SQL Server reads the Stage CUSTOMER and has a relationship to the Hub load_customer_hub. Its Delete Detection Method is FullSet, and Persist Validity is false. A second Record Tracking Satellite, record_tracking_without_delete_detection_sat, reads the same Stage with Delete Detection Method None. The loads deliver these customers:

  • Load 1 on 2026-10-28 08:00: customers 1 and 2.
  • Load 2 on 2026-10-29 08:00: customers 1, 2 and 3.
  • Load 3 on 2026-10-30 08:00: customers 1 and 3. Customer 2 is missing.
  • Load 4 on 2026-10-31 08:00: customers 1, 2 and 3.

Check the result

Query the result view with the business key of the Hub, here in the schema p2:

SELECT h.CUSTOMER_ID, s.BG_Appearance,
       s.BG_ValidFromTimestamp, s.BG_ValidToTimestamp
FROM p2.RDV_RSAT_record_tracking_with_delete_detection_sat_Result AS s
JOIN p2.RDV_HUB_load_customer_hub_Result AS h
  ON h.Hub_HK = s.Hub_HK
WHERE h.CUSTOMER_ID IN (2, 3)
ORDER BY h.CUSTOMER_ID, s.BG_ValidFromTimestamp;

This is the result after load 4, with the column names and timestamps shortened:

CUSTOMER_ID  BG_Appearance  ValidFrom         ValidTo
2            1              2026-10-28 08:00  2026-10-29 08:00
2            1              2026-10-29 08:00  2026-10-30 08:00
2            0              2026-10-30 08:00  2026-10-31 08:00
2            1              2026-10-31 08:00  9999-12-31 00:00
3            1              2026-10-29 08:00  2026-10-30 08:00
3            1              2026-10-30 08:00  2026-10-31 08:00
3            1              2026-10-31 08:00  9999-12-31 00:00

The same query on the second Record Tracking Satellite, with Delete Detection Method None, returns these rows for customer 2:

CUSTOMER_ID  BG_Appearance  ValidFrom         ValidTo
2            1              2026-10-28 08:00  2026-10-29 08:00
2            1              2026-10-29 08:00  2026-10-31 08:00
2            1              2026-10-31 08:00  9999-12-31 00:00
  • With FullSet, load 3 inserted a row with BG_Appearance 0 for customer 2, and load 4 a row with 1.
  • With None, load 3 inserted no row for customer 2, so the row of load 2 stays valid until load 4.
  • Every load inserted a row for each delivered customer, also when nothing changed.

Platform differences

  • Persist Validity is true by default on Snowflake, Snowflake dbt, Databricks, Databricks dbt, Fabric Lakehouse and Fabric Warehouse, and false on Microsoft SQL Server and Oracle. With true, the table stores BG_ValidToTimestamp.
  • The data type of BG_Appearance differs per platform, see BG_Appearance.
  • Snowflake: names are in capitals, and the loader 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 is the notebook RDV_RSAT_<model object name>_Loader. The properties File Format, Optimization Method, Optimization Method Columns and Use Sequential Dataflow Execution apply. Fabric Lakehouse allows only Foreign Key Mode None.
  • Databricks dbt and Snowflake dbt: the Record Tracking Satellite becomes the dbt models rdv_rsat_<model object name>_source and rdv_rsat_<model object name>. The model rdv_rsat_<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 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 Record Tracking Satellite has exactly one relationship, to a Hub.
  • A term other than the Default Terms, business keys and foreign keys raises a validation error. Business keys raise a validation warning.
  • Custom Singleton Values and Version Valid From Term are not available.

Release differences

  • Generator 2.0: Delete Detection Method is available.
  • Generator 2.2: Use Embryo Loader and Persist Validity are available.

Related articles