cloudparts

Apache Superset

An open-source BI web app: a no-code chart builder, dashboards and a SQL editor over any database with a SQLAlchemy dialect, with a thin semantic layer, caching, row-level security and embedding.

Apache · Top-level project
Type
Open source
Foundation
The Apache Software Foundation, top-level project, joined May 2017
License
Apache 2.0
Facts checked
23 October 2026

What it is

Superset is a Python (Flask) web application with a React front end. It keeps no copy of your data: you connect a database by its SQLAlchemy URI, and Superset can query any SQL-speaking engine that has a Python DB-API driver and a SQLAlchemy dialect, from PostgreSQL and MySQL to Snowflake, BigQuery, Trino, ClickHouse, Druid and DuckDB. A dataset is a table you expose for querying, plus a thin semantic layer you define in the dataset editor: metrics, which are aggregate SQL expressions such as SUM(recovered) / SUM(confirmed), and calculated columns. Explore is the no-code chart builder over a dataset, saved charts go on dashboards, and SQL Lab is a web SQL IDE for queries the builder can’t express.

A production install has more parts than the web app. A metadata database (PostgreSQL or MySQL recommended) holds charts, dashboards, users and logs. A cache, usually Redis, stores chart results, dashboard filter state and the results of asynchronous SQL Lab queries, and doubles as the message broker for Celery workers, which run async queries, alerts and reports and dashboard thumbnails on a schedule kept by Celery beat. Flask AppBuilder handles sign-in and permissions, with built-in roles (Admin, Alpha, Gamma, sql_lab and Public) and row-level security filters that add a SQL clause to queries for chosen users, groups or roles. Dashboards can be embedded in another app through the @superset-ui/embedded-sdk package and a guest token issued by that app’s backend. The current release is 6.1.0 (May 2026), with 7.0 in release candidates, and the docs describe a built-in MCP server that lets AI assistants list dashboards, query datasets and create charts.

Why teams pick it

  • Apache 2.0 and self-hosted, with no per-viewer licence: you pay for the servers it runs on, or for a hosted service such as Preset
  • Reaches almost any SQL engine through SQLAlchemy, including OLAP stores such as Druid, ClickHouse, Pinot and Doris that keep live dashboards fast
  • One tool for two audiences: business users build charts and dashboards without SQL, analysts use SQL Lab, on the same datasets and permissions
  • Made to be embedded and automated: a REST API, an embedded SDK whose guest tokens can carry row-level security rules, and an MCP server for AI clients

Watch out for

  • The semantic layer is thin by design: per-dataset metrics, calculated columns and descriptions, so metrics that other tools must share need a separate semantic layer
  • Several services to run: a PyPI install creates only the web app, and alerts, reports, async queries and thumbnails need a cache, Celery workers and beat that you set up yourself
  • Permissions need care: Admins are fully trusted, Alpha users can reach every data source, and embedding needs the EMBEDDED_SUPERSET feature flag plus a backend that issues guest tokens
  • Dashboards are only as fast as the database behind them: the chart data cache is optional, and without it every view queries the source

How it fits with other technologies

superset_config.py: cache chart results in Redis and allow embedded dashboards · python

# Chart data: the results of the SQL each chart runs, kept for a day
DATA_CACHE_CONFIG = {
    "CACHE_TYPE": "RedisCache",
    "CACHE_DEFAULT_TIMEOUT": 86400,  # 60 seconds * 60 minutes * 24 hours
    "CACHE_KEY_PREFIX": "superset_results",
    "CACHE_REDIS_URL": "redis://localhost:6379/1",
}

# Dashboard filter state (required; falls back to the metadata database)
FILTER_STATE_CACHE_CONFIG = {
    "CACHE_TYPE": "RedisCache",
    "CACHE_DEFAULT_TIMEOUT": 86400,
    "CACHE_KEY_PREFIX": "superset_filter_cache",
    "CACHE_REDIS_URL": "redis://localhost:6379/0",
}

# Turn on the embedded SDK and the guest token endpoint
FEATURE_FLAGS = {"EMBEDDED_SUPERSET": True}

See it in a real stack

No architecture uses Apache Superset yet. Drop it into the playground and wire it up yourself.Open playground →
Where it came from2015–2026

In 2015, during a three-day hackathon at Airbnb, Maxime Beauchemin built a fast visualisation front end for the Druid database, inspired by Facebook’s Scuba. The code started in July 2015 as Panoramix, was briefly renamed dashed in March 2016, and was released as Caravel at the end of that month. Airbnb’s announcement described a data exploration and dashboarding platform with a thin semantic layer, SQLAlchemy for most SQL databases, Druid support for real-time analytics, and caching with cascading timeouts to protect databases from heavy load.

In November 2016 the project was renamed Superset, and in May 2017 it entered the Apache Incubator; the proposal said about a dozen companies used it in production and more than a hundred people had contributed. Beauchemin then spent about a year at Lyft, where the team added geospatial and real-time features built on deck.gl, and in October 2019 he founded Preset to offer hosted Superset and to keep building the project. On 21 January 2021 Superset became a top-level Apache project together with its 1.0 release, with users including Airbnb, American Express, Dropbox, Lyft, Netflix and Twitter.

Releases have continued since: 6.0 in December 2025, 6.1 in May 2026 and 7.0 release candidates in October 2026. The docs now describe a built-in MCP server for AI assistants, and the documentation for the next release adds extensions that connect Superset to external semantic layers.

Why it’s built this way

SQLAlchemy instead of hand-written connectors
Airbnb wanted Superset to work as well in other companies’ environments as in its own, so the query layer was written with SQLAlchemy, which translates queries into most SQL dialects. Any database with a SQLAlchemy dialect became a possible source.
A thin semantic layer
Datasets only needed enough metadata to be usable without SQL: descriptions and friendly names, calculated fields and metrics written as SQL expressions, and settings for how fields appear in the UI.
Fast query loops, backed by Druid and caching
Beauchemin wrote that 10 to 30 seconds of delay is enough to break someone’s train of thought, so Superset was paired with Druid’s fast queries and cached results with timeouts per report, table and database.
Pluggable authentication and roles
To serve a whole company, it needed LDAP, OpenID, OAuth and remote-user sign-in and permissions per feature and per dataset, which it took from Flask AppBuilder.

Timeline

  1. 2015

    Maxime Beauchemin starts Panoramix at an Airbnb hackathon as a front end for Druid

  2. 2016

    Open-sourced as Caravel in March; renamed Superset in November

  3. 2017

    Enters the Apache Incubator in May

  4. 2019

    Beauchemin founds Preset to offer hosted Superset

  5. 2021

    Becomes a top-level Apache project and ships 1.0 in January

  6. 2025

    Superset 6.0 released in December

  7. 2026

    6.1 released in May; 7.0 release candidates in October

Sources10 · facts checked 23 October 2026

Improve this page on GitHub