Write what should happen to your data in a sentence. DataOps draws the pipeline and writes the Airflow DAG, the dbt model and the checks. You review it like any other pull request.
The generated code is plain Airflow and dbt. No runtime of ours sits between you and your warehouse, and nothing locks you in.
Sources, schedule, what to clean and where it lands. Plain English.
See every step before any code exists. Change the sentence, the graph follows.
An Airflow DAG, a dbt model and data checks, formatted and commented.
It lands in your repo as a branch. Your CI and your reviewers decide.
The generator is opinionated about the things teams forget at 2am.
Every task gets retries with backoff and a failure callback to the channel you name.
Merges on a key instead of blind appends, so re-running a night never doubles your revenue.
Unique and not-null tests on keys, freshness on sources, and row count bounds you can tune.
Names that match your sentence, comments that say why, and no clever abstractions to decode.
Date-partitioned tasks, so backfilling March is one command, not a weekend.
Code references Airflow connections by name. Credentials never pass through us.
If it has an Airflow provider, it can be a step. These are understood by name in a sentence today.
Your warehouse bill is big enough. We don't meter data volume.
No. It writes them. You run them on your own Airflow, Astronomer, MWAA or Composer, the same as code you wrote by hand.
You see it in the graph before any code is written, and the panel under the graph lists exactly what it picked up. Reword it or edit the code. It's a starting point, not a black box.
Only the sentence you type and your table names. Rows never do, because the tool never connects to your data.
On Team plans you set naming, schedule defaults and alert channels once, and every generated pipeline follows them.