Last Updated: November 21, 2025
Apache Superset
Modern open-source business intelligence
Analytics
Open Source
Installation & Setup
Docker Compose
git clone https://github.com/apache/superset && cd superset && docker-compose up
pip install
pip install apache-superset && superset db upgrade && superset init
Create Admin User
superset fab create-admin
Load Examples
superset load_examples
Start Server
superset run -h 0.0.0.0 -p 8088 --with-threads
Default Port
localhost:8088
Database Connections
Settings > Database Connections
Add new database
Supported Databases
PostgreSQL, MySQL, SQLite, BigQuery, Snowflake, Redshift, Presto, 40+ more
Connection String
postgresql://user:pass@host:5432/database
Test Connection
Click "Test Connection" before saving
SQLAlchemy URI
Use SQLAlchemy format for connections
Install Drivers
pip install psycopg2 (PostgreSQL), pymysql (MySQL), etc.
SQL Lab
SQL Lab Tab
Top navigation > SQL Lab
New Tab
Click "+" to open new query tab
Select Database
Dropdown to choose database connection
Schema Selection
Choose schema from dropdown
Table Browser
Left panel shows tables and columns
Run Query
Ctrl/Cmd + Enter or click "Run"
Run Selection
Highlight SQL, then Ctrl/Cmd + Enter
Query History
View past queries in history tab
Save Query
Name and save for reuse
Visualize Results
Click "Explore" to create chart from SQL results
Download CSV
Export query results as CSV
Autocomplete
Tab for table/column suggestions
Charts
Create Chart
Charts > + Chart
Choose Dataset
Select table or saved query
Chart Type
50+ visualizations: Line, Bar, Pie, Map, Sankey, Treemap, etc.
Time Series
Line chart with time on X-axis
Big Number
Single KPI display with trend
Table
Tabular data with sorting
Pivot Table
Multi-dimensional crosstab
World Map
Choropleth for country-level data
Deck.gl Charts
Advanced geospatial visualizations
Sankey Diagram
Flow between categories
Chart Configuration
Query Section
Left panel for data configuration
Dimensions
Categorical columns for grouping
Metrics
Aggregations: COUNT, SUM, AVG, MAX, MIN
Filters
Add WHERE conditions
Time Grain
Group by Second, Minute, Hour, Day, Week, Month, Year
Time Range
Last day, week, month, year, or custom range
Row Limit
Max rows to return (default 10,000)
Sort By
Order results by column
Run Query
Click "Create Chart" to execute and visualize
Dashboards
Create Dashboard
Dashboards > + Dashboard
Edit Mode
Click pencil icon to enter edit mode
Add Chart
Your charts & dashboards > Drag chart to canvas
Resize Charts
Drag corners to resize; grid-based layout
Add Markdown
Components > Markdown for text/headers
Add Tabs
Components > Tabs for multi-page dashboards
Dashboard Filters
Add filter that applies to all charts
Cross-Filtering
Click chart element to filter other charts
Save Dashboard
Click "Save" in top right
Publish
Save and exit edit mode for viewers
Filters
Chart Filters
Query panel > Filters > Add filter
Filter Operators
=, !=, >, <, IN, NOT IN, LIKE, IS NULL, IS NOT NULL
Simple Filter
Column = Value
Advanced Filter
SQL expression for complex conditions
Dashboard Filters
Dashboard edit mode > Add filters
Filter Scope
Choose which charts filter applies to
Time Filter
Relative or absolute date ranges
Filter Box
Legacy filter component (deprecated)
Datasets
Data > Datasets
Manage tables available for charting
Add Dataset
+ Dataset > Select database > table
Virtual Dataset
SQL query saved as reusable dataset
Edit Dataset
Modify columns, metrics, calculated fields
Calculated Columns
SQL expressions for derived fields
Certified Datasets
Mark trusted datasets with checkmark
Sync Columns
Refresh schema from source database
Metrics & Calculations
Simple Metric
COUNT(*), SUM(column), AVG(column)
Custom Metric
Dataset > Edit > Metrics > Add SQL metric
SQL Expression
SUM(CASE WHEN status='complete' THEN 1 ELSE 0 END)
Percentage Metrics
SUM(column) / COUNT(*) * 100
Certified Metrics
Mark official KPIs with certification
Sharing & Permissions
Share Dashboard
Dashboard > Share > Copy link
Embed Dashboard
Share > Embed code (iframe)
Public Access
Enable public role for no-login access
Manage Access
Settings > Security > Manage roles and permissions
Row-Level Security
Filter data based on user role
Download as PDF
Dashboard > ... > Download as PDF
Email Reports
Configure alerts/reports (Enterprise)
Performance & Caching
Query Caching
Cache query results to improve load times
Cache Timeout
Set in superset_config.py or database settings
Force Refresh
Ctrl/Cmd + Shift + R to bypass cache
Async Queries
Enable for long-running queries
SQL Lab Timeout
Configure in superset_config.py
Pro Tips:
- SQL Lab First: Develop queries in SQL Lab, then "Explore" to create charts
- Virtual Datasets: Save complex SQL as virtual datasets for reusability
- Certified Metrics: Pre-define KPIs in datasets so users use consistent calculations
- Dashboard Filters: Add global filters (date, region) for interactive dashboards
- Cross-Filtering: Enable on charts for drill-down analysis
- Deck.gl for Maps: Use Deck.gl charts for advanced geospatial visualization
- Row-Level Security: Implement RLS for multi-tenant dashboards
- Docker for Production: Use docker-compose for easier deployment and scaling