Hydra ETL
Build your first job
Hydra DSL8 · Interpolation{{ param }} and {{ env }}
Grammar element · {{ param:NAME }} + {{ env:NAME }}

Parameters and environment are substituted before parsing

Full-value and embedded placeholders are both valid. Full values preserve their resolved type.

transformations.yaml4 steps

      
What the parser receives

Resolved values, with types preserved when a placeholder occupies the whole YAML value.

✓ parameter substituted · 6 rows

What {{ param:NAME }} + {{ env:NAME }} is

{{ param:NAME }} and {{ env:NAME }} are placeholders resolved before the YAML structure is validated by DSL models.

They are not runtime expression variables. After substitution, operations receive ordinary strings, numbers, booleans, lists, or mappings.

What it contains

  • Parameter lookup — Resolved from declarations and layered values, with CLI overrides strongest.
  • Environment lookup — Read from the current process environment.
  • Two substitution modes — A full placeholder preserves type; an embedded placeholder produces text.

Whole values keep their type

Use a placeholder as the entire YAML value when the receiving key expects an integer, boolean, list, or mapping. Embed it in text only when text is the intended result.

Interpolation resolves values before DSL parsing The MIN_AMOUNT parameter is substituted into expression text before the transformation model parses it. MIN_AMOUNT=50resolved value substitutionbefore parsing amount > 50ordinary DSL text The parser never receives placeholder syntax; it receives the resolved value.
Interpolation prepares the manifest; the DSL then validates the result.

Run the complete example

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

version: "1.0"
transformations:
  steps:
    - cast:
        mapping: {amount: float}
    - filter:
        expr: "amount > {{ param:MIN_AMOUNT }}"
hdrctl run examples/tutorial/dsl-elements -t parameter-filter.yaml -P MIN_AMOUNT=50
  ✅ Pipeline completed successfully in 3.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