SuperAPI AI 工具集

data-integrity-auditor

数据与分析

查看项目

更新于 10-15 18:37

技能介绍

用途

Data Integrity Auditor 用于自动检测和修复数据库中的数据完整性问题。它适合在关系型数据库(示例基于 Prisma)中排查孤立记录、外键关系断裂、约束违规和必填字段缺失等数据质量问题,并给出修复与预防方案。

主要能力

该技能覆盖以下完整性检查类型:

  1. 孤立记录检测:通过 LEFT JOIN 查找没有匹配父记录的记录,例如没有对应用户的订单(orders 中 user_id 无效)、没有对应订单的订单项(order_items 中 order_id 无效)。
  2. 外键关系检查:检查 Orders → Users、Order Items → Orders、Products → Categories 等引用关系是否断裂。
  3. 约束违规检测:包括重复邮箱(email 唯一性)、负库存(stock < 0)、负价格(price < 0)、非法订单状态(不在 pending、paid、shipped、delivered、cancelled 之内)。
  4. 必填字段缺失检查:例如用户缺少 email、订单缺少 total。

技能还提供:

  • 综合审计脚本:定义 IntegrityIssue 接口(severity、category、message、count、query、fix),按 critical、warning、info 分级输出报告,并在存在 critical 问题时以非零状态码退出。
  • 自动修复脚本:删除孤立订单与订单项、保留最新记录删除重复邮箱、将负价格取绝对值、将负库存置为 0。
  • 预防性迁移:添加外键约束(ON DELETE CASCADE)、CHECK 约束(price >= 0、stock >= 0)、唯一索引(LOWER(email))、NOT NULL 约束。
  • 自动化测试:验证外键约束、CHECK 约束、唯一约束是否生效。
  • 监控指标:统计孤立订单、重复邮箱、非法价格、缺失数据等数据质量指标。

使用方式

资料中给出的使用方式为编写并运行 TypeScript 脚本(基于 Prisma 客户端),例如 scripts/check-foreign-keys.ts、scripts/audit-data-integrity.ts、scripts/fix-integrity-issues.ts,以及测试文件 tests/data-integrity.test.ts。审计脚本通过 prisma.$queryRaw 执行 SQL 检查,修复脚本通过 prisma.$executeRaw 执行更新或删除。资料未提供安装命令、依赖版本或具体运行命令。

适用场景

  • 使用 Prisma 与关系型数据库、需要定期检查数据一致性的项目。
  • 在数据迁移、批量导入或历史遗留数据清理后验证完整性。
  • 为数据库补充缺失的外键、CHECK、UNIQUE、NOT NULL 约束。
  • 建立数据质量监控与自动化测试。

限制与注意事项

资料中列出的最佳实践包括:在数据库层面添加约束以预防问题、每周进行完整性检查、使用安全可回滚的自动修复、持续监控数据质量指标、测试约束是否生效、使用软删除便于恢复、修复前务必备份。资料未说明该技能支持的数据库类型范围、是否支持除 Prisma 之外的其他 ORM、具体安装方式、收费模式或平台限制,这些信息暂未提供。