Read time: ~6 minutes · Series: Analyst practice · Previous: SQL-first · Next: Statistical tools
Four takeaways
- Persist tab run → cached table—reference with
FROM "tab_name"in later SQL. - Agent may cache during Execute (often background steps); both types support View SQL under Cached.
- Source Run when SQL references upstream tabs and you want dependency-order rerun—speed and refresh, not a quality gate.
- One clear JOIN can run as one step—don't split for appearance.
Two cache types: persist vs agent
| persist cache | agent cache | |
|---|---|---|
| Source | Saved and executed Persist SQL tab | Materialized mid-step during Execute |
| View SQL | Tab SQL | Recorded query SQL |
| Source Run | Supported | Not included |
| Right-click | Run, Source Run, Open Tab, Lineage, etc. | Mainly view / delete / SELECT 100 |
Daily:
- Doubt metrics → Cached → View SQL
- Upstream tab changed → Source Run on downstream or rerun upstream manually
- Cache cleared after restart → rerun corresponding tab (USER_GUIDE §7.4)
When to split Persist tabs
Worth splitting:
- Same cleaning logic referenced 3+ times
- Large intermediate table, expensive rerun, metrics fixed in Plan
- Colleagues need "what this step filtered" as review point
Don't force split:
- Two-table join clear in Plan and SQL fits one screen
- Quick filter experiment
Principle: correctness and auditability first; splitting is for rerun, debug, reuse—not ritual.
Source Run in plain language
When SQL has FROM "clean_orders" and clean_orders is another Persist tab, Source Run:
- Finds upstream dependencies
- Runs upstream tabs in order
- Runs your tab last
Use when upstream changed and downstream must refresh, or you're unsure upstream is current.
Lineage graph visualizes dependencies—useful explaining "where this number came from" in meetings.
Relation to Execute / Report
- Execute may create many SQL tabs and cache; Progress → Steps maps query steps.
- Report holds conclusions; SQL + cache hold evidence. Challenges must align both.
- Deleting cache updates Query Step Ledger; Agent should re-query, not assume old tables exist.