destinations.yaml decides how rows land
Three correct declarations. Walk them, then see where the writing policy lives.
The selected declaration supplies both the connector and its writing policy.
What destinations.yaml is
destinations.yaml declares the systems a job is allowed to write to. Its root destinations mapping gives each target a local identifier; pipeline.to selects one.
It does not choose the data or transform it. Sources read, transformations reshape, and a destination receives the final rows with the writing policy declared here.
What it contains
- Identity — the identifier referenced by
pipeline.to. - Reachability —
typeselects a connector andconnectionsupplies its settings. - Writing policy —
loadnames the table or file, the mode, optional upsert keys, and batch size.
The write policy belongs with the target
The same six rows can replace a reporting file, append to a history, or update matching database records. That choice belongs beside the target because it describes how that system accepts rows, not how the rows were produced.
Run the complete declaration
This is the destination used by the tutorial job:
version: "1.0"
destinations:
dest_big_orders:
type: csv
connection:
base_path: "examples/tutorial/01-first-job/out"
load:
table: big_orders.csv
mode: replace
hdrctl run examples/tutorial/01-first-job -d examples/tutorial/01-first-job/destinations.yaml
✅ Pipeline completed successfully in 7.8s Rows read : 30 Rows written: 6
The relevant command syntax, copied from hdrctl run --help:
hdrctl run [PATH] -d, --destinations FILE explicit path to destinations.yaml --dry-run validate configuration without writing data -v, -vv, -vvv more detail, up to full logs