Hydra ETL
Build your first job
Lesson 9 of 14 · Reach Valid

Resolve what the validity badge reports

Finish the job graph, configure each required field, and distinguish the header's DAG validity from node-level readiness.

Validabout 15 minutessource YAML verified

1. Objective

Goal

Build CSV source → Cast → Filter → CSV destination. Configure Cast and Filter with fields defined in NodeConfigDialog, choose a destination file, connect the four nodes, and verify both graph validity and node configuration.

Why this matters

The header's Valid state comes from DAG validation: no duplicated IDs, unknown dependencies, or cycle. Individual node badges use isNodeConfigured. A trustworthy job needs both; a green DAG badge alone does not prove required connector fields are filled.

Course project

Continue with studio-course, the manual first-workflow, and the first-job canvas saved by the preceding lesson. Do not create a parallel replacement project.

Prerequisites

  • The top bar shows API online.
  • The cumulative workflow is open in the editor.
  • The preceding lesson checklist is complete.

2. Steps

01Add and configure Cast

Objective

Give numeric CSV columns explicit types before comparison.

Actions

  1. Drag Cast from Transformations.
  2. Double-click it.
  3. Enter {"price":"float","qty":"int"} in Types (JSON), then save.
Transformations → Cast → Types (JSON)
What you should see

The Cast node has the required mapping used by the real dialog schema.

Cast
Types (JSON) *
{"price":"float","qty":"int"}
Save

02Add and configure Filter

Objective

Remove the fixture row whose price is zero.

Actions

  1. Drag Filter after Cast.
  2. Double-click it.
  3. Enter price > 0 in Expression, then save.
Transformations → Filter → Expression: price > 0
What you should see

The Filter node has the required non-empty expression.

Filter
Expression *
price > 0
Save

03Add the CSV destination

Objective

Choose the physical target the completed job will write.

Actions

  1. Drag CSV from Destinations to the right of Filter.
  2. Double-click the destination node.
  3. Use Browse to choose a save path ending in studio-output.csv, then save.
Destinations → CSV → Browse → studio-output.csv
What you should see

Destination CSV requires one File path and accepts a save-file picker.

CSV
File path *
./output/file.csv
Browse
Save

04Connect and verify both layers

Objective

Build one acyclic source-to-destination chain and check every node.

Actions

  1. Connect Source to Cast, Cast to Filter, and Filter to Destination.
  2. Read the toolbar counter and Valid badge.
  3. Inspect every node for configured state before saving.
CSV source → Cast → Filter → CSV destination → Save
What you should see

The designed chain has four nodes, three directed edges, no DAG error, and all required fields saved.

4 nodes · 3 edges
Valid
Saved ✓
Tips and traps

Sources and transformations live in Jobs configuration. Jobs and actions live in Workflow configuration.

A container never runs. Five nodes on screen can mean four steps in the YAML.

An edge leaves a right handle and enters a left handle. Direction is never ambiguous.

The Valid badge means the manifest parses. Only a run proves the job works.

A policy reaches only what sits inside the container. A node beside it gets nothing.

Studio can be ahead of the disk. Open the file to be sure.

Counts and durations are live values. Never quote them as thresholds.

An animation is not an outcome. Wait for a terminal state on the Runs page.

3. Checklist

VerificationExpected result
GraphSource → Cast → Filter → Destination
Required mappingsprice float and qty int
Filterprice > 0
ReadinessDAG Valid plus every node configured

4. Troubleshooting

SymptomCauseFix
Valid appears while a node is incompleteHeader validity checks the DAGOpen each node and satisfy its required fields
An edge is rejectedDirection, capacity, duplicate, or cycle rule is violatedConnect left to right once and keep destination last
Cast remains incompleteMapping JSON is blank or malformedUse the exact JSON object and save

5. Next lesson

The visual job is complete and serialized. The next lesson selects Run Job, opens the Logs panel automatically, and follows the status produced by the inline job execution path.

Close by

0 / 0 on this page