Great Expectations

Declarative data quality. Runs after every dbt build. Failed expectations block downstream tasks.

Tier

Cold. Runs as a post-dbt task inside the scheduled DAG. Memory during a run: ~500 MB.

Role

Great Expectations runs assertions against the marts schema after dbt finishes. If any expectation fails, downstream tasks (Elementary reporting, dashboard refresh) are blocked and the DAG marks the run as failed.

Writing expectations

Expectations live in ./great_expectations/expectations/ as YAML files, one per mart. Example:

expectations:
  - expect_column_values_to_not_be_null:
      column: customer_id
  - expect_column_values_to_be_between:
      column: total_amount
      min_value: 0
      max_value: 10000000