Apache Superset
Official · maintained by Marmotmarmotdata/superset Discover dashboards, charts, datasets and database connections from Apache Superset
The Superset plugin discovers dashboards, charts, datasets and database connections from Apache Superset through its REST API.
Dashboards contain their charts, datasets feed the charts that read them, and a dataset is linked to the table it reads in the database Superset connects to, using the identity that database's own Marmot plugin gives the table. Virtual datasets are linked to the tables named after FROM and JOIN in their SQL.
Required Permissions
Log in with a user that can read dashboards, charts, datasets and databases. The built-in Gamma role is enough for dashboards, charts and datasets; reading database connection details (GET /api/v1/database/{id}/connection) needs can_read on Database, which Alpha and Admin have.
Table lineage
A dataset is linked to a table only for backends Marmot has a naming rule for: PostgreSQL, MySQL, MariaDB, BigQuery, ClickHouse, SQLite, DuckDB, Athena (as Glue), Snowflake, Redshift, SQL Server, CockroachDB, Oracle, Druid, Trino and Databricks. The edge appears in Marmot once that database has been ingested with its own plugin.
In the UI
Point-and-click, no config file needed.
- 1 Open Runs Create pipeline
- 2 Pick Apache Superset from the plugin list.
- 3 Fill in the wizard, set a schedule, save.
With the CLI
Save a YAML config, then run marmot ingest.
name: my-superset-pipeline
runs:
- superset:
host: "<host>"
username: "<username>"
password: "***"$ marmot ingest -c ingest.yamlNot using plugins? Other ways to populate Marmot
Configuration
14 top-level fields. * marks required fields.
tags multiselect Tags to apply to discovered assets
external_links object[] External links to show on all assets
name string Display name for the link
icon string Icon identifier for the link
url string URL to the external resource
filter object Filter discovered assets by name (regex)
include multiselect Include patterns for resource names (regex)
exclude multiselect Exclude patterns for resource names (regex)
host string Superset URL (e.g. https://superset.example.com)
username string Username to log in with
password password Password to log in with
provider select Authentication provider (db or ldap)
- default
- db
verify_ssl bool Verify the server's TLS certificate
- default
- true
include_charts bool Discover charts
- default
- true
include_datasets bool Discover datasets
- default
- true
include_databases bool Discover database connections
- default
- true
include_draft bool Include unpublished (draft) dashboards
- default
- true
discover_lineage bool Link dashboards, charts, datasets and the tables they read
- default
- true
page_size int Objects per API page
- default
- 100
Assets emitted
Metadata this plugin attaches to each discovered asset.
Dashboard
SupersetDashboardFieldsThe metadata fields the plugin emits for Dashboard assets.
id intDashboard id in Superset
slug stringURL slug
url stringLink to the dashboard
published boolWhether the dashboard is published
status stringDashboard status (published, draft)
owners string[]Names of the owners
tags string[]Tags applied in Superset
changed_on stringLast change time (UTC)
chart_count intNumber of charts on the dashboard
Chart
SupersetChartFieldsThe metadata fields the plugin emits for Chart assets.
id intChart id in Superset
viz_type stringSuperset visualisation type
chart_type stringNormalised chart type (Table, Line, Bar, Pie, ...)
datasource_id intId of the dataset the chart reads
datasource_type stringKind of datasource (table)
dataset stringDataset the chart reads (schema.table)
url stringLink to the chart
owners string[]Names of the owners
dashboards string[]Titles of the dashboards the chart is on
changed_on stringLast change time (UTC)
Dataset
SupersetDatasetFieldsThe metadata fields the plugin emits for Data Model Object assets (Superset datasets).
id intDataset id in Superset
kind stringphysical (a table) or virtual (a SQL query)
database stringName of the Superset database connection
database_id intId of the database connection
backend stringSQLAlchemy dialect of the database (postgresql, snowflake, ...)
schema stringSchema the dataset lives in
table_name stringTable name, or the virtual dataset's name
url stringLink to the dataset
owners string[]Names of the owners
description stringDataset description
changed_on stringLast change time (UTC)
Column
SupersetColumnFieldsThe per-column fields embedded in a dataset asset's schema.
column_name stringColumn name
data_type stringColumn data type
description stringColumn description
expression stringSQL expression of a calculated column
Database
SupersetDatabaseFieldsThe metadata fields the plugin emits for DataSource assets (Superset database connections).
id intDatabase id in Superset
backend stringSQLAlchemy dialect (postgresql, snowflake, ...)
driver stringSQLAlchemy driver
host stringDatabase host
port stringDatabase port
database stringDatabase or catalog the connection opens
sqlalchemy_uri stringConnection URI with the password masked
expose_in_sqllab boolWhether the database is available in SQL Lab
allow_dml boolWhether SQL Lab may run DML against it