Skip to main content
Version: Preview

Superset

Experimental
Creates:
AssetsLineage

Configure in the UI

This plugin can be configured directly in the Marmot UI with a step-by-step wizard.

View Guide

The Superset plugin discovers dashboards, charts, datasets and database connections from Apache Superset through its REST API. It logs in with a username and password and reads everything the user can see.

Dashboards are linked to the charts on them, datasets to the charts that read them, and each database connection to its datasets. A dataset is also linked to the table it reads in the connected database, using the identity that database's own Marmot plugin gives the table, so a Superset dataset on public.orders in a PostgreSQL connection lands next to the PostgreSQL plugin's orders table. Virtual datasets are linked to the tables named after FROM and JOIN in their SQL.

Table lineage

Table edges are emitted for these backends: PostgreSQL, MySQL, MariaDB, BigQuery, ClickHouse, SQLite, DuckDB, Athena (catalogued as Glue), Snowflake, Redshift, SQL Server, CockroachDB, Oracle, Druid, Trino and Databricks. Other backends are catalogued without a table edge. The edge shows up in Marmot once the database has been ingested with its own plugin.

Example Configuration


host: "https://superset.example.com"
username: "marmot"
password: "superset_secure_pass"
provider: "db"
include_draft: false
tags:
- "superset"
- "bi"

Configuration

The following configuration options are available:

PropertyTypeRequiredDescription
discover_lineageboolfalseLink dashboards, charts, datasets and the tables they read
external_links[]ExternalLinkfalseExternal links to show on all assets
filterFilterfalseFilter discovered assets by name (regex)
hoststringtrueSuperset URL (e.g. https://superset.example.com)
include_chartsboolfalseDiscover charts
include_databasesboolfalseDiscover database connections
include_datasetsboolfalseDiscover datasets
include_draftboolfalseInclude unpublished (draft) dashboards
page_sizeintfalseObjects per API page
passwordstringtruePassword to log in with
providerstringfalseAuthentication provider (db or ldap)
tagsTagsConfigfalseTags to apply to discovered assets
usernamestringtrueUsername to log in with
verify_sslboolfalseVerify the server's TLS certificate

Available Metadata

The following metadata fields are available:

FieldTypeDescription
allow_dmlboolWhether SQL Lab may run DML against the database
backendstringSQLAlchemy dialect of the database (postgresql, snowflake, ...)
changed_onstringLast change time (UTC)
chart_countintNumber of charts on the dashboard
chart_typestringNormalised chart type (Table, Line, Bar, Pie, ...)
column_namestringColumn name
dashboards[]stringTitles of the dashboards the chart is on
data_typestringColumn data type
databasestringDatabase connection name, or the database a connection opens
database_idintId of the database connection
datasetstringDataset the chart reads (schema.table)
datasource_idintId of the dataset the chart reads
datasource_typestringKind of datasource (table)
descriptionstringDataset or column description
driverstringSQLAlchemy driver
expose_in_sqllabboolWhether the database is available in SQL Lab
expressionstringSQL expression of a calculated column
hoststringDatabase host
idintObject id in Superset
kindstringphysical (a table) or virtual (a SQL query)
owners[]stringNames of the owners
portstringDatabase port
publishedboolWhether the dashboard is published
schemastringSchema the dataset lives in
slugstringDashboard URL slug
sqlalchemy_uristringConnection URI with the password masked
statusstringDashboard status (published, draft)
table_namestringTable name, or the virtual dataset's name
tags[]stringTags applied in Superset
urlstringLink to the object in Superset
viz_typestringSuperset visualisation type