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
I am sure others would be quite interested in this! As long as we can place behind reasonably well named feature flags with the appropriate early stage / incubating labeling, I think things should be fine!
To clarify, for dbt contracts you are minting net new schema assertions in DataHub is that right?
And for other DBT tests you are simply linking them to the contract for the assets.
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: