You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We (Checkout.com) have started using DataHub's contract feature more intensely over the past few months, and have implemented a custom mapping between DBT contracts and DataHub's data contract feature. We propose implementing this as a part of the native DBT Core ingestion with the following functionality:
DBT Contracts prevent breaking changes (column removals or column type changes), so they are equivalent to a schema contract in DataHub.
DBT Tests assigned with an arbitrary tag (default contract) have their assertion added to the data contract.
Optionally DBT constraints that are enforced in the target data platform (e.g not_null in Snowflake) could be added into the contract as well as always passing.
Example DBT Yaml:
- name: dbt_contract_test_viewdescription: This view is used to test the data contract checks for the dbt models.config:
contract:
enforced: true # this adds a schema contract to the DataHub data contract.columns:
- name: urndata_type: textdescription: The urn of the object.data_tests:
- uniquetags: ['contract'] # this is included in the data contract
- not_null # this is not
We're happy to contribute this if there's appetite, happy to hide it behind a feature flag in the DBT config as well.
The text was updated successfully, but these errors were encountered:
matthew-coudert-cko
changed the title
Ingest DBT Contract Information as a DataHub Data Contract
Feature: Ingest DBT Contract Information as a DataHub Data Contract
Nov 22, 2024
We (Checkout.com) have started using DataHub's contract feature more intensely over the past few months, and have implemented a custom mapping between DBT contracts and DataHub's data contract feature. We propose implementing this as a part of the native DBT Core ingestion with the following functionality:
contract
) have their assertion added to the data contract.not_null
in Snowflake) could be added into the contract as well as always passing.Example DBT Yaml:
We're happy to contribute this if there's appetite, happy to hide it behind a feature flag in the DBT config as well.
The text was updated successfully, but these errors were encountered: