Skip to content

/ferry

write_disposition=merge && strategy=scd2
Tracks historical changes by inserting new records with versioning or timestamps. A merge operation compares source and target data, inserting new rows for changes while preserving existing records. Refer here

Request Payload

json
{
  "identity": "string",
  "source_uri": "string",
  "destination_uri": "string",
  "resources": [
    {
      "source_table_name": "string",
      "write_disposition_config": {
          "type": "merge" 
          "strategy": "scd2"
          "config": { 
            "natural_merge_key": "string",
            "partition_merge_key": "string",
            "validity_column_names": [
              "valid_from",
              "valid_to"
            ],
            "active_record_timestamp": "9999-12-31",
            "use_boundary_timestamp": false
          } 
        } 
    }
  ]
}

Parameters Descriptions

Write Disposition (write_disposition_config) (Optional) (default: replace)

Determines how data is written:

FieldTypeRequiredDescription
typestring✅ YesStrategy for writing data (replace, append, merge).
strategystring✅ YesMerge method (e.g., delete-insert,scd2,upsert).
Slowly Changing Dimension Type 2 (config) (Mandatory when merg_config.strategy is scd2)
FieldTypeRequiredDescription
natural_merge_keystring✅ YesKey used for merging historical data.
partition_merge_keystring✅ YesPartition key for merges.
validity_column_namesarray✅ YesColumn names for validity range.
active_record_timestampstring❌ NoDefault timestamp for active records.
use_boundary_timestampboolean❌ NoWhether to use boundary timestamps.

Released under the MIT License.