Skip to main content

Link Satellite

A Link Satellite functions similarly to a Hub Satellite but is attached to a Link instead of a Hub. It stores descriptive attributes related to the relationship or transaction captured by the Link, tracking changes to these attributes over time.

Link Satellites share most properties with Hub Satellites. The key difference is the entity_type and the potential use of connected_entity_source_ref.

PropertyTypeDescription
nameStringThe unique name for the Link Satellite object. Example: 'LSAT_ORDER_ITEM_DETAILS'
entity_typeStringMust be set to 'linksat' for a Satellite attached to a Link.
enable_refreshBooleanDefault: true. Indicates whether the Satellite's data can be refreshed. See Shared Properties.
connected_entityStringThe name of the Link this Satellite is attached to. Example: 'LINK_ORDER_ITEM'.
connected_entity_source_refStringA URN referencing a specific entity_source definition within the connected Link. Example: 'urn:s2v:link_source:src_erp_orders'
ordering_columnsList of StringsSpecifies columns from the source used to order records when selecting the most recent or relevant row for a given business key, especially if duplicates exist.
skip_hashdiff_comparisonBooleanDefault: false. If true, S2V will not generate or compare a hashdiff for the descriptive attributes.
historized_columnsList of StringsA list of column names from the source that should be included in the Satellite and are considered part of its descriptive, versioned content.
non_historized_columnsList of StringsA list of column names from the source that should be included in the Satellite but are not considered for historization or hashdiff comparison.

Refer to the Satellite documentation for details on common properties like ordering_columns, skip_hashdiff_comparison, historized_columns, non_historized_columns, and the structure of entity_source.

connected_entity

  • Type: String
  • Description: Specifies the name of the parent Link to which this Satellite is attached. The Satellite will inherit the business key structure from this parent entity.

connected_entity_source_ref

  • Type: String
  • Description: This property is only used for Link Satellites (entity_type: 'linksat'). It is required if the connected Link is fed by multiple entity_sources. The URN provided here must match one of the URN keys defined in the entity_sources list of the parent Link. This tells S2V which specific source context within the Link this Satellite's attributes are derived from.

ordering_columns

  • Type: List of Strings
  • Description: This property is used to specify one or more columns from the source table that determine the order of records. When multiple records from the source might map to the same business key, ordering_columns (often a timestamp or sequence number) are used to pick the most relevant record for loading.

skip_hashdiff_comparison

  • Type: Boolean
  • Description:
    • If false (default): S2V will compute a hashdiff for the columns listed in historized_columns. A new record is inserted into the Satellite only if the hashdiff changes or if the business key is new.
    • If true: S2V will not compute or use a hashdiff. Every incoming record from the source (after filtering and business key mapping) will result in a new entry in the Satellite, effectively creating a new version regardless of whether the descriptive attributes have changed. This can be useful for logging all source system changes or when the source guarantees unique records per load.

historized_columns

  • Type: List of Strings
  • Description: Lists the names of the columns from the source table that contain the descriptive attributes of the entity. These are the columns whose values are tracked for changes over time. Changes in these columns (when skip_hashdiff_comparison is false) will result in a new record (version) in the Satellite.

non_historized_columns

  • Type: List of Strings
  • Description: Lists the names of columns from the source table that should be included in the Satellite table but are not considered for hashdiff calculation (i.e., changes to these columns won't trigger a new version). These might include metadata, operational flags, or attributes that are descriptive but not part of the core historical tracking.

Example

This example defines a Link Satellite LSAT_ORDER_ITEM_DETAILS attached to LINK_ORDER_ITEM. It sources descriptive attributes like QUANTITY, UNIT_PRICE, DISCOUNT_PERCENTAGE, and LINE_STATUS from the OrderLineItems table, using LINE_MODIFICATION_DATE for ordering. It also includes INTERNAL_PROCESSING_FLAG as a non-historized attribute.

name: 'LSAT_ORDER_ITEM_DETAILS'
entity_type: 'linksat' # Attaching to a Link
enable_refresh: true
connected_entity: 'LINK_ORDER_ITEM' # Name of the parent Link
connected_entity_source_ref: 'urn:s2v:link_source:erp_order_lines' # A URN referencing a specific `entity_source` definition within the connected Link

ordering_columns: ['LINE_MODIFICATION_DATE']
skip_hashdiff_comparison: false

historized_columns:
- 'QUANTITY'
- 'UNIT_PRICE'
- 'DISCOUNT_PERCENTAGE'
- 'LINE_STATUS'

non_historized_columns:
- 'INTERNAL_PROCESSING_FLAG'