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 Satellite Properties Overview
Link Satellites share most properties with Hub Satellites. The key difference is the entity_type
and the potential use of connected_entity_source_ref
.
Property | Type | Description |
---|---|---|
name | String | The unique name for the Link Satellite object. Example: 'LSAT_ORDER_ITEM_DETAILS' |
entity_type | String | Must be set to 'linksat' for a Satellite attached to a Link. |
enable_refresh | Boolean | Default: true . Indicates whether the Satellite's data can be refreshed. See Shared Properties. |
connected_entity | String | The name of the Link this Satellite is attached to. Example: 'LINK_ORDER_ITEM' . |
connected_entity_source_ref | String | A URN referencing a specific entity_source definition within the connected Link. Example: 'urn:s2v:link_source:src_erp_orders' |
ordering_columns | List of Strings | Specifies 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_comparison | Boolean | Default: false . If true , S2V will not generate or compare a hashdiff for the descriptive attributes. |
historized_columns | List of Strings | A 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_columns | List of Strings | A list of column names from the source that should be included in the Satellite but are not considered for historization or hashdiff comparison. |
Link Satellite-Specific Property Details
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 multipleentity_sources
. The URN provided here must match one of the URN keys defined in theentity_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 inhistorized_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.
- If
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
isfalse
) 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'