Airflow Data Quality Provider part 1#69575
Open
gopidesupavan wants to merge 8 commits into
Open
Conversation
1 task
Member
Author
|
This is part 1 , the UI plugin is part of this big PR #69413, i will ship that separate. but to show how the UI looks like here is some screenshots #69413 (comment) (this is minimal what had done with help of UI not an UI expert anyone can modify or help with this 😄 ) |
d47028d to
c95b249
Compare
cbdf1fd to
9dac869
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a new
apache-airflow-providers-dataqualityprovider forDbApiHook-based data quality checks.Airflow already has SQL check operators, and many users rely on them for data quality today. This provider adds a
DQRule/RuleSetlayer for checks that need stable rule identity, persisted history, and a connection to Airflow assets. That makes quality results easier to analyze over time, lets downstream asset consumers gate on recent quality, and gives LLM-assisted workflows one schema to generate when proposing checks from table context. Execution still goes through existingcommon.sql/DbApiHookconnections.This PR is the backend/provider slice only. The UI plugin and read-only API are intentionally left for a follow-up PR.
Ships:
DQRuleandRuleSetmodels for named data quality rules.common.sql/DbApiHook.custom_sqlsupport for database-specific or more complex checks.DQCheckOperatorand the@task.dq_checkTaskFlow decorator.[dq] results_pathfor task, run, and rule-level history.asset_quality()andrequire_quality(), that attach provider-owned quality metadata to assets without changing Airflow core.https://github.com/gopidesupavan/airflow/blob/f32940bd261b94238256eaced9150dd51329ce3e/providers/dq/src/airflow/providers/dq/skills/dq-rule-authoring/SKILL.md
This first version is intentionally focused on the backend contract: deterministic rule definitions, SQL execution through existing Airflow SQL providers, persisted results, and asset-linked quality summaries.
Design decisions:
[dq] results_path.Asset.extra["airflow.dq"]; runtime summaries are attached to asset events underextra["airflow.dq.result"].DbApiHook/ SQL execution because Airflow already has broad database coverage throughcommon.sql. File and object-store data checks are left for a later iteration.Later iterations:
DQProfileOperator.Was generative AI tooling used to co-author this PR?
codex
{pr_number}.significant.rst, in airflow-core/newsfragments. You can add this file in a follow-up commit after the PR is created so you know the PR number.