The Elemenary dbt package serves as a collector of logs and metadata from your dbt project and offers a set of data anomaly detection and schema tests. To gain the most value from the dbt package, we recommend using it with the Elementary Cloud Platform or with Elementary open-source CLI tool.

What brings you here?

  • An organizational data quality initiative (e.g., platform refactoring, governance projects, or AI/ML adoption): The Elementary Cloud Platform offers pipeline monitoring, incident management, lineage tracking, dashboards, health scores, and alerts, empowering data engineers, analytics engineers, and data analysts to resolve issues efficiently and deliver trusted data products. Learn more about the Elementary Cloud Platform or book a demo.
  • Individual-use observability: If you’ll be the primary user, try the open-source CLI tool to send Slack alerts, and self-host the Elementary report.

The repository and source code of the Elementary dbt package can be found here.

Package Features

The Elementary dbt package is designed to power data observability use cases for dbt pipelines. This package will upload logs and metadata generated from your runs as dbt artifacts into tables in your datawarehouse. Additionally, it offers a wide range of tests, including anomalies in volume, freshness, columns and different dimensions of your data.

The impact of the package on dbt run is minimal, and most of the processing happens as part of the data tests that are executed on dbt test.

After you deploy the dbt package, you can use Elementary tests, and your dbt artifacts will be uploaded automatically with on-run-end hooks:

Although you can use the package only, we recommend using it with Elementary Cloud or OSS.

Read about the key features and product offerings:

Elementary schema

The Elementary package creates various models to store information about collected dbt artifacts and test results.

To avoid mixing with your existing models, we recommend configuring a dedicated schema for the Elementary models using the dbt custom schema option. Here is an example configuration, that creates a schema with the suffix '_elementary' for elementary models:

dbt_project.yml
models:
  elementary:
    +schema: elementary

Package full refresh

Elementary incremental models are not full-refreshed by default. This is because these models contain information such as historical runs and test results, which typically you’d want to maintain even when full refreshing the models of your main dbt project.

However, if you wish to change this behavior and include Elementary models as a part of the full refresh, you can set the following var:

vars:
  elementary_full_refresh: true