learn-business-intelligence-with-phoebe / Builder session 1 of 10
Learn Business Intelligence with Phoebe · Builder track · Session 1 of 10

From SQL to BI

You can query a database - now meet the layer that turns queries into dashboards the whole company reads. This track lives inside one small warehouse: Daybreak, a coffee-subscription brand. Every page has a live mini-BI tool that runs a real database in your browser. Pick a dimension and a measure, and watch it write the SQL for you - that trick is the heart of every BI platform on earth.

🟢 Builder track Practitioners: analysts · DE · DS · PMs Runs in your browser · no install Start here
0-3 · Welcome 3-18 · The BI layer 18-42 · Build-along: first charts 42-45 · Q&A
Part 0

How this track works

Ten sessions, one warehouse: Daybreak, a direct-to-consumer coffee-subscription brand with customers, products, orders, and subscriptions - the same database from learn-sql-with-phoebe, all grown up. Tonight you build your first chart. By b9 you will model a star schema, define governed measures, and ship an executive dashboard that explains a real revenue dip. Every concept is tool-agnostic and mapped to Power BI and Tableau in sidebars, so it transfers straight to whatever your company runs.

Live - presented in session Self-study - read after class ▶ Mini-BI - interactive playground Official sources covered
★ What you walk out with today A picture of where BI sits in the data stack, the five-stage BI workflow (connect, prepare, model, visualize, share), the difference between importing data and querying it live, and a browser tab where you can build real charts on real data - no install, ever.
Part 1 · covers PL-300 "Prepare the data" framing, Google BI "Foundations"

What BI adds on top of SQL 6 min live

SQL answers one question for one person who can write SQL. Business intelligence answers the same questions, refreshed daily, for everyone - including people who will never write a query. A BI platform is the machinery that makes that scale: it connects to data, reshapes it, models it into business terms, draws it, and distributes it with security attached. Every tool - Power BI, Tableau, Looker, Metabase - is a variation on the same five stages.

1 · Connect to the warehouse 2 · Prepare clean and shape 3 · Model business terms 4 · Visualize charts, dashboards 5 · Share with security SQL lives inside stages 1-3. BI wraps it in refresh schedules, drag-and-drop charting, and governed distribution - so the answer reaches people who never see the query. Sessions b2-b8 walk this pipeline left to right. Memorize the five stages - they are the whole course.
🔍 Click to zoom - the five-stage BI workflow, your map for all ten sessions
LiveBI vs analytics vs data science - who does what3 min

These words blur together in job ads, but the split is clean when you look at the question each one answers:

  • BI answers "what is happening?" - recurring, standardized, self-serve. Revenue this month, churn by plan, orders by channel. Freshness and trust matter more than cleverness.
  • Analytics answers "why did it happen?" - one-off investigations, ad-hoc SQL, notebooks. The March dip in b9 starts as a BI observation and becomes an analytics investigation.
  • Data science answers "what will happen, and what should we do?" - models, forecasts, experiments. It usually consumes the same modeled data BI built.
Real world

The 9am test. If a question gets asked every Monday at 9am by someone who cannot write SQL, that is BI. If it got asked once by the CFO after a weird board meeting, that is analytics. Teams that route both through the same ad-hoc channel burn their analysts on repeat questions a dashboard should have answered.

Self-studyWhere BI sits in the modern data stack3 min read

In a modern company the flow is: operational systems (Shopify, Stripe, the app database) → ingestion (Fivetran, Airbyte) → warehouse (Snowflake, BigQuery, Databricks) → transformation (dbt) → BI (this course) → humans and, increasingly, AI agents. BI is the last mile - which is exactly why it gets blamed when anything upstream breaks. Session b10 zooms out to this full stack.

  • BI reads, it does not own: the warehouse owns storage; BI owns meaning and presentation.
  • The semantic model is the handshake: business definitions ("revenue", "active customer") get encoded once, so every chart agrees. That idea gets its own session (b4) and its own leader session (a3).
  • Daybreak simplification: our whole "warehouse" is one small SQLite database in your browser - tiny, but structurally identical to the real thing.
Part 2 · covers PL-300 "choose Import / DirectQuery / DirectLake", Tableau "live vs extract"

Import the data, or query it live? 6 min live

The first real decision in any BI tool: does the tool take a copy of the data (fast, snapshot-stale) or ask the source every time (always fresh, only as fast as the source)? Every vendor names it differently; the trade-off is identical. Get this wrong and you either ship stale numbers or melt the warehouse.

Import (copy) Tool stores its own copy Blazing fast to explore Stale until next refresh Needs a refresh schedule PBI: Import · Tableau: Extract Live (ask every time) Every click hits the source Always current Speed = source speed Source pays the query bill PBI: DirectQuery · Tableau: Live Lake-native (newest) Reads lake files directly Near-import speed Near-live freshness Needs a lakehouse setup PBI on Fabric: DirectLake Default answer: Import/Extract with a sensible refresh. Go live only when staleness genuinely hurts.
🔍 Click to zoom - the copy-vs-live decision every BI tool makes you take first
LiveHow to choose - the three questions3 min

Ask these in order, and the mode picks itself:

  • How fresh must it be? "Yesterday is fine" (most finance and exec reporting) → Import. "Up to the minute" (ops floor, fraud) → live.
  • How big is it? Fits comfortably in memory after filtering to what you need → Import. Billions of rows you only ever aggregate → live against a warehouse built for it.
  • Who pays for queries? Live mode sends every viewer's every click to the source. A dashboard with 500 viewers can hammer a warehouse. Import absorbs that on the BI side.
In Power BI / In Tableau Power BI calls the copy Import, the live path DirectQuery, and the Fabric lakehouse hybrid DirectLake. Tableau calls the copy an Extract (.hyper file) and the live path a Live connection. Same trade-off, different nouns - PL-300 and the Tableau exams both test exactly this choice.
Self-studyWhere our playground fits2 min read

The mini-BI tool on this page is technically an import: your browser downloaded a copy of the whole Daybreak database once, and every chart is computed locally against that copy - fast, and it costs the "warehouse" nothing. It is also how Power BI Import mode feels in practice: interactions are instant because the data is already in memory. When b8 covers refresh schedules, remember: our "refresh" is you reloading the page.

Part 3 · the running playground for all ten sessions

Meet the mini-BI: it writes the SQL for you 4 min live

Here is the same question answered two ways. First, the SQL way - you write the query. Then, the BI way - you pick Dimension: month and Measure: revenue, and the tool writes the query. Click Show SQL on the mini-BI and compare: it generated what you would have typed. That generation step is what Power BI's semantic model, Looker's LookML, and dbt's metrics layer all do for a living.

LiveThe SQL way - you write it2 min

Straight from the SQL course: revenue by month, typed by hand. Run it.

SELECT strftime('%Y-%m', o.order_date) AS month,
       ROUND(SUM(oi.quantity * oi.unit_price), 2) AS revenue
FROM orders o
JOIN order_items oi ON oi.order_id = o.order_id
GROUP BY 1
ORDER BY 1;
LiveThe BI way - you pick, it writes2 min

Same answer, zero typing. Now press Show SQL and read what it wrote. Then change the measure to Orders and watch both the chart and the SQL change together.

★ The one idea to keep A BI tool is a machine that turns declarations ("revenue by month, as a line") into queries. Whoever defines that translation - the semantic model - controls what every chart in the company says. That is why b4 (measures) and a3 (one number, one truth) exist.
Demo 1 of 2

Build your first three charts ★ 12 min · everyone builds

Daybreak's founder asks three questions. Answer each by picking the right dimension, measure, and chart type in the box below - one box, three configurations. This is the core loop of every BI tool: question → dimension + measure → chart.

"How is revenue trending month over month?" Dimension: Month · Measure: Revenue · Chart: Line. Notice anything odd around March? Hold that thought until b9.

"Which cities buy the most?" Dimension: City · Measure: Revenue · Chart: Bar. The gold bar is your top category - a styling choice you will justify in b5.

"How big are we overall?" Chart: KPI card · Measure: Revenue. One governed number, no dimension - the shape every executive dashboard leads with.

Real world

This loop is the job. A BI developer's day is largely: hear a business question, translate it to dimension + measure, pick the chart that answers it fastest, repeat. The people who look senior are not drawing fancier charts - they are translating questions faster and defining measures everyone trusts. Tools change; that loop does not.

Demo 2 of 2

Your turn: three questions, your charts ★ 10 min · build your own

No recipe this time. For each question, decide the dimension, the measure, and the chart type yourself - then check your choice against the hint. Wrong first picks are normal; noticing why a chart fails to answer the question is the actual lesson.

LiveQ1 · Do Pro-plan customers spend more than Basic?3 min
LiveQ2 · Which product category drives the most units?3 min
Self-studyQ3 · How many distinct customers actually order each month?2 min

A taste of b4: "Buying customers" is a COUNT(DISTINCT ...) - a measure that cannot be summed across months (a customer active in two months is not two customers). Semi-additive measures like this are where hand-rolled reporting quietly goes wrong.

Homework

Try it yourself - this week ◐ 20-30 min total

Source material

Official sources covered

This track teaches the shared core of the Microsoft PL-300, Tableau Data Analyst, and Google BI curricula, tool-agnostic and live. Certificates, videos, and click-path labs stay with the vendors (mapped in b10). This page covers:

PL-300 · Get or connect to data - Import vs DirectQuery vs DirectLakePart 2 · the storage-mode decision, tool-agnostic
Tableau Specialist · live connection vs extractPart 2 · same trade-off, Tableau nouns
Google BI cert · Foundations of Business IntelligencePart 1 · BI vs analytics framing; Google's org-strategy depth returns in the leader track
MS Learn · Discover data analysis + Get started building with Power BIParts 1-3 · conceptual core; Desktop click-paths stay with Microsoft
Check yourself

Three questions before you go 🎯 ◐ 90 seconds

1 · A question gets asked every Monday at 9am by managers who cannot write SQL. That is a job for...

Recurring + standardized + non-technical audience = BI. Analysts should be freed for the "why" questions, not re-running Monday's numbers.

2 · Your exec revenue dashboard needs yesterday's numbers, loads fast, and has 300 viewers. Best connection mode?

Daily freshness is enough, so take the copy: instant interactions for 300 viewers and zero per-click load on the source. Live mode would send every click to the warehouse.

3 · You picked "revenue by month" and the mini-BI produced SQL. Which BI concept did you just watch?

Declaration in, query out - that translation IS the semantic layer. Power BI's model, LookML, and dbt metrics are industrial versions of the same move (b4 and a3 go deep).

Builder session 1 cheat sheet · pin this

BI isrecurring answers, refreshed and self-serve, for people who never write SQL. The 9am test.
The 5 stagesConnect → Prepare → Model → Visualize → Share. Sessions b2-b8 walk them in order.
Import vs liveCopy = fast but snapshot (Import/Extract). Live = fresh but source-speed (DirectQuery/Live). Default: copy + refresh.
DirectLakePower BI on Fabric reads lake files directly - near-import speed, near-live freshness.
The core loopQuestion → dimension + measure → chart. Every dashboard decomposes into this.
Semantic layerThe declaration-to-SQL translator. Define "revenue" once; every chart agrees. b4 + a3.
Daybreak's 6 tablescustomers · products · orders · order_items · subscriptions · events - same DB as learn-sql.
Running projectSomething is off in March. We will notice it properly in b5, and solve it in b9.