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, so expect only additive changes, called out in the changelog, until the surface is frozen. 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 is slated for removal.

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.6.0.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.6.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dbt_features-0.6.0.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.6.0.tar.gz
Algorithm Hash digest
SHA256 f72023b1a89f6efc856ea409920d4b3f6f4add7060b439684b4bddb0055a0dd0
MD5 278f34f388c83727c51e49d27393906d
BLAKE2b-256 20cf94f7d522bbd6ff3fb3c5dbe585cd324d1dc743e8ffdf4ff9320de3e53468

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_features-0.6.0.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.6.0-py3-none-any.whl.

File metadata

  • Download URL: dbt_features-0.6.0-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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2d048f0f51f6bf7ebdefd5ac67c1893122772e12a2a04b135663d9ed5276894
MD5 a415ee2e318adc2e799a4a64e99e2076
BLAKE2b-256 872cfa166f605b462f5b331188056c121566c341ca3ccaa76009d5806862fb65

See more details on using hashes here.

Provenance

The following attestation bundles were made for dbt_features-0.6.0-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