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, 异常检测, 数据工程, 数据质量, 无后门, 逆向工具