Scenario: You’ve landed a large, trusty fact table—say, daily transactions—into Databricks. Stakeholders need a dashboard that does two very different things with the same data:
- Current‑month detail for operational troubleshooting (record‑level drill‑downs).
- Trailing 12‑month trends for strategic context (monthly aggregates, sparklines, YoY deltas).
You now face a classic decision:
- Single upstream view — expose the whole table to Tableau and slice it there with filters, parameters, or extracts.
- Multiple database views — pre‑filter or pre‑aggregate the data into dedicated SQL views (e.g.,
vw_current_month_detail,vw_trailing_12mo).
The sections below compare these options and offer a quick checklist to steer the decision.
| Approach | Pros | Cons |
|---|---|---|
| Single Upstream View (Filter in Tableau) | • Fast to prototype—no new SQL objects. • One data source to monitor and fix. • Flexible: analysts change date windows without engineering help. | • Tableau must filter a large dataset—can slow dashboards at scale. • Complex LODs/filters live in workbooks, risking duplication. • Harder to enforce row‑level security or expose only needed columns. |
| Multiple Database Views (Pre‑filtered / Pre‑aggregated) | • Faster queries—smaller, purpose‑built result sets. • Clear intent and easier permissioning per audience. • Simpler Tableau workbooks—less calc logic. | • More objects to build and maintain; risk of drift when schemas change. • Slower to iterate—need engineering for tweaks. • Duplicate logic possible across SQL views. |
Key Questions Before You Decide
- Performance: How big is the dataset and how strict are dashboard speed expectations?
- Maintenance Ownership: Do you (or a strong data‑engineering team) control the warehouse objects?
- Audience Differences: Do different teams need different grains, date windows, or permission levels?
- Iteration Speed: Will the date logic change often during discovery or is it stable?
- Governance & Security: Are there regulatory or contractual reasons to isolate certain rows or columns upstream?
