DataPilot - AI Teammate for Data Teams. The team behind #dbtpoweruser vscode extension

Sunnyvale, California
Joined February 2024
Long dbt models with many ref() calls and macros are hard to follow. The compiled SQL explains the whole model, but you usually need one piece of it.
1
8
Hover over a macro to see what it does and which models use it. Or ask AI to explain one transformation at a time.
1
Where do you get lost first in an inherited dbt project: ref() chains or macros?
3
Debugging dbt means you untangle Jinja and copy compiled SQL into another tool. The bug often sits in one CTE, and you check them one at a time.
1
17
Profile each CTE to see its row count. A hidden jump in rows points at the bad join, such as a fan-out that duplicates rows.
1
3
How do you find a fan-out join today?
1
You change one column. Table-level lineage flags every downstream model, and you check each one by hand. In a large dbt project the graph is too complex to read by eye.
1
13
It works in VS Code or Cursor, and AI chat answers questions about the model and its upstream models.
1
1
How does your team check impact before a column change today?
1
AI writes a dbt model in seconds. You still read every line before you merge it. A model can run green and still return wrong rows: the tests pass, and the totals are off.
1
20
It catches correctness bugs before they reach a dashboard, and cost problems such as SELECT * in a CTE.
1
6
What do you check first when you review AI-written SQL?
Ever wanted to drop a dbt column and had no idea what reads it? Say it is legacy_segment_code in dim_customer. Table lineage hands you 40 downstream tables to open by hand. Column lineage names the 2 models that actually read it... ↓
1
18
So before we trust a graph, we pick the field the team argues about most. We ask the tool for its consumers, then count them by hand. The gap between the two counts is your coverage number.
1
3