Skip to main content

aidp-data-quality

Run data-quality rule checks on AIDP tables — not-null, uniqueness, allowed ranges/sets, referential integrity, and freshness. Use when the user wants to validate data, check for nulls/duplicates/orphans, assert a column's domain, or gate a pipeline on quality. Expresses each rule as bounded Spark SQL and reports pass/fail with offending counts.

Zur Installation springen

Quellinformationen

Repository
oracle-samples/oracle-aidp-samples
Letzte Quellaktivität
24. Juni 2026 um 07:21
Erkannte Sprache von SKILL.md
Englisch
Sterne
47
Forks
32

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
aidp-data-quality
description
Run data-quality rule checks on AIDP tables — not-null, uniqueness, allowed ranges/sets, referential integrity, and freshness. Use when the user wants to validate data, check for nulls/duplicates/orphans, assert a column's domain, or gate a pipeline on quality. Expresses each rule as bounded Spark SQL and reports pass/fail with offending counts.
# `aidp-data-quality` — rule checks via Spark SQL Validate AIDP tables against explicit data-quality rules, each compiled to bounded Spark SQL and executed with the bundled helper — no MCP and no `ai-data-engineer-agent` repo required. ## When to use - "Check <table> for nulls/duplicates", "validate <column>", "are there orphan rows", "is the data fresh", or gating a pipeline on quality. ## Rule types (each → a counting SQL that should return 0 violations) | Rule | Check (violations) | |---|---| | not-null | `COUNT(*) WHERE col IS NULL` | | unique | `COUNT(*) - COUNT(DISTINCT key)` (or `GROUP BY key HAVING COUNT(*)>1`) | | range / set | `COUNT(*) WHERE col NOT BETWEEN lo AND hi` / `col NOT IN (...)` | | referential | `COUNT(*) child LEFT JOIN parent ... WHERE parent.key IS NULL` | | freshness | `MAX(ts)` vs SLA (e.g. `datediff(current_date, MAX(ts)) <= N`) | ## Workflow 1. Resolve table(s)/columns; use join keys from `.aidp/catalog.md` for referential checks (don't guess). Pull rule definitions from `.aidp/semantic.md` value dictionaries where available. 2. Ensure the cluster is RUNNING (`aidp-cluster-ops` / `oci raw-request`), then for each rule run the violation-count SQL with the bundled helper (PASS if 0, else FAIL): ```bash python "$HOME/.aidp/aidp_sql.py" --region <region> --datalake <DATALAKE_OCID> --workspace <ws> \ --cluster <cluster-key> \ --code "spark.sql('''SELECT COUNT(*) AS v FROM cat.sch.t WHERE col IS NULL''').show()" ``` It mints a UPST from the api_key DEFAULT profile, auto-creates a scratch notebook, and returns JSON with `status` / `outputs` / `spark_job_ids`. No `AIDP_SESSION` required (`--session-profile` optional). 3. On a non-zero count, FAIL and pull a few example offending rows with a separate bounded `LIMIT` query. 4. Report a summary table: rule · target · result · violation count. 5. Offer to (a) persist the rule set for re-runs (see below), and (b) wire checks into a Job (`aidp-pipelines`) as a gating task. ## Persisting a re-runnable rule set Register validated rules in **`.aidp/dq-rules.md`** so they can be re-run later (the quality analogue of `.aidp/verified-queries.md`). One entry per rule records the target table/column, rule-type (the five types above), the **violation-SQL** (counts violations → PASS when 0), and `last-result` / `last-checked`. To re-run, execute each entry's stored violation-SQL via `$HOME/.aidp/aidp_sql.py`, set the result to `PASS (0)` or `FAIL (<count>)`, and record the cluster + date — never mark PASS without a `status: ok` run returning 0. Format and re-run rules: [references/dq-rules.md]($HOME/.aidp/references/dq-rules.md). ## Reliability rules - Run real SQL via `$HOME/.aidp/aidp_sql.py`; never assert a rule passed without a `status: ok` result. - Keep checks bounded; sample example offenders rather than dumping full result sets. - If a cell returns `status: error`, read the error, fix the SQL grounded in the catalog, and retry. ## References - [references/dq-rules.md]($HOME/.aidp/references/dq-rules.md) (`.aidp/dq-rules.md` rule-set format + re-run) - [$HOME/.aidp/aidp_sql.py]($HOME/.aidp/aidp_sql.py) · [references/no-mcp-rest-map.md]($HOME/.aidp/references/no-mcp-rest-map.md) · [references/oci-raw-request.md]($HOME/.aidp/references/oci-raw-request.md) · [references/semantic-model.md]($HOME/.aidp/references/semantic-model.md)
Auf GitHub ansehen