Product · Transform

Shape the data, in SQL you can read

Drag in a step, pick the columns, see the result. Every step compiles to SQL and runs as pushdown in your own Snowflake, so the canvas is a way of writing SQL rather than a layer on top of it – and the SQL is always there to read.

Steps

What you can build.

Joins & unionsInner, left, right, full and anti joins
CleansTrim, case, null handling, find and replace
DeduplicationBy key, with a rule for which row wins
AggregationsGroup by with sums, counts, averages, windows
Calculated fieldsExpressions, conditionals, date maths
FiltersRow and column level, parameterised
Type handlingCasts, formats, timezone conversion
Pivot & unpivotWide to long and back
SQL stepsDrop into raw SQL at any point in the flow
How it runs

Pushdown, previewed, validated.

01

Nothing is copied out

Steps compile to a single SQL statement and execute in your own Snowflake. Refyner never holds your data – only the dataflow definition and metadata.

02

Preview as you go

Every step shows the resulting rows and the SQL behind them, so you check the output while you build rather than after it ships.

03

Validated before it runs

Pre-flight checks confirm every column exists, the grain is what you expect, and no join will fan out unexpectedly. AI assistance will be able to draft and explain steps – coming soon.

FAQ

Frequently asked questions

Can I write SQL instead?

Yes. Any step can be a SQL step, and the SQL generated for visual steps is always visible. The canvas and the SQL are the same dataflow, not two modes.

Does my data leave Snowflake?

No. Transformations execute in your own warehouse as pushdown SQL – see the security model.

How large can a dataflow get?

Our production models could run to 100+ steps. Because execution is pushdown, throughput is a function of the Snowflake warehouse you point it at, not of Refyner.

Can I reuse logic across dataflows?

Yes. A dataflow's output is a Snowflake table, so another dataflow can read it – and production models give you a working starting point to adapt.

Build a dataflow and read the SQL it writes.

Connect Snowflake, drag in a few steps, and check the generated SQL against what you would have written.