Skip to content

dbt-labs/dbt-project-evaluator

Repository files navigation

dbt_project_evaluator

This package highlights areas of a dbt project that are misaligned with dbt Labs' best practices. Specifically, this package tests for:

  1. Modeling - your dbt DAG for modeling best practices
  2. Testing - your models for testing best practices
  3. Documentation - your models for documentation best practices
  4. Structure - your dbt project for file structure and naming best practices
  5. Performance - your model materializations for performance best practices
  6. Governance - your best practices for model governance features.

In addition to tests, this package creates the model int_all_dag_relationships which holds information about your DAG in a tabular format and can be queried using SQL in your Warehouse.

Currently, the following adapters are supported:

  • BigQuery
  • Databricks/Spark
  • PostgreSQL
  • Redshift
  • Snowflake
  • DuckDB
  • Trino (tested with Iceberg connector)
  • AWS Athena (tested manually)

Using This Package

Cloning via dbt Package Hub

Check dbt Hub for the latest installation instructions, or read the docs for more information on installing packages.

Additional setup for Databricks/Spark/DuckDB/Redshift

In your dbt_project.yml, add the following config:

# dbt_project.yml

dispatch:
  - macro_namespace: dbt
    search_order: ['dbt_project_evaluator', 'dbt']

This is required because the project currently overrides a small number of dbt core macros in order to ensure the project can run across the listed adapters. The overridden macros are in the cross_db_shim directory.

Documentation

The full documentation and list of rules are available on this website