dq-failed-checks-by-dataset
Group failing data quality checks by dataset, retrieving the most recent failures per dataset for quick troubleshooting.
Instructions
Group failing checks by dataset across a recent window with the latest 5 failures per dataset
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sinceHours | No | ||
| topN | No |
Implementation Reference
- src/tools/quality-results.ts:103-106 (schema)Input schema for dq-failed-checks-by-dataset: accepts 'sinceHours' (1-720, default 24) and 'topN' (1-100, default 20).
export const dqFailedChecksByDatasetSchema = z.object({ sinceHours: z.coerce.number().int().min(1).max(720).default(24), topN: z.coerce.number().int().min(1).max(100).default(20), }); - src/tools/quality-results.ts:108-126 (handler)Handler function that queries DQ results table, grouping by dataset where status is 'fail' or 'error' within a recent time window, ordered by failure count descending, limited by topN.
export async function dqFailedChecksByDataset( args: z.infer<typeof dqFailedChecksByDatasetSchema>, ): Promise<unknown> { const flavor = getDqFlavor(); const cols = getDqColumns(flavor); const backend = config.dq.backend; const sql = ` SELECT ${cols.dataset} AS dataset, COUNT(*) AS failures FROM ${resultsTable()} WHERE LOWER(${cols.status}) IN ('fail', 'error') AND ${tableTimeWindowSql(flavor, backend, "HOUR")} GROUP BY ${cols.dataset} ORDER BY failures DESC LIMIT ?`; const params: unknown[] = [args.sinceHours, args.topN]; return { ...(await dqQuery(sql, params)), schema: flavor }; } - src/index.ts:36-40 (registration)Import of dqFailedChecksByDatasetSchema and dqFailedChecksByDataset from quality-results.ts.
import { dqListChecksSchema, dqListChecks, dqGetCheckHistorySchema, dqGetCheckHistory, dqFailedChecksByDatasetSchema, dqFailedChecksByDataset, } from "./tools/quality-results.js"; - src/index.ts:102-102 (registration)Registration of the tool 'dq-failed-checks-by-dataset' with its schema and handler via wrapToolHandler().
tool("dq-failed-checks-by-dataset", "Group failing checks by dataset across a recent window with the latest 5 failures per dataset", dqFailedChecksByDatasetSchema.shape, wrapToolHandler(dqFailedChecksByDataset)); - src/tools/quality-results.ts:1-4 (helper)Imports used by the handler: dqQuery, resultsTable from dq-store, getDqColumns, getDqFlavor, tableTimeWindowSql from dq-schema, and config.
import { z } from "zod"; import { dqQuery, resultsTable } from "../clients/dq-store.js"; import { getDqColumns, getDqFlavor, tableTimeWindowSql } from "../clients/dq-schema.js"; import { config } from "../config.js";