Skip to main content

Sync dbt column descriptions ↔ Apache Superset 6.x datasets

Project description

dbt-superset-sync

Sync dbt column descriptions, metrics, and labels ↔ Apache Superset 6.x datasets.

Built as a drop-in replacement for dbt-superset-lineage, with full Superset 6.x compatibility and MetricFlow support.

Features

  • Push dbt model/column descriptions, verbose_name labels, and metrics → Superset datasets
  • Pull published Superset dashboards → dbt exposures YAML
  • Create missing Superset datasets directly from dbt models (--create-missing)
  • Certify datasets with a certification badge in Superset (--certify)
  • MetricFlow support (dbt 1.6+ semantic layer) alongside the legacy calculation_method format
  • Column order from dbt YAML is preserved in Superset
  • --no-overwrite to protect manually edited fields in Superset
  • --tags, --schemas, --models filters for fine-grained control
  • init command to auto-detect all settings and write .env

Installation

pip install dbt-superset-sync

Quick start

# 1. Auto-detect everything and write .env
dbt-superset-sync init

# 2. Preview what would change
dbt-superset-sync push --dry-run

# 3. Push descriptions + create missing datasets
dbt-superset-sync push --create-missing

# 4. Discover dashboards and their dbt links
dbt-superset-sync pull --list

# 5. Export selected dashboards as dbt exposures
dbt-superset-sync pull

Configuration

All options can be set via environment variables or a .env file:

SUPERSET_URL=http://localhost:8088
SUPERSET_USERNAME=admin
SUPERSET_PASSWORD=your_password

DBT_MANIFEST=/path/to/target/manifest.json
DBT_EXPOSURES_OUTPUT=/path/to/models/marts/_exposures.yml

# Auto-detected by `init`
SUPERSET_DATABASE_ID=1
SUPERSET_SYNC_SCHEMAS=gold
SUPERSET_SYNC_MODELS=dim_post,fct_account_daily
SUPERSET_SYNC_DASHBOARDS=Sales Overview,Marketing KPIs

Copy .env.example to get started:

cp .env.example .env

Push options

Flag Description
--dry-run Preview changes without writing
--create-missing Create Superset datasets for dbt models with no matching dataset
--no-overwrite Skip fields already filled in Superset
--certify Mark datasets as certified
--certified-by Certification author (default: dbt)
--certification-details Certification details text
--continue-on-error Continue on per-model errors instead of aborting
--schemas Filter by dbt schema (e.g. gold)
--models Filter by model name (e.g. dim_post,fct_account_daily)
--tags Filter by dbt tag (e.g. marketing)
--database-id Superset database ID for dataset creation

Column labels (verbose_name)

Add a meta.verbose_name to any dbt column — it will appear as the column label in Superset:

columns:
  - name: followers_count
    description: "Point-in-time follower count snapshot."
    meta:
      verbose_name: "Followers"

Metrics

dbt metrics (both legacy calculation_method and MetricFlow type/type_params) are pushed as Superset dataset metrics.

Supported aggregations: sum, count, average, count_distinct, ratio, derived.

Compatibility

Superset dbt Status
6.x 1.4 – 1.5 (legacy metrics)
6.x 1.6+ (MetricFlow)
< 4.x any ❌ (use dbt-superset-lineage)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dbt_superset_sync-0.1.0.tar.gz (13.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dbt_superset_sync-0.1.0-py3-none-any.whl (11.5 kB view details)

Uploaded Python 3

File details

Details for the file dbt_superset_sync-0.1.0.tar.gz.

File metadata

  • Download URL: dbt_superset_sync-0.1.0.tar.gz
  • Upload date:
  • Size: 13.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for dbt_superset_sync-0.1.0.tar.gz
Algorithm Hash digest
SHA256 2b63e72e089107e8a3864d9166c8b1366d1097a409a8a8061df6d6b9ead5d84f
MD5 a0eb784c6dd47689040c518d1bdf8977
BLAKE2b-256 d32a9572321979a4eb8b2cfe834bcb4f1b1208203742f1000c78402e4e2eab8a

See more details on using hashes here.

File details

Details for the file dbt_superset_sync-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for dbt_superset_sync-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 60fbb6c7c2561394313b4a24a341020f45819a754cc841fefb29fc7f60a03569
MD5 956310b550d43a04fe4f29a992264e0e
BLAKE2b-256 6496e0612f7c6b0d660ca4e59d2ffbc2d892730bd23aaf5026c324ea482ed5c7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page