Build a Business Analytics Dashboard

Write analytical SQL and build an interactive dashboard in Databricks.

Introduction

30 Second Summary

Every business has data. The companies that win are the ones that can turn raw numbers into clear stories for decision-makers.

In this project, you will build a multi-page interactive dashboard in Databricks that analyzes a wholesale supply chain company's revenue, customers, and order performance.

What You'll Build

A published analytics dashboard backed by SQL queries that calculate business KPIs from Databricks' built-in TPC-H sample dataset.

By the end of this project, you'll have:

  • Analytical SQL queries using CTEs, JOINs, and window functions against a snowflake schema dataset.
  • A two-page interactive dashboard with line charts, bar charts, counters, and scatter plots.
  • Interactive filters (date range, market segment) that let viewers drill into the data.
  • Secret Mission: Add a third dashboard page with customer ranking analysis using advanced window functions.

Are there any prerequisites?

You should be comfortable with basic SQL (SELECT, WHERE, GROUP BY, JOIN). No prior Databricks experience is required. This project will guide you through everything from account signup to publishing your finished dashboard.

Sign Up and Navigate Databricks Free Edition

Before you can build a dashboard, you need a workspace with data to analyze. Databricks Free Edition gives you a full SQL editor, sample datasets, and a dashboard builder at no cost.

In this step, you will create your Databricks account, explore the pre-loaded sample data, and run your first SQL query to confirm everything is connected.

In this step, get ready to:
  • Sign up for Databricks Free Edition and log into your workspace.
  • Browse the TPC-H sample dataset in Catalog Explorer.
  • Run a test query in the SQL Editor to verify your setup.
Sign up for Databricks Free Edition

Databricks Free Edition is a no-cost workspace designed for learning and experimentation. It includes a SQL editor, interactive dashboards, and pre-loaded sample datasets.

  • Open the Databricks Free Edition signup page in your browser:
  • https://www.databricks.com/learn/free-edition
  • Choose your preferred signup method (email, Google, or Microsoft sign-in).
  • Complete the signup form and verify your email address when prompted.
  • Once verified, Databricks creates a workspace for you automatically.
  • Log into your new workspace.

What is Databricks Free Edition?

Databricks Free Edition is a no-cost, serverless workspace for students, educators, and hobbyists. It replaced the legacy Community Edition (retired in 2025).

Your workspace comes with serverless compute and default storage pre-configured. No credit card or cloud account is required.

Having trouble signing up?

Make sure you are signing up for Free Edition (not the 14-day Free Trial, which requires a work email and cloud account). Free Edition accepts personal email addresses and has no time limit.

If you previously had a Community Edition account, sign up fresh with the Free Edition page to continue your work. help me sign up for Databricks Free Edition

Explore the workspace and sample data

Your workspace sidebar is the main navigation hub. From here you can access the SQL Editor, Catalog Explorer, dashboards, and more.

  • Look at the left sidebar of your workspace. You should see sections including Workspace, Catalog, SQL Editor, and Dashboards.
  • Click the Catalog icon in the sidebar to open Catalog Explorer.
  • In Catalog Explorer, click samples to expand the sample catalog.
  • Click tpch to expand the TPC-H schema.
  • Confirm you can see the following tables: orders, customer, nation, lineitem, supplier, region, part, partsupp.

What is TPC-H?

TPC-H is a standard benchmark dataset that models a wholesale supply chain business. It includes tables for customers, orders, suppliers, nations, and regions in a snowflake schema.

This is the same type of data structure you would encounter in a real corporate environment. Databricks pre-loads it so you can start querying immediately without importing anything.

Run your first query in the SQL Editor

The SQL Editor is where you will write all your analytical queries throughout this project. It connects to a SQL warehouse, which is the compute engine that runs your queries.

  • Click SQL Editor in the sidebar to open it.
  • Look at the drop-down near the top of the editor. Your 2X-Small SQL warehouse should already be selected and connected (Free Edition auto-provisions one for you).
  • Check that the warehouse status icon shows Running. If it shows Stopped, it will auto-start when you run your first query.

What is a SQL warehouse?

A SQL warehouse is the compute resource that powers your queries in Databricks. Think of it as the engine that processes your SQL and returns results.

Free Edition gives you one warehouse limited to a 2X-Small cluster size. This is more than enough for the sample data queries in this project.

  • Run your first test query by typing the following into the editor:
SELECT * FROM samples.tpch.orders LIMIT 10
  • Press Ctrl+Enter (Windows) or Cmd+Enter (macOS) to run the query. You can also click Run in the toolbar.

You should see a table of 10 rows appear in the results pane below the editor. Each row represents an order with columns like o_orderkey, o_custkey, o_totalprice, and o_orderdate.

Not seeing any results?

If the warehouse is starting up, you may need to wait 30-60 seconds for the first query to return. The warehouse auto-starts when you run a query, so just be patient on the first run.

If you see an error about the catalog or table not being found, double-check that you typed samples.tpch.orders exactly (all lowercase). help me troubleshoot my Databricks SQL query

Your workspace is set up and ready to go. Next up, you will write the analytical SQL queries that power your dashboard visualizations.

Write Business KPI Queries

Your SQL Editor is connected to the warehouse and you have confirmed the TPC-H tables are available. Now it is time to write the analytical queries that will power your dashboard.

Every business dashboard starts with the right questions. In this step, you will write three queries that answer core stakeholder questions: how much revenue are we generating by market, how is revenue trending over time, and who are our top customers.

In this step, get ready to:
  • Write a revenue summary query using a CTE that joins three tables.
  • Write a revenue trend query that calculates monthly performance.
  • Write a top customers query using a window function.
Write the revenue summary query

The first question a stakeholder asks is "how is revenue distributed across markets?" To answer this, you need to join the orders, customer, and nation tables together and group the results by country and market segment.

  • In the SQL Editor, click the + tab icon at the top of the editor, then select Create new query.
  • Paste the following query into the new tab:
-- Revenue Summary: total revenue, orders, and customers by nation and market segment
WITH revenue_summary AS (
  SELECT
    n.n_name AS nation_name,
    c.c_mktsegment AS market_segment,
    SUM(o.o_totalprice) AS total_revenue,
    COUNT(DISTINCT o.o_orderkey) AS order_count,
    COUNT(DISTINCT o.o_custkey) AS unique_customers
  FROM samples.tpch.orders o
  JOIN samples.tpch.customer c ON o.o_custkey = c.c_custkey
  JOIN samples.tpch.nation n ON c.c_nationkey = n.n_nationkey
  GROUP BY n.n_name, c.c_mktsegment
)
SELECT *
FROM revenue_summary
ORDER BY total_revenue DESC

What does this query do?

The WITH clause creates a CTE (Common Table Expression). Think of it as a named temporary result set that makes complex queries more readable.

Inside the CTE, two JOIN operations connect orders to customers (via o_custkey = c_custkey) and customers to nations (via c_nationkey = n_nationkey). The GROUP BY then aggregates revenue, order count, and unique customer count for each nation-segment combination.

  • Run the query by pressing Cmd+Enter (macOS) or Ctrl+Enter (Windows).
  • You should see a results table with columns for nation_name, market_segment, total_revenue, order_count, and unique_customers. Each row represents one nation-segment pair.
  • Rename this query by clicking on the tab title at the top and typing Revenue Summary.

Query returned no results?

  • Make sure the table paths include the full three-level name: samples.tpch.orders, not just orders.
  • Check that your SQL warehouse shows a green "Connected" indicator in the top bar of the SQL Editor. If it says "Starting", wait a moment for it to spin up.
  • Confirm the join conditions match exactly: o.o_custkey = c.c_custkey and c.c_nationkey = n.n_nationkey.

Help me debug my revenue summary query.

Write the revenue trend query

Stakeholders love trend lines. This next query calculates monthly revenue and order count so you can visualize how the business performs over time.

  • Click + at the top of the editor and select Create new query to open a fresh tab.
  • Paste the following query:
-- Revenue Trend: monthly revenue and order count over time
SELECT
  date_trunc('MONTH', o_orderdate) AS order_month,
  SUM(o_totalprice) AS monthly_revenue,
  COUNT(DISTINCT o_orderkey) AS order_count
FROM samples.tpch.orders
GROUP BY date_trunc('MONTH', o_orderdate)
ORDER BY order_month

What does this query do?

The date_trunc('MONTH', o_orderdate) function truncates each order date to the first day of its month. This groups all orders from the same month together.

The result is a chronological list of months, each with the total revenue earned and number of distinct orders placed. This is exactly the shape a line chart needs for its X and Y axes.

  • Run the query by pressing Cmd+Enter (macOS) or Ctrl+Enter (Windows).
  • You should see rows with an order_month column (dates like 1992-01-01, 1992-02-01), monthly_revenue, and order_count. The rows are sorted from earliest to latest.
  • Rename this query tab to Revenue Trend.

Seeing NULL in the order_month column?

  • Make sure the unit string is 'MONTH' (with quotes and uppercase). An invalid unit causes date_trunc to return NULL.
  • Verify the column name is o_orderdate (not o_date or orderdate).

Help me fix my revenue trend query.

Write the top customers query

Identifying your highest-value customers is a core business analysis task. This query uses a window function to rank customers by total spend without collapsing the result into a single row per group.

  • Click + and select Create new query to open another fresh tab.
  • Paste the following query:
-- Top Customers: rank customers by total spend using a window function
WITH customer_spend AS (
  SELECT
    c.c_name AS customer_name,
    n.n_name AS nation,
    c.c_mktsegment AS market_segment,
    SUM(o.o_totalprice) AS total_spend,
    COUNT(DISTINCT o.o_orderkey) AS order_count,
    RANK() OVER (ORDER BY SUM(o.o_totalprice) DESC) AS spend_rank
  FROM samples.tpch.orders o
  JOIN samples.tpch.customer c ON o.o_custkey = c.c_custkey
  JOIN samples.tpch.nation n ON c.c_nationkey = n.n_nationkey
  GROUP BY c.c_name, n.n_name, c.c_mktsegment
)
SELECT
  customer_name,
  nation,
  market_segment,
  total_spend,
  order_count
FROM customer_spend
WHERE spend_rank <= 20
ORDER BY spend_rank

What is RANK() OVER?

RANK() OVER (ORDER BY SUM(o.o_totalprice) DESC) assigns a rank number to each customer based on their total spend. The highest spender gets rank 1, the next gets rank 2, and so on.

Unlike a plain ORDER BY with LIMIT, a window function calculates the rank as a column alongside the other data. The WHERE spend_rank <= 20 filter in the outer query then keeps only the top 20.

  • Run the query by pressing Cmd+Enter (macOS) or Ctrl+Enter (Windows).
  • You should see exactly 20 rows, each showing a customer name, their nation, market segment, total spend, and order count. The first row is the highest spender.
  • Rename this query tab to Top Customers.

Getting a GROUP BY error?

  • Every non-aggregated column in the SELECT must appear in the GROUP BY clause. Make sure c.c_name, n.n_name, and c.c_mktsegment are all listed.
  • Check that RANK() OVER (ORDER BY SUM(o.o_totalprice) DESC) uses SUM(o.o_totalprice) inside the ORDER BY, not just o.o_totalprice.

Help me fix my top customers window function query.

✔️ Awesome, I've got everything!

Great. Double check that all three query tabs are renamed and showing results. Your queries auto-save in Databricks, so they are safely stored in your workspace.

ⓧ I'd like to double check the full code

Here are all three queries for reference. Compare yours against these:

Revenue Summary:

-- Revenue Summary: total revenue, orders, and customers by nation and market segment
WITH revenue_summary AS (
  SELECT
    n.n_name AS nation_name,
    c.c_mktsegment AS market_segment,
    SUM(o.o_totalprice) AS total_revenue,
    COUNT(DISTINCT o.o_orderkey) AS order_count,
    COUNT(DISTINCT o.o_custkey) AS unique_customers
  FROM samples.tpch.orders o
  JOIN samples.tpch.customer c ON o.o_custkey = c.c_custkey
  JOIN samples.tpch.nation n ON c.c_nationkey = n.n_nationkey
  GROUP BY n.n_name, c.c_mktsegment
)
SELECT *
FROM revenue_summary
ORDER BY total_revenue DESC

Revenue Trend:

-- Revenue Trend: monthly revenue and order count over time
SELECT
  date_trunc('MONTH', o_orderdate) AS order_month,
  SUM(o_totalprice) AS monthly_revenue,
  COUNT(DISTINCT o_orderkey) AS order_count
FROM samples.tpch.orders
GROUP BY date_trunc('MONTH', o_orderdate)
ORDER BY order_month

Top Customers:

-- Top Customers: rank customers by total spend using a window function
WITH customer_spend AS (
  SELECT
    c.c_name AS customer_name,
    n.n_name AS nation,
    c.c_mktsegment AS market_segment,
    SUM(o.o_totalprice) AS total_spend,
    COUNT(DISTINCT o.o_orderkey) AS order_count,
    RANK() OVER (ORDER BY SUM(o.o_totalprice) DESC) AS spend_rank
  FROM samples.tpch.orders o
  JOIN samples.tpch.customer c ON o.o_custkey = c.c_custkey
  JOIN samples.tpch.nation n ON c.c_nationkey = n.n_nationkey
  GROUP BY c.c_name, n.n_name, c.c_mktsegment
)
SELECT
  customer_name,
  nation,
  market_segment,
  total_spend,
  order_count
FROM customer_spend
WHERE spend_rank <= 20
ORDER BY spend_rank

Why CTEs instead of subqueries?

CTEs make your SQL easier to read by giving each logical step a name. When you build dashboards, you will reuse these same query patterns as datasets. A named CTE is much easier to revisit and modify than a deeply nested subquery.

You now have three analytical queries saved and ready to go. Next up, you will turn these queries into a visual dashboard with charts and counters that stakeholders can read at a glance.

Build Your Dashboard - Revenue Overview Page

Your SQL queries are ready to power real visualizations. In this step, you will turn those queries into an interactive dashboard that a stakeholder can read at a glance.

Databricks AI/BI Dashboards let you define datasets from SQL, then drag visualizations onto a canvas to build multi-page reports. You will create your first dashboard page with a line chart, a counter, and a bar chart.

In this step, get ready to:
  • Create a new dashboard and add your first dataset.
  • Add a line chart, counter, and bar chart to the canvas.
  • Arrange your visualizations and add a page title.
Create your dashboard and add the first dataset

Dashboards in Databricks have two main areas. The Data tab is where you define the SQL datasets that power your charts. The Canvas tab is where you drag visualizations, filters, and text onto the page.

  • Click New in the sidebar.
  • Select Dashboard.

A new dashboard opens with a blank canvas. By default, it is automatically named with a creation timestamp.

  • Double-click the dashboard title at the top and type Supply Chain Analytics to rename it.
  • Click the Data tab at the top of the dashboard editor.
  • Click Add SQL dataset.

A query editor panel appears. You will paste your Revenue Trend Query here.

  • Switch back to your SQL Editor tab in the browser and copy the full text of your Revenue Trend Query (the one that calculates monthly_revenue and order_count by order_month).
  • Return to the dashboard Data tab and paste the query into the editor.
  • Click Run to execute the query.
  • Double-click the dataset title (above the query editor) and rename it to Monthly Revenue.

You should see a results table with monthly rows of revenue data.

What is a dataset in a dashboard?

A dataset is a saved SQL query that lives inside your dashboard. Each visualization on the canvas pulls its data from one of these datasets. By naming them clearly, you can quickly tell which chart uses which query.

Now add a second dataset for the revenue summary breakdown.

  • Click Add SQL dataset again in the Data tab.
  • Switch back to your SQL Editor and copy your Revenue Summary Query (the CTE that joins orders, customer, and nation, grouped by n_name and c_mktsegment).
  • Paste the query into the dataset editor and click Run.
  • Double-click the dataset title and rename it to Revenue Summary.

You should see results grouped by nation and market segment with revenue totals.

Don't see any results after clicking Run?

Make sure your SQL warehouse is still connected. Check for a green indicator next to the warehouse name at the top of the Data tab. If it shows as stopped, click it to restart.

Also confirm you copied the full query text, including the WITH clause if your query uses a CTE.

Still stuck? Help me troubleshoot why my dashboard dataset query is not returning results.

Add visualizations to the canvas

With both datasets defined, you can now build the charts that make this data visual and scannable for stakeholders.

  • Click the Canvas tab to switch to the visual editor.
  • Click Add a visualization and use your mouse to place the widget on the canvas.

The Visualization Configuration panel appears on the right side of the screen.

  • In the Dataset drop-down, select Monthly Revenue.
  • In the Visualization drop-down, select Line.
  • Set the X axis field to order_month.
  • Set the Y axis field to monthly_revenue.

You should see a line chart appear on the canvas showing revenue trending over time.

Why a line chart for trends?

Line charts are the standard visualization for time-series data. They make it easy to spot upward or downward trends, seasonal patterns, and anomalies at a glance.

Stakeholders expect this format when reviewing performance over time.

Next, add a Counter visualization to show total revenue as a single headline number.

  • Click Add a visualization again and place a new widget on the canvas.
  • In the Dataset drop-down, select Monthly Revenue.
  • In the Visualization drop-down, select Counter.
  • Set the Value field to monthly_revenue. The counter automatically aggregates this into a total sum.

You should see a large number appear representing total revenue across all months.

What is a Counter visualization?

Counters display a single value prominently. They are perfect for headline KPIs like total revenue, total orders, or customer count. Stakeholders can absorb the key number instantly without reading a chart.

Finally, add a Bar chart to break down revenue by market segment.

  • Click Add a visualization and place a third widget on the canvas.
  • In the Dataset drop-down, select Revenue Summary.
  • In the Visualization drop-down, select Bar.
  • Set the X axis field to c_mktsegment (market segment).
  • Set the Y axis field to total_revenue.

You should see a bar chart comparing revenue across different market segments like AUTOMOBILE, BUILDING, and MACHINERY.

Chart showing unexpected data or blank?

Double-check that you selected the correct dataset in the Dataset drop-down. The line chart and counter use Monthly Revenue, while the bar chart uses Revenue Summary.

If the axis fields do not appear in the drop-down, return to the Data tab and confirm that both datasets ran successfully with visible results.

Need more help? Help me figure out why my dashboard visualization is blank or showing wrong data.

Arrange your visualizations and add a page title

A well-arranged dashboard tells a story. Stakeholders scan from top-left to bottom-right, so place your headline number and title at the top and your detailed charts below.

  • Drag the Counter widget to the top-right area of the canvas.
  • Drag the Line chart widget below the counter, spanning most of the canvas width.
  • Drag the Bar chart widget to the right of the line chart, or below it.
  • Resize any widget by dragging its edges or corners until the layout feels balanced.

Now add a text widget to serve as the page title.

  • Drag a text widget onto the top-left area of the canvas.
  • Double-click the text widget to start editing.
  • Type Revenue Overview and use the formatting toolbar to increase the font size so it stands out as a heading.

What should I see?

Your canvas should now have four widgets: a text title reading "Revenue Overview" at the top-left, a counter showing total revenue at the top-right, a line chart showing monthly revenue trends, and a bar chart comparing market segments.

The exact layout is flexible. All four elements should be visible on the page without scrolling.

Your first dashboard page is complete. Next up, you will add interactive filters and build a second page dedicated to customer analysis.

Add Filters and a Second Page

Your Revenue Overview page already tells a story with charts. But a static view only answers one question at a time.

Interactive filters let stakeholders slice the data themselves. In this step, you will add date range and market segment filters so viewers can drill into specific time periods or segments. You will also build a second dashboard page focused on customer analysis.

In this step, get ready to:
  • Add a date range filter and a market segment filter to the Revenue Overview page.
  • Create a Customer Analysis page with top customer visualizations.
  • Add a nation filter for drilling into specific countries.
Add interactive filters to the Revenue Overview page

Filters are page-level widgets that automatically update every visualization sharing the same dataset on that page. You will create two filters: one for date range and one for market segment.

Start with the date range filter:

  • Return to your Supply Chain Analytics dashboard. Make sure you are on the canvas (not the Data tab).
  • Click Add a filter (field/parameter) to add a filter widget.
  • Place the filter at the top of your Revenue Overview page.
  • A configuration panel opens on the right side of the screen.
  • Click Widget title and enter Date range to title your filter.
  • From the Filter drop-down menu in the configuration panel, select Date range picker.
  • Click the plus icon next to the Fields menu.
  • Select o_orderdate from the drop-down menu.

What does linking a field do?

When you link a filter to a field like o_orderdate, the filter automatically applies to all visualizations on the page that use datasets containing that field. Any date range a viewer selects will constrain the data shown across your Line chart, Counter, and Bar chart simultaneously.

Now add the market segment filter:

  • Click Add a filter (field/parameter) again to add a second filter widget.
  • Place it next to your date range filter at the top of the page.
  • Click Widget title and enter Market segment to title this filter.
  • From the Filter drop-down menu in the configuration panel, select Single value.
  • Click the plus icon next to the Fields menu.
  • Select c_mktsegment from the drop-down menu.

Test your filters by selecting a date range and a market segment value. Your Line chart, Counter, and Bar chart should all update to reflect the filtered data.

Why a Single value filter for market segment?

A Single value filter creates a drop-down list of all possible values in the field. Viewers pick one segment at a time to focus on. The chart updates dynamically when a new value is selected.

This is ideal for market segment because stakeholders typically want to compare one segment's performance against the overall trend.

Filters not updating your charts?

Make sure the filter's Fields setting references the correct dataset. If your revenue summary dataset and Monthly Revenue dataset both contain the field, you can link the filter to both by clicking the plus icon next to Fields again and selecting the field from the second dataset.

help me connect my filter to multiple datasets

Create the Customer Analysis page

Your dashboard now needs a second page dedicated to understanding who your top customers are. This page will use the Top Customers query you saved earlier.

  • Click the plus icon to the right of the current page tab on the canvas to add a new page.
  • Double-click the new page title and rename it Customer Analysis.

Add your Top Customers query as a dataset for this page:

  • Click the Data tab.
  • Click Add SQL dataset.
  • Paste your Top Customers query (the one using RANK() OVER that returns the top 20 customers) into the editor.
  • Click Run to verify results appear.
  • Double-click the dataset title and rename it Top Customers.

Now create a Bar chart showing the top 20 customers by total spend:

  • Click the canvas tab to return to the Customer Analysis page.
  • Click Add a visualization and place the widget on the canvas.
  • In the configuration panel, select Top Customers from the Dataset drop-down.
  • Select Bar from the Visualization drop-down.
  • Set the X-axis field to the customer name column (c_name).
  • Set the Y-axis field to total_spend.

You should see a bar chart displaying the top 20 customers ranked by their total spend.

Next, create a Scatter plot to visualize the relationship between order count and total spend:

  • Click Add a visualization and place a second widget on the canvas.
  • Select Top Customers from the Dataset drop-down.
  • Select Scatter from the Visualization drop-down.
  • Set the X-axis field to order_count.
  • Set the Y-axis field to total_spend.
  • In the Color setting, select c_mktsegment to color each point by market segment.

What does the scatter plot reveal?

Scatter plots show the relationship between two numerical variables. Here, you can spot whether high-spending customers also place more orders, or if some customers make fewer but larger purchases.

Coloring by market segment adds a third dimension. You can instantly see which segments dominate the high-spend, high-order quadrant.

Add a nation filter for customer drill-down

Stakeholders often want to focus on a single country's customers. Adding a nation filter to this page lets viewers narrow down the analysis without touching SQL.

  • Make sure you are on the Customer Analysis page canvas.
  • Click Add a filter (field/parameter) to add a filter widget.
  • Place it at the top of the Customer Analysis page.
  • Click Widget title and enter Nation.
  • From the Filter drop-down in the configuration panel, select Single value.
  • Click the plus icon next to Fields and select n_name from the drop-down.

Test the filter by selecting a nation from the drop-down. Both the Bar chart and Scatter plot should update to show only customers from that country.

Nation filter not updating the charts?

Confirm that the n_name field exists in your Top Customers dataset. If your Top Customers query does not include n_name as a column, return to the Data tab, edit the query to include it, and click Run to refresh the dataset.

help me fix my nation filter

Your dashboard now has two interactive pages. Next up, you will publish this dashboard and share it with a link, exactly as a business analyst delivers insights to stakeholders.

Publish and Share Your Dashboard

Your dashboard now has two fully interactive pages with charts, filters, and real business insights. The final step is what separates a personal analysis from a professional deliverable.

Publishing transforms your draft dashboard into a read-only, shareable view that stakeholders can access without editing anything. This is exactly how a business analyst delivers insights on the job.

In this step, get ready to:
  • Review and polish your dashboard for stakeholder readability.
  • Publish your dashboard to create a shareable version.
  • Copy the published link and verify the read-only view.
Review both pages for layout and readability

Before publishing, you want to make sure the dashboard tells a clear story. Stakeholders will see this without any context from you, so labels and layout need to speak for themselves.

  • In your Supply Chain Analytics dashboard, make sure you are on the Canvas tab.
  • Navigate to your first page, Revenue Overview.
  • Click on each visualization (Line chart, Counter, Bar chart) and check that the chart title clearly describes what it shows.
  • Verify that axis labels are descriptive. For example, your Line chart should show a clear label on the X-axis for the time period and on the Y-axis for revenue.
  • Adjust any colors if two visualizations use the same color in a confusing way. Click a visualization and use the configuration panel on the right to change colors.
  • Click the second page tab, Customer Analysis, and repeat the same review for the Bar chart and Scatter plot.

Think like a stakeholder

Ask yourself: if someone opened this dashboard with no explanation, would they understand what each chart shows? Clear titles like "Monthly Revenue Trend" or "Top 20 Customers by Spend" go a long way.

Publish your dashboard

Publishing creates a locked, read-only version of your dashboard. Viewers can interact with filters and explore the data, but they cannot modify the layout or queries.

  • Click Publish in the upper-right corner of the dashboard editor.
  • In the dialog that appears, select Share data permissions.
  • Click Publish to confirm.

What does Share data permissions mean?

This option means anyone who can view the dashboard will also be granted the permissions needed to query the underlying data. Since you're using the samples catalog (which is available to all workspace users anyway), this is the simplest choice.

In a real company setting, you might choose Individual data permissions if the data contains sensitive information that not all viewers should access.

Your dashboard is now published. You should see a confirmation that the published version is live.

Share and verify the published dashboard

Now you'll grab the shareable link and open it to see exactly what a stakeholder would see.

  • Click Share (next to the Publish button in the upper-right corner).
  • Click Copy link to copy your published dashboard URL to your clipboard.
  • Open a new browser tab.
  • Paste the URL into the address bar and press Enter.

You should see your dashboard in a clean, read-only view. This is the published version that stakeholders interact with.

  • Confirm that both pages (Revenue Overview and Customer Analysis) are visible and you can switch between them.
  • Test the date range filter and market segment filter on the Revenue Overview page. The charts should update when you change filter values.
  • Switch to the Customer Analysis page and test the nation filter. The bar chart and scatter plot should update to reflect the selected country.

Filters not updating in the published view?

Make sure you linked the filters to your datasets when you built the dashboard. If a filter is not connected to a dataset, it won't affect the visualizations in the published version either.

Go back to the editor (the original tab), fix the filter linkage, then click Publish again to update the published version. Refresh your published tab to see the fix.

Help me troubleshoot my published dashboard filters

Why does this matter professionally?

This published URL is the exact deliverable a business analyst hands to a stakeholder. Instead of attaching a static PDF or screenshot, you share a live link where viewers can explore the data themselves using filters.

The read-only format protects your work. Stakeholders can interact with the data without accidentally breaking your queries or layout.

Secret mission

Customer Ranking Deep Dive Page

Your dashboard tells a strong revenue story, but stakeholders always ask the follow-up: "Who are the heavy hitters inside each market segment, and how much of the segment do they own?" Add a third page that answers this with advanced window functions and cross-filtering.

Clean Up Your Resources

Clean Up Your Resources

This project runs entirely on Databricks Free Edition, so there are no ongoing costs or charges. Decide whether to keep your resources available or delete them entirely.

Resources you used:

  • Databricks Free Edition workspace (free, no charges).
  • Saved SQL queries (Revenue Summary, Revenue Trend, Top Customers, Customer Segment Ranking).
  • Published "Supply Chain Analytics" dashboard.

Keep everything running

No action needed. Choose this if you plan to keep exploring Databricks, refining your queries, or extending the dashboard.

  • Your workspace, queries, and dashboard persist indefinitely for non-commercial use.
  • Databricks may delete Free Edition accounts that are inactive for a prolonged period, so log in occasionally to keep your workspace active.

Pause - I'll come back to this later

There is nothing to pause. Databricks Free Edition uses serverless compute that only runs when you execute queries. Your workspace stays available at no cost even when you are not using it.

  • Your saved queries and published dashboard remain in place until you return.
  • Log in occasionally to prevent Databricks from marking your account as inactive.

Delete - I don't want to use this again

Remove all project resources from your workspace. Follow these steps to delete the dashboard and saved queries.

  • Open your "Supply Chain Analytics" dashboard in draft mode.
  • Click the kebab menu (three dots) in the upper-right corner of the dashboard.
  • Click File actions.
  • Click Move to trash.
  • Navigate to your saved queries in the workspace sidebar.
  • Right-click each query (Revenue Summary, Revenue Trend, Top Customers, Customer Segment Ranking) and select Move to Trash.

Items in the Trash are permanently deleted after 30 days.

Want to delete your Databricks account entirely?

To fully delete your Free Edition account, file a support ticket at help.databricks.com. There is no self-serve account deletion in Free Edition.

Nice Work!

Nice Work!

You just built and published a multi-page business analytics dashboard in Databricks. This is the exact deliverable a business analyst produces on the job to present actionable insights to stakeholders.

You've learned how to:

  • Write analytical SQL queries using CTEs, multi-table JOINs across a snowflake schema, and window functions (RANK, SUM OVER) to calculate business KPIs from the TPC-H dataset.
  • Build a two-page interactive dashboard with line charts, bar charts, counters, scatter plots, and filters (date range, dropdown) that let viewers drill into the data.
  • Publish and share a stakeholder-ready dashboard with a shareable link, exactly as a business analyst delivers insights in a professional setting.
  • Secret Mission: Added a Segment Deep Dive page with advanced window functions ranking customers within each market segment, contribution percentages, and cross-filtering between visualizations.

Ready to quiz yourself?