Preparation node
Generate Rows
Synthesize rows from nothing: a sequence of numbers, dates or date-times.
What it does
A source that builds one column out of nothing: a row count, a number range, or a range of dates or timestamps. There is no input; the rows are synthesized straight from the settings. It's how you make a calendar spine to join real data onto, so gaps show up as gaps rather than as missing rows.
Inputs and outputs
| Inputs | None. This node starts a pipeline. |
| Outputs | One. |
When to use it
- Create a calendar or date spine to join activity onto
- Generate a numeric sequence: buckets, test ids, a scale
- Make a fixed number of placeholder rows to build on
Examples
100 numbered rows
Row count: 100
Rows numbered 1 to 100.
Even numbers
Number range: 0 to 100, step 2
Stops at or before the end value; it never overshoots.
A year of dates
Date range: 2026-01-01 to 2026-12-31, step 1 day
The calendar spine: join sales onto it and the empty days stay in the result instead of disappearing.
Hourly timestamps
Date-time range: step 1 hour
For bucketing events into hours without losing the quiet ones.
Count down
Number range: 10 to 1, step -1
A negative step counts down.
Tips
- This is a declarative sequence, not a loop. It makes rows; it does not repeat work per row.
- The output column's name is yours to choose, and its type follows the mode you picked.
- Dates are written as plain ISO text: 2026-01-01, and 2026-01-01 00:00:00 for a timestamp. There is no locale guessing.
- A date step can be days, weeks, months or years; a date-time step can be seconds, minutes, hours or days.
- The calendar-spine pattern is the point: generate the dates, join your data onto them, and Union the Join's matches with its Left anchor. A day with no activity is then an empty row (fill it with zero using Fill Missing) rather than an absent one.