Hydra ETL
Build your first job
Hydra DSL3 · Destinationsconnection
Grammar element · destinations.<id>.connection

connection reaches the target system

Three valid CSV connections. Location stays separate from the file and write mode.

destinations.yaml4 steps

      
What connection resolves

The system or directory the selected writer can reach before loading begins.

✓ output directory resolved

What destinations.<id>.connection is

Destination connection is the mapping used to reach the system that will receive rows.

It does not name the table or decide append, replace, or upsert. Those are loading concerns and remain in load.

What it contains

  • Connector-specific settings — CSV uses a base path; databases use network and database settings.
  • References, not embedded policy — Secrets belong in placeholders and load behavior belongs elsewhere.
  • A reusable boundary — One reachable system can host several target objects.

Reach the system before naming the object

Connection answers “where can this writer connect?” Load answers “what should it write there, and how?” Keeping those questions apart makes declarations portable.

Connection and load divide reachability from target choice The connection reaches a directory, load selects result.csv, and rows are written there. connectionreachable directory load.tableone target object result.csvrows written A connection locates the system; load locates the object inside it.
Reachability is shared context, not a writing policy.

Run the complete example

Copy this manifest from the verified documentation project, then run it from the repository root.

version: "1.0"
destinations:
  dest_output:
    type: csv
    connection:
      base_path: "examples/tutorial/dsl-elements/out"
    load:
      table: result.csv
      mode: replace
      batch_size: 10000
hdrctl run examples/tutorial/dsl-elements
  ✅ Pipeline completed successfully in 2.6s
  Rows read   : 30
  Rows written: 6

The relevant command syntax, copied from hdrctl run --help:

hdrctl run [PATH]
  -s, --sources FILE          explicit path to sources.yaml
  -d, --destinations FILE     explicit path to destinations.yaml
  -t, --transformations FILE  explicit path to transformations.yaml
  -P, --param KEY=VALUE       override a parameter, repeatable

Close by

0 / 0 on this page