Preparation node
Record ID
Stamp each row with a sequential number or a UUID.
What it does
Adds an identifier column to every row: either a sequential counter or a time-ordered UUID. You choose the column name, where it sits, and (for the counter) what number to start at. It streams, so it costs nothing in memory no matter how many rows go through.
Inputs and outputs
| Inputs | One. |
| Outputs | One. |
When to use it
- Give rows a stable primary key before loading them somewhere
- Number rows so you can refer back to a specific one
- Tag records before splitting them down several branches, so you can rejoin them later
Examples
Sequential id
Sequential integer, start at 1 → 1, 2, 3, …
The simplest row number.
Start at 1000
Start at: 1000 → 1000, 1001, 1002, …
Useful when you're appending to something that already has ids.
UUID
UUID (v7) → 01903f2e-…
Globally unique, so two runs never collide, and time-ordered, so they still sort sensibly.
Put it last
Position: Last (rightmost)
Keeps the id out of the way when you're eyeballing the data.
Tips
- The id column name must not clash with an existing column. The run stops and names it if it does, and the check is case-exact.
- UUID v7 is time-ordered, so the ids sort roughly by when they were made. That is the reason to prefer it over a random UUID.
- Sequential numbering follows incoming row order. If the order matters, Sort first: an unsorted source can hand you a different numbering next run.
- Sequential ids restart from your Start at value on every run, so they identify a row WITHIN a run, not across runs. Use UUID when the id has to be stable forever.