NANDAN-CREATOR/etl-extraction-volume-anomaly-agent

GitHub: NANDAN-CREATOR/etl-extraction-volume-anomaly-agent

一个基于 Agentic AI 的 ETL 提取量异常检测 Agent,在数据进入转换阶段前通过对比历史基准自动识别行数骤降、暴增或归零等异常,防止不完整的提取批次静默污染下游管道。

Stars: 1 | Forks: 0

# 第 15 天 — ETL 提取量异常检测 Agent **系列:** 数据工程中的 Agentic AI — ETL 篇 **领域:** 提取 **模式:** 提取后、转换前的门禁 — 在将批次传递到下游之前,将提取的行数与历史基准进行比较。 **核心防护:** 绝对不要将提取批次传递给转换阶段,如果其数量相对于历史基准是异常的 — 即使数据在结构上是有效的。 ## 问题 所有其他的提取阶段检查都关注你提取内容的*结构*。没有一个是问:**行数是否合理?** 部分提取返回的是 schema 有效、全新的数据 — 只是只有 80% 的量。重复提取返回了 2 倍的行数。这两者都会静默通过所有的结构检查。 ## Agent 的功能 1. **获取历史基准** — 根据星期几进行调整(周末的自然流量通常较低) 2. **检查已知的事件日期** — 预期会出现异常的日子 3. **评估数量异常** — NORMAL、DROP_ANOMALY、SPIKE_ANOMALY 或 ZERO_ROWS 4. **批准、阻止或上报** ## 核心防护规则 ## 场景 | # | 源表 | 提取数量 | 对比基准 | 结果 | |---|-------------|-----------|-------------|---------| | 1 | `orders_db.orders` (周一) | 19,800 | −7.2% | ✅ 已批准 | | 2 | `orders_db.orders` (周一) | 4,000 | −81.2% | 🚫 已阻止 — DROP_ANOMALY | | 3 | `erp_oracle.ar_invoices` | 18,000 | +284.9% (已知事件) | ⚠️ 已上报 | | 4 | `sftp_vendor_feed.deliveries` | 7,500 | 无基准 | ⚠️ 已上报 | ## 如何运行 ``` python agent.py ``` ## 提取日对比 | 日期 | 模式 | |-----|---------| | 11 | Schema drift | | 12 | Partition filter | | 14 | Source freshness | | **15** | **Volume anomaly** | ## 许可证 MIT
标签:ETL, JavaCC, Python, 异常检测, 数据工程, 数据质量, 无后门, 逆向工具