2.8 KiB
2.8 KiB
上下文交接:字段级数据质量分析(任务2)
当前状态
字段级采样报告已生成,但用户认为还不够细致,需要继续深化。
已完成
- 字段级采样脚本:
scripts/ops/field_level_report.py(v2 性能优化版,每表 1~2 条 SQL) - 报告产出:
export/ETL-Connectors/feiqiu/REPORTS/field_level_report_20260220_233432.md(197KB,95 张表,2622 个字段) - 覆盖范围:ODS 23 表 / DWD 40 表 / DWS 32 表
- 每字段统计:类型、NULL率、数值 min/max/avg、日期范围、文本长度范围、布尔分布
- 大表(>3000行)跳过 COUNT DISTINCT(标记为
-),小表精确计算
已发现的数据质量问题
dws.dws_order_summary.order_original_amount出现 -44000 负值(疑似退款/异常订单)member_flag和recharge_order_flag全部 FALSE(12920 行),标记字段可能未正确计算- 多张
_ex表存在year -1异常日期值(上游 API 脏数据,脚本已用::text比较绕过) - DWS 层 23/32 表为空(14 个 DWS 任务已注册但尚未运行,配置表未填充)
黑盒测试报告(已完成,供参考)
- 脚本:
scripts/ops/blackbox_test_report.py - 报告:
export/ETL-Connectors/feiqiu/REPORTS/blackbox_report_20260220_181141.md - 结论:ODS 22/22 成功,DWD 20/20 事实表比率 1.0(精确匹配),DWS 9/32 有数据
ETL 最近一次运行
- 日志:
export/ETL-Connectors/feiqiu/LOGS/703747ca8db84aa785405fc75ee388a2.log - 参数:
--flow api_full --processing-mode full_window --window-start 2025-11-01 --window-end 2026-02-20 --window-split-days 10 --force-full - 结果:22 ODS SUCC,DWD SUCC,3 INDEX SUCC(WBI/NCI/ORDER_SUMMARY),1 INDEX FAIL(RELATION_INDEX:
d.is_delete→ 应为s.is_delete),14 DWS SKIP(已修复注册,下次可运行)
已知未修复 Bug
DWS_RELATION_INDEX:relation_index_task.py第 226 行d.is_delete应为s.is_delete- FlowRunner
full_window模式未生成 timing/consistency 报告(走了 else 分支)
关键文件
scripts/ops/field_level_report.py— 字段级分析脚本scripts/ops/blackbox_test_report.py— 黑盒测试脚本apps/etl/connectors/feiqiu/orchestration/task_registry.py— 任务注册表apps/etl/connectors/feiqiu/orchestration/flow_runner.py— FlowRunnerapps/etl/connectors/feiqiu/tasks/dws/— DWS 任务实现
数据库连接
- 四个 MCP 连接:
mcp_pg_etl(正式)、mcp_pg_etl_test(测试)、mcp_pg_app、mcp_pg_app_test - store_id:
2790685415443269
架构要点
- ODS PK =
(id, content_hash),快照模式 - DWD:dim 表 SCD2,fact 表
dwd_*(非fact_*),扩展属性在*_ex表 - DWS:delete-before-insert 幂等,无游标
- 输出路径从
.env的ETL_REPORT_ROOT读取