Skip to main content

Feature catalog for dbt projects, built for ML teams.

Project description

dbt-features logo

dbt-features

Feature catalog for dbt projects, built for ML teams.

tests demo python coverage license

Live demo · Docs

Catalog index showing feature groups grouped by entity, with faceted filters for type, lifecycle, freshness, and owner


Install

pip install dbt-features

For warehouse enrichment (freshness, row counts, null %), install the extra for your warehouse:

pip install 'dbt-features[duckdb]'       # local / dbt-duckdb
pip install 'dbt-features[postgres]'     # Postgres
pip install 'dbt-features[redshift]'     # Redshift
pip install 'dbt-features[snowflake]'    # Snowflake
pip install 'dbt-features[bigquery]'     # BigQuery

Requires Python 3.10+. The base install does not depend on dbt-core.

Quickstart

Try it with no setup - bundled sample data, served on a free port:

dbt-features demo

On your dbt project:

dbt parse
dbt-features build --connection my_profile --output ./catalog
dbt-features serve --output ./catalog

In CI, gate on the metadata with the linter:

dbt-features lint --strict                       # fail on errors and warnings
dbt-features lint --entity-catalog entities.yml  # also enforce entity names

For production (with type inference and correct schemas):

dbt docs generate                              # populates catalog.json with column types
dbt-features build \
    --manifest target/manifest.json \
    --catalog target/catalog.json \
    --connection my_profile --target prod \
    --output ./catalog

See Production setup for details.

What it does

  • Reads your dbt manifest and finds models marked is_feature_table: true.
  • Renders a static HTML site: feature groups, features, lineage, ML model consumers.
  • With --connection, pulls freshness, row counts, null %, and cardinality from the warehouse.

Read-only. No backend, no database.

Python API

Downstream tools can build on the parsed catalog instead of re-reading manifest.json:

from dbt_features import parse_project

catalog = parse_project("path/to/dbt/project")
for group in catalog.feature_groups:
    for feature in group.features:
        print(feature.name, feature.consumers_derived, feature.consumers_declared)

Stability: parse_project, Catalog, FeatureGroup, Feature, ExposureInfo, and LineageRef (all re-exported from dbt_features) are the public, provisional surface. They are intended to be stable but are not yet semver-locked — the resolved data model is still settling as the linter (v0.5) and column-level lineage (v0.6) land, so expect only additive changes, called out in the changelog, until it freezes at v0.6. Anything prefixed _, the renderer/enrichment internals, and the HTML layout are internal and may change at any time. Feature.used_by is deprecated in favour of consumers_derived / consumers_declared and will be removed in v0.6.

Docs

Development

git clone https://github.com/gauthierpiarrette/dbt-features
cd dbt-features
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest

License

Apache 2.0. Not affiliated with dbt Labs.

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_features-0.5.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

dbt_features-0.5.1-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

Details for the file dbt_features-0.5.1.tar.gz.

File metadata

  • Download URL: dbt_features-0.5.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbt_features-0.5.1.tar.gz
Algorithm Hash digest
SHA256 44b9e41715aeaeaa7f3edf9a5eb1122475edc33f4c1a55de26f23b06d5900586
MD5 c7a725ecaf191cae226a1f3b5f5023aa
BLAKE2b-256 b4f0c74d50a7e7b63daf4181a7c72f3b009a693ea660f768fdeff074a31c21d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_features-0.5.1.tar.gz:

Publisher: release.yml on gauthierpiarrette/dbt-features

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dbt_features-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: dbt_features-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dbt_features-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff3d5ab249a89d9cc9bfc229f026fd513ae7f2cb7a15e5cdf79e81f9ee3acdb5
MD5 36c1aa26387941b05ad0d3876ed60dee
BLAKE2b-256 f42a37ba0341d2934a0f471983464b9bcf22e32a249aa9da5599db4b2c394f6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_features-0.5.1-py3-none-any.whl:

Publisher: release.yml on gauthierpiarrette/dbt-features

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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