Build a Data Dashboard with Superset
Deploy Apache Superset with Docker and build an interactive BI dashboard.
Introduction
30 Second Summary
Every team makes better decisions when they can see their data clearly. Dashboards turn raw numbers into visual stories that anyone can understand at a glance.
In this project, you will deploy Apache Superset locally and build an interactive analytics dashboard with multiple chart types visualizing real data.
What You'll Build
You'll use Docker to run Apache Superset on your machine, then create line, bar, and pie charts from pre-loaded example datasets and assemble them into a polished dashboard.
By the end of this project, you'll have:
- A locally-running Apache Superset instance powered by Docker Compose.
- Three different chart visualizations (line, bar, and pie) built from real data.
- Hands-on experience querying data in SQL Lab, Superset's built-in SQL editor.
- Secret Mission: Add a dynamic dashboard filter that lets viewers slice all charts by a specific dimension.
Are there any prerequisites?
None. This project includes full setup instructions for every tool you need, including Docker Desktop and Git. All you need is a Mac computer with an internet connection.
Install Docker Desktop
Apache Superset runs inside Docker containers. To launch Superset on your Mac, you need Docker Desktop installed and running.
Docker Desktop bundles everything you need: the Docker engine, Docker Compose, and a graphical interface for managing containers. In this step, you will install it and confirm it is ready to go.
In this step, get ready to:
- Install Docker Desktop for macOS.
- Verify Docker and Docker Compose are working.
- Ensure Docker Desktop has enough memory allocated for Superset.
Download and install Docker Desktop
Docker Desktop is a free application that runs Docker containers on your Mac. You will download it from Docker's website and install it like any other Mac app.
- Open your browser and go to https://docs.docker.com/desktop/setup/install/mac-install/.
- Click the download button that matches your Mac (Apple chip or Intel chip).
- Once the download finishes, double-click Docker.dmg to open the installer.
- Drag the Docker icon into the Applications folder.
- Press Cmd+Space to open Spotlight search.
- Type Docker and press Enter to launch Docker Desktop.
What happens on first launch?
Docker Desktop will show a setup window asking you to accept the Docker Subscription Service Agreement. It may also request your Mac password to complete privileged configurations like creating symlinks. Accept the defaults and enter your password if prompted.
Wait for the Docker Desktop dashboard to appear. You will see a whale icon in your macOS menu bar when Docker is running.
Not seeing the Docker whale icon?
Make sure you dragged the Docker icon into Applications before launching. If you see a message saying the app is damaged, close other terminal windows that might be using Docker, then try again.
help me troubleshoot Docker Desktop not starting on my Mac
Verify Docker is running
With Docker Desktop running, you can use terminal commands to confirm everything works. You need both docker (the container engine) and docker compose (the multi-container orchestration tool).
- Press Cmd+Space to open Spotlight search.
- Type Terminal and press Enter to open it.
- Check your Docker version by running this command:
docker --version
- Check your Docker Compose version by running this command:
docker compose version
✔️ I see version numbers for both commands
Docker is installed and running. You should see output like Docker version 27.x.x and Docker Compose version v2.x.x. The exact numbers may differ, and that is fine.
ⓧ Command not found
This means Docker Desktop did not install the CLI tools to your path. Try these fixes:
- Make sure Docker Desktop is open and running (look for the whale icon in your menu bar).
- Close your terminal and open a new one, then try the commands again.
- If it still fails, open Docker Desktop, go to Settings, select Advanced, and confirm that CLI tools installation is set to System (which installs to /usr/local/bin).
help me fix docker command not found on my Mac after installing Docker Desktop
Check memory allocation
Superset runs multiple containers at once (the app server, a PostgreSQL database, Redis, and Celery workers). Docker Desktop needs at least 4GB of memory allocated to handle this smoothly.
- In Docker Desktop, click the gear icon in the top-right corner to open Settings.
- Select Resources in the left sidebar.
- Look at the Memory limit slider. Confirm it is set to at least 4 GB.
- If it is below 4 GB, drag the slider to 4 GB or higher, then click Apply & restart.
Why 4GB of memory?
Docker Desktop defaults to about 50% of your Mac's total RAM. On most modern Macs, this is already well above 4GB, so you may not need to change anything.
Superset's Docker Compose setup runs five containers simultaneously. If Docker does not have enough memory, containers may crash or fail to start.
Don't see the Resources section?
On newer versions of Docker Desktop for Mac, the Resources section may only appear if you are not using the default resource allocation. If you do not see a memory slider, Docker is using dynamic memory allocation from your Mac and will allocate memory as needed. This is fine for our project.
help me find memory settings in Docker Desktop on Mac
Docker Desktop is installed and ready. Next up, you will use it to launch Apache Superset with a single Docker Compose command.
Launch Apache Superset with Docker Compose
Docker is installed and ready to go. Now it's time to use it to launch Apache Superset, the business intelligence platform you'll use to build your dashboard.
Superset normally requires multiple services to run: a web application, a database, a cache, and background workers. Docker Compose orchestrates all of these as a single unit so you can start everything with one command.
In this step, get ready to:
- Clone the Apache Superset repository from GitHub.
- Start all Superset containers using Docker Compose.
- Log in to the Superset web interface.
Clone the Superset repository and check out the release tag
Superset's source code lives on GitHub. You'll clone the repository and then check out a specific release tag to ensure you're running a stable version.
- Move to your Desktop by running this command:
cd ~/Desktop
- Clone the Superset repository by running this command:
git clone https://github.com/apache/superset
What does this command do?
This downloads the entire Apache Superset codebase from GitHub to your Desktop. It creates a new folder called superset containing the Docker Compose files you need to start the platform.
- Move into the cloned repository and check out the 6.1.0 release tag by running these commands:
cd superset
git checkout tags/6.1.0
Why check out a specific tag?
The main branch contains in-progress development code that may be unstable. Checking out a release tag like 6.1.0 locks the code to a tested, stable version.
- Confirm you're on the correct tag by running:
git describe --tags
- You should see 6.1.0 in the output.
Clone failing or taking too long?
- Check your internet connection. The repository is large and requires a stable connection to download.
- If you see a "permission denied" error, make sure git is installed on your machine by running git --version in your terminal.
- If git checkout tags/6.1.0 fails with "error: pathspec", double-check that the clone completed successfully before retrying.
Help me troubleshoot my git clone for Apache Superset
Start Superset with Docker Compose
Docker Compose reads a configuration file that defines all the containers Superset needs. One command pulls the images and starts everything.
- Start all Superset services by running this command:
docker compose -f docker-compose-image-tag.yml up
What does this command do?
This tells Docker Compose to use the docker-compose-image-tag.yml configuration file, which pulls pre-built Superset images from Docker Hub.
It starts four containers: the Superset web application, a PostgreSQL metadata database, a Redis cache, and a Celery background worker. It also loads example datasets automatically.
This takes a few minutes
Docker needs to download several container images on the first run. You'll see a stream of log output in your terminal. Once the output slows down and settles, Superset is ready.
Keep this terminal window open. The containers run in the foreground, so closing the terminal will stop Superset.
- Wait until the log output slows and settles. This signals that all containers are running and the example data has loaded.
Containers not starting?
- If you see a port conflict error mentioning port 8088, another application is using that port. Close the other application and try again.
- If containers exit with memory errors, open Docker Desktop and confirm you have at least 4GB of memory allocated under Settings > Resources.
- If you see an error about docker-compose-image-tag.yml, make sure you are running docker compose (with a space) and not the deprecated docker-compose (with a hyphen).
Help me troubleshoot Docker Compose for Apache Superset
Log in to the Superset web interface
Superset is now running locally and serving a web interface. You'll open it in your browser and log in with the default credentials.
- Open your web browser (Safari, Chrome, or Firefox).
- Navigate to http://localhost:8088 by pasting that URL into the address bar and pressing Enter.
- Enter admin in the Username field.
- Enter admin in the Password field.
- Click Sign In.
You should see the Superset welcome page with navigation options across the top bar.
Why admin/admin?
The Docker Compose setup creates a default admin account automatically. These credentials are for local development only. In a production environment, you would change these immediately.
Page not loading?
- If you see "connection refused" or a blank page, wait another minute and refresh. The Superset application container may still be initializing.
- Check that your terminal is still showing logs. If you accidentally closed the terminal running Docker Compose, the containers have stopped. Open a new terminal, navigate back to the superset folder on your Desktop, and run the docker compose command again.
Help me connect to Apache Superset at localhost:8088
Superset is running and you're logged in. Next, you'll explore the pre-loaded example database and register a dataset for your charts.
Explore the Example Database and Register a Dataset
Your Superset instance is live and ready to explore. Before you can build charts and dashboards, you need data to work with.
Superset connects to databases and lets you register specific tables as datasets. A dataset is a table that Superset knows about and can use for visualizations. Your Docker Compose setup already includes a pre-loaded PostgreSQL database called examples with sample data ready to query.
In this step, get ready to:
- Run a SQL query in SQL Lab to discover available tables.
- Register a dataset for building visualizations.
- Preview dataset columns to confirm data is accessible.
Explore the example database in SQL Lab
SQL Lab is Superset's built-in SQL editor. It lets you write and run queries directly against any connected database. You will use it to see which tables are available in the examples database.
- In the Superset top navigation menu, hover over SQL Lab and click SQL Editor.
- In the database dropdown at the top of the SQL editor panel, make sure examples is selected.
- In the schema dropdown next to it, select public.
- Run the following query to list all available tables by typing it into the editor and clicking Run:
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'public'
ORDER BY table_name;
What does this query do?
The information_schema.tables view is a standard PostgreSQL system table that lists every table in the database. Filtering by table_schema = 'public' shows only the user-facing data tables, not internal system tables.
The results give you a map of all the example datasets that shipped with your Superset installation.
You should see a list of table names appear in the results panel below the editor. Look for tables like birth_names, cleaned_sales_data, and wb_health_population.
Not seeing any results?
- Make sure examples is selected in the database dropdown at the top of the SQL editor. If you see a different database, switch it.
- Check that the schema dropdown is set to public. Other schemas may not contain user-facing tables.
- If the example data hasn't finished loading yet, wait a minute and refresh the page. The Docker containers sometimes take extra time to populate example data on first start.
Help me troubleshoot why my SQL Lab query returns no tables.
Register a dataset
Now that you know which tables exist, you will register one as a dataset. Registering a table tells Superset to make it available in the chart builder.
- In the top navigation menu, hover over Data and click Datasets.
- Click the + Dataset button in the top right corner.
- A modal window appears with three dropdown menus. In the Database dropdown, select examples.
- In the Schema dropdown, select public.
- In the Table dropdown, select cleaned_sales_data.
- Click Add at the bottom right of the modal to register the dataset.
What is a dataset in Superset?
A dataset is a registered table or view that Superset can use for building charts. Registering a table does not copy or move any data. It simply tells Superset where to look when you create visualizations.
You can register as many datasets as you need from the same database. Each one becomes available in the Explore chart builder.
You should see cleaned_sales_data appear in the list of datasets on the Datasets page.
Don't see the table in the dropdown?
- Confirm you selected examples as the database and public as the schema. The table list only populates after both are selected.
- If the dropdown shows no tables, the example data may still be loading. Close the modal, wait a minute, and try again.
Help me troubleshoot why tables aren't showing in the dataset registration modal.
Preview your dataset columns
Before building charts, confirm that the dataset has the columns and data you expect.
- In the Datasets list, click on the name cleaned_sales_data to open the Explore view.
- Look at the left-hand panel. You should see a list of column names from the dataset (metrics and columns).
- Click the back arrow or navigate back to the Datasets page to return to the main list.
Seeing the column list confirms your dataset is properly connected and ready for charting.
Your dataset is locked and loaded. Next up, you will use this data to create your first chart in Superset's Explore view.
Create Your First Chart in Explore View
You have a registered dataset ready to visualize. The next step is turning that raw data into something meaningful.
Superset's Explore view is a no-code chart builder. You select your dataset, pick a chart type, configure the data, and publish. In this step, you'll create a time-series line chart and save it to a brand new dashboard.
In this step, get ready to:
- Open your dataset in the Explore view.
- Create a time-series line chart with a temporal column and a metric.
- Save the chart to a new dashboard.
Open your dataset in Explore view
The Explore view loads automatically when you click a dataset name. It gives you a left-hand panel with all the dataset's columns and metrics, plus configuration tabs to build your chart.
- In Superset, click Data in the top navigation bar.
- Select Datasets from the dropdown menu.
- Click the name of the dataset you registered in the previous step.
The Explore view opens with your dataset loaded.
What is Explore view?
Explore is Superset's no-code visualization builder. The left panel has a Data tab and a Customize tab. You use the Data tab to choose your chart type, select columns, and define metrics. The Customize tab controls styling and appearance.
The chart preview renders in the main area on the right once you click Run.
Create a time-series line chart
A time-series line chart plots data points over time. You need to tell Superset which column holds your dates and what to measure.
- In the Data tab on the left panel, click the visualization type selector at the top (it may default to Table).
- Search for Line Chart in the visualization gallery that appears.
- Select Line Chart to switch your chart type.
Why a line chart?
Line charts reveal trends over time. They connect data points chronologically, making it easy to spot patterns, spikes, or dips in your data.
- In the Time section of the Data tab, locate the Time Column dropdown.
- Select a temporal (date/time) column from your dataset. Superset may auto-select one if only one temporal column exists.
- Set the Time Grain to month. This groups your data by month rather than showing every individual row.
- Click the Time Range section and change it to No filter so you visualize the entire dataset.
What is Time Grain?
Time Grain controls how Superset groups your temporal data. Setting it to month means each point on the line represents one month's aggregated value. Daily data would be too granular to see meaningful patterns at a glance.
- Scroll down to the Metrics field in the Data tab.
- Remove the default COUNT(*) metric if one is present.
- Add a new metric by selecting a numeric column and choosing an aggregate function like SUM or COUNT.
- Click Run to render the chart.
You should see a line chart appear in the main preview area, with time on the x-axis and your chosen metric on the y-axis.
What do the metric type icons mean?
Superset uses small icons next to each column to indicate its type. ABC means a string column, # means a number, and a clock icon means a temporal (date/time) column. This helps you quickly pick the right columns for your chart.
Chart shows no data?
Make sure the Time Range is set to No filter. By default, Superset only shows the last week of data. If your dataset doesn't have recent data, the chart appears empty.
Also confirm that you selected a temporal column in the Time Column dropdown. Without it, the line chart cannot plot data over time.
Why is my line chart empty even though my dataset has data?
Save the chart to a new dashboard
Now that you have a working line chart, you need to save it. Saving stores the chart's configuration (the query, chart type, and options) and lets you place it on a dashboard.
- Click the Save button in the top-right area of the Explore view.
- In the save dialog, enter a descriptive chart name (for example, Monthly Trend Line).
- Select the option to add it to a new dashboard.
- Enter a name for your new dashboard (for example, My Analytics Dashboard).
- Click Save to confirm.
Superset saves your chart and creates the new dashboard. You should see a confirmation message indicating the chart was saved successfully.
What happens when you save a chart?
Saving creates a "slice" in Superset. A slice stores the chart's query, visualization type, display options, and name. The chart itself does not store data. It queries the database fresh each time someone views it.
Adding it to a dashboard means the chart will appear as a tile on that dashboard page, alongside any other charts you add later.
Save button not responding?
Make sure you've clicked Run at least once before saving. Superset needs a successful query result before it allows you to save the chart.
Help me troubleshoot saving my chart in Superset
Your first chart is saved and living on a brand new dashboard. Next up, you'll build two more chart types to visualize different aspects of your data.
Build Additional Charts
Your line chart already tells a story about how data changes over time. But a single chart only shows one angle.
In this step, you'll create two more visualizations: a bar chart for comparing categories side by side, and a pie chart for showing how parts make up a whole. Together with your line chart, these three views give a complete picture of your data.
In this step, get ready to:
- Create a bar chart using a categorical dimension and a numeric metric.
- Create a pie chart showing proportion breakdown of a categorical column.
- Save both charts to the same dashboard as your line chart.
Create a bar chart
Bar charts are ideal for comparing values across different categories. You'll use the same dataset you registered earlier, but this time you'll group data by a categorical column instead of a time column.
- Click Datasets in the top navigation menu.
- Find your registered dataset in the list and click its name to open the Explore view.
- Click the visualization type selector at the top of the Explore view (it may currently show your last chart type).
- Select Bar Chart from the chart type gallery.
- In the Data tab, select a categorical column (such as a country, product name, or status field) as the Dimension for grouping.
- Choose a numeric metric (such as COUNT or SUM) in the Metrics field.
- Click Run to generate your bar chart.
You should see a bar chart with vertical bars, each representing a category from your chosen dimension.
What makes a good bar chart?
Bar charts work best when you want to compare discrete categories. The dimension you pick becomes the x-axis labels, and the metric becomes the bar height.
Pick a column with a manageable number of unique values (5 to 15 is ideal). Too many categories will create a crowded, unreadable chart.
- Click Save in the top right corner of the Explore view.
- Enter a descriptive name for your bar chart (e.g., Category Breakdown).
- Select Save & go to dashboard.
- In the dashboard dropdown, select the existing dashboard you created in the previous step.
- Click Save.
Why save to an existing dashboard?
When you save a chart, Apache Superset gives you the option to add it to an existing dashboard or create a new one. Since you already created a dashboard with your line chart, you want all your visualizations in the same place.
Don't see your dashboard in the dropdown?
Make sure you saved your line chart to a dashboard in the previous step. If the dashboard doesn't appear, try typing its name in the dropdown search field.
If you skipped adding the line chart to a dashboard, select Save chart and add to a new dashboard instead, and give your dashboard a name.
Help me find my dashboard in Superset
Create a pie chart
Pie charts show how individual parts contribute to a total. They're perfect for displaying percentage breakdowns of a categorical column.
- Click Datasets in the top navigation menu again.
- Click your registered dataset to open a fresh Explore view.
- Click the visualization type selector at the top.
- Select Pie Chart from the chart type gallery.
- In the Data tab, select a categorical column as the Dimension. This determines the slices of your pie.
- Choose a metric (such as COUNT) in the Metrics field. This determines the size of each slice.
- Click Run to generate your pie chart.
You should see a circular chart divided into colored slices, each representing a category from your dimension column.
Keep pie charts simple
Pie charts become hard to read with more than 6 or 7 slices. If your column has many unique values, consider using a column with fewer categories or switching to a bar chart for that data.
- Click Save in the top right corner.
- Enter a descriptive name for your pie chart (e.g., Proportion by Category).
- Select Save & go to dashboard.
- In the dashboard dropdown, select the same dashboard you used for the bar chart.
- Click Save.
Superset takes you to your dashboard. You should now see all three charts: your line chart from the previous step, plus the bar chart and pie chart you just created.
Only see one or two charts on the dashboard?
Make sure all three charts were saved to the same dashboard. Click Dashboards in the top menu and open your dashboard to check which charts appear.
If a chart is missing, navigate to Charts in the top menu, find the missing chart, click the three-dot menu, and select Add to dashboard.
Help me get all my charts on one dashboard
Why three different chart types?
Each chart type answers a different kind of question. Line charts show trends over time. Bar charts compare categories against each other. Pie charts reveal what proportion of the total each category represents.
Combining all three on one dashboard gives viewers multiple perspectives on the same data without switching between screens.
You now have three different visualizations telling a story with your data. Next up, you'll arrange these charts into a polished dashboard layout with headers and a logical flow.
Assemble and Customize Your Dashboard
You have three charts saved to your dashboard. Right now they're stacked in whatever order Superset placed them.
In this step, you'll arrange those charts into a polished layout and add a title so the dashboard tells a clear data story at a glance.
In this step, get ready to:
- Enter edit mode and resize your charts on the grid.
- Add a header component to title your dashboard.
- Save your finished dashboard layout.
Enter edit mode and rearrange your charts
Superset dashboards use a drag-and-drop grid layout. You can resize and reposition any chart once you enter edit mode.
- Open your dashboard by selecting Dashboards in the top navigation menu.
- Click on your dashboard name in the list.
- Click the Edit Dashboard button in the top right corner.
What is edit mode?
Edit mode activates the grid layout so you can drag, resize, and rearrange every component on the dashboard. Blue guide lines appear to help you snap elements into place.
- Hover over your line chart. Your cursor changes when you reach the bottom right corner of the chart.
- Click and drag the bottom right corner to resize the chart until it snaps into a position you like on the grid.
- Repeat for your bar chart and pie chart, dragging each to rearrange them side by side or in your preferred layout.
Layout ideas for three charts
Try placing the line chart across the full width at the top (it shows trends over time). Then put the bar chart and pie chart side by side below it. This creates a natural reading flow from overview to detail.
You should see all three charts arranged neatly on the grid with no overlapping.
Charts not moving?
Make sure you clicked Edit Dashboard first. Charts are locked in view mode.
If a chart snaps back to its original position, drag more slowly and watch for the blue guide lines before releasing.
Why can't I drag my charts on the dashboard?
Add a header component to title your dashboard
A title gives viewers immediate context about what the dashboard shows. Superset lets you insert text components using Markdown.
- While still in edit mode, look for the Insert components pane on the right side of the screen.
- Drag and drop a Markdown box onto the top of your dashboard. Look for the blue lines that indicate where the box will land.
- Click the Markdown box to select it.
- Type a title for your dashboard, such as # Flight Data Dashboard (the # creates a large heading in Markdown format).
- Toggle between Edit and Preview using the menu at the top of the box to see how your title looks.
- Click any other part of the dashboard to exit the Markdown editor.
Why Markdown?
Superset uses Markdown for text components, which means you can add headings, bold text, bullet lists, and even links. This is handy for adding context or descriptions alongside your charts.
You should see a bold title at the top of your dashboard above the charts.
Markdown box not appearing?
Make sure you are in edit mode. The Insert components pane only appears after clicking Edit Dashboard.
If you don't see the pane, try scrolling or looking for a collapsed panel on the right side of the screen.
Help me find the Insert components pane in Superset
Save your polished dashboard
- Review your layout one final time. Make sure the header sits at the top and your charts are arranged clearly.
- Click Save changes in the top right corner to save your dashboard.
Your dashboard exits edit mode and displays in its final polished state with the title and all three charts visible.
Lost your changes?
If you navigate away without clicking Save changes, your layout edits are lost. Always save before leaving the dashboard.
My dashboard layout changes disappeared after I left the page
Your dashboard is complete. Next up, you'll take on the Secret Mission and add an interactive filter that lets viewers slice all your charts dynamically.
Secret mission
Add an Interactive Dashboard Filter
Your dashboard looks great, but it's still a static view. In this bonus challenge, you'll add a native filter that lets anyone viewing the dashboard slice all charts by a specific dimension in real-time. This is how real BI dashboards work in production.
Clean Up Your Resources
Clean Up Your Resources
Decide whether to keep your resources running, pause them to come back later, or delete them entirely. This project runs entirely locally, so there are no ongoing costs.
Resources you used:
- Docker containers running locally (Superset app, PostgreSQL, Redis, Celery worker). These use local system resources (RAM and CPU) but do not cost money.
- The cloned superset repository on your Desktop.
Keep everything running
No action needed. Choose this if you're still actively building or exploring Superset.
- Your Docker containers stay running and your dashboards, charts, and datasets persist between sessions.
- Docker Desktop remains installed on your machine and uses background resources even when Superset is stopped.
Pause - I'll come back to this later
Shut down running containers to free up memory and CPU. Your data and dashboards are preserved.
- Open a new terminal window.
- Navigate to your Superset directory by running:
cd ~/Desktop/superset
- Stop the containers by running:
docker compose stop
When you want to pick up where you left off, navigate back to the same directory and run:
cd ~/Desktop/superset
docker compose -f docker-compose-image-tag.yml up
Your dashboards, charts, and datasets will still be there.
Delete - I don't want to use this again
Remove all project containers, volumes, and files to start completely fresh. This deletes your dashboards, charts, and all Superset data.
- Open a new terminal window.
- Navigate to your Superset directory by running:
cd ~/Desktop/superset
- Stop and remove all containers and volumes by running:
docker compose down -v
- Delete the cloned repository by running:
cd ~/Desktop
rm -rf superset
- To uninstall Docker Desktop, open the Docker Desktop dashboard, click the Troubleshoot icon (bug icon in the top-right corner), and select Uninstall.
That's a Wrap!
That's a Wrap!
Nice work! You just built your first interactive data dashboard on an enterprise-grade business intelligence platform.
You've learned how to:
- Deployed Apache Superset locally using Docker Compose, standing up a full BI platform with a single command.
- Created three different chart visualizations (line, bar, and pie) from a registered dataset using the Explore view.
- Assembled a complete interactive dashboard with a polished grid layout, header components, and multiple visualizations telling a data story.
- Added a native dashboard filter so viewers can dynamically slice all charts by a specific dimension in real-time.
Ready to quiz yourself?