- Pipeline tests: Monitor the health of data pipelines, ensuring timely and smooth data ingestion, transformation, and loading.
- Data quality tests: Validate data accuracy, completeness, and correctness, detect anomalies and schema changes, and ensure the data meets predefined business rules.
Anomaly detection
- Volume
- Freshness
- Event freshness
- Column anomalies
- Dimensions
Schema tests
- Schema changes
- Baseline schema
- JSON schema
- Exposure schema
Other tests
- Python tests
Anomaly detection tests
Tests to detect anomalies in data quality metrics such as volume, freshness, null rates, and anomalies in specific dimensions.Volume anomalies
Monitors table row count over time to detect drops or spikes in volume.
Freshness anomalies
Monitors the latest timestamp of a table to detect data delays.
Event freshness anomalies
Monitors the gap between the latest event timestamp and its loading time, to
detect event freshness issues.
Dimension anomalies
Monitors the row count per dimension over time, and alerts on unexpected
changes in the distribution. It is best to configure it on low-cardinality
fields.
Column anomalies
Monitors a column for anomalies in metrics such as null rate, length, max and
min, and more. Read more about specific column
metrics.
All columns anomalies
Activates the column anomalies test on all the columns of the table. It’s
possible to exclude specific columns.
Schema tests
Schema changes
Fails on changes in schema: deleted or added columns, or change of data type
of a column.
Schema changes from baseline
Fails if the table schema is different in columns names or column types than a
configured baseline (can be generated with a macro).
JSON schema
Monitors a JSON type column and fails if there are JSON events that don’t
match a configured JSON schema (can be generated with a macro).
Exposure schema
Monitors changes in your models’ columns that break schema for downstream
exposures, such as BI dashboards.
Other tests
Python tests
Write your own custom tests using Python scripts.
dbt tests outcomes
In dbt, there are three possible outcomes when running models or tests: errors, failures, and warnings.- An error means dbt could not run the SQL at all (e.g., syntax mistake, missing table, broken macro). This stops execution (on
dbt build
). - A failure happens when a test runs successfully but its condition isn’t met, and if the test’s severity is set to error, it will fail the pipeline.
- A warning is the same as a failure in terms of data quality, but with severity: warn, dbt exits successfully and does not break pipelines.