Files
Neo-ZQYY/scripts/ops/export_v8_report.py

124 lines
4.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# -*- coding: utf-8 -*-
"""导出 v8 执行报告。"""
from pathlib import Path
from dotenv import load_dotenv
load_dotenv(Path(__file__).resolve().parents[2] / ".env")
from _env_paths import get_output_path
out = get_output_path("SYSTEM_LOG_ROOT")
report = """# ETL 第八次执行报告 (v8)
- execution_id: `f943bac6-23be-45c5-8b8c-a864e85a1916`
- 时间: 2026-02-21 21:33:37 ~ 21:35:01 (1分24秒)
- 整体状态: success, exit_code=0
## 本次修复验证
| BUG | 修复内容 | 验证结果 |
|-----|---------|---------|
| BUG 8 | `finance_base_task.py` + `finance_recharge_task.py`: pay_money→pay_amount, gift_money→point_amount | ✅ DWS_FINANCE_DAILY + DWS_FINANCE_RECHARGE 均完成 |
| BUG 9 | `dwd_load_task.py`: 添加 `_pick_snapshot_order_column` 方法 | ✅ 所有 dim 表 SCD2 装载成功 |
| BUG 10 | `dwd_load_task.py`: FACT_MAPPINGS 驼峰字段名→小写 | ✅ dwd_goods_stock_summary(716条) + dwd_goods_stock_movement(14306条) 装载成功 |
| BUG 11 | `flow_runner.py`: sum() 类型安全处理 | ✅ 不再出现 TypeError |
## DWD_LOAD_FROM_ODS 详情
### 维度表 (SCD2) — 全部成功
| 表 | processed | inserted | updated |
|----|-----------|----------|---------|
| dim_site | 1 | 0 | 1 |
| dim_site_ex | 1 | 0 | 1 |
| dim_table | 74 | 0 | 74 |
| dim_table_ex | 74 | 0 | 74 |
| dim_assistant | 69 | 0 | 69 |
| dim_member | 557 | 0 | 557 |
| dim_member_ex | 557 | 0 | 557 |
| dim_member_card_account | 946 | 0 | 946 |
| dim_tenant_goods | 174 | 1 | 173 |
| dim_tenant_goods_ex | 174 | 1 | 173 |
| dim_store_goods | 173 | 1 | 172 |
| dim_store_goods_ex | 173 | 1 | 172 |
| dim_goods_category | 26 | 0 | 26 |
| dim_groupbuy_package | 34 | 0 | 34 |
| dim_groupbuy_package_ex | 34 | 0 | 34 |
### 事实表 (INCREMENT) — 全部成功
| 表 | processed | inserted | updated |
|----|-----------|----------|---------|
| dwd_settlement_head | 10366 | 0 | 10366 |
| dwd_settlement_head_ex | 10366 | 0 | 10366 |
| dwd_table_fee_log | 9103 | 0 | 9103 |
| dwd_table_fee_log_ex | 9103 | 0 | 9103 |
| dwd_table_fee_adjust | 1616 | 0 | 1616 |
| dwd_table_fee_adjust_ex | 1616 | 0 | 1616 |
| dwd_assistant_service_log | 2619 | 0 | 2619 |
| dwd_assistant_service_log_ex | 2619 | 0 | 2619 |
| dwd_assistant_trash_event | 78 | 0 | 78 |
| dwd_assistant_trash_event_ex | 78 | 0 | 78 |
| dwd_member_balance_change | 2185 | 0 | 2185 |
| dwd_member_balance_change_ex | 2185 | 0 | 2185 |
| dwd_groupbuy_redemption | 7267 | 0 | 7267 |
| dwd_groupbuy_redemption_ex | 7267 | 0 | 7267 |
| dwd_platform_coupon_redemption | 18311 | 0 | 18311 |
| dwd_platform_coupon_redemption_ex | 18311 | 0 | 18311 |
| dwd_recharge_order | 191 | 0 | 191 |
| dwd_recharge_order_ex | 191 | 0 | 191 |
| dwd_payment | 10625 | 0 | 10625 |
| dwd_refund | 29 | 0 | 29 |
| dwd_refund_ex | 29 | 0 | 29 |
| dwd_goods_stock_summary | 716 | 716 | 0 |
| dwd_goods_stock_movement | 14306 | 14306 | 0 |
### DWD 装载错误 (2个数据质量问题非代码 BUG)
| 表 | 错误 |
|----|------|
| dim_assistant_ex | year -1 is out of range |
| dim_member_card_account_ex | year -1 is out of range |
## DWS 任务状态
| 任务 | 状态 | 备注 |
|------|------|------|
| ODS_FETCH | ✅ 完成 | |
| DWD_LOAD_FROM_ODS | ✅ 完成 | 39表成功2表数据质量错误 |
| DWS_ASSISTANT_DAILY | ✅ 完成 | |
| DWS_ASSISTANT_MONTHLY | ✅ 完成 | 删除9行插入9行 |
| DWS_ASSISTANT_CUSTOMER | ✅ 完成 | 删除285行插入285行 |
| DWS_ASSISTANT_SALARY | ✅ 完成 | |
| DWS_ASSISTANT_FINANCE | ✅ 完成 | |
| DWS_MEMBER_CONSUMPTION | ✅ 完成 | 删除198行插入198行 |
| DWS_MEMBER_VISIT | ✅ 完成 | |
| DWS_GOODS_STOCK_DAILY | ✅ 完成 | |
| DWS_GOODS_STOCK_WEEKLY | ✅ 完成 | |
| DWS_GOODS_STOCK_MONTHLY | ✅ 完成 | |
| DWS_FINANCE_DAILY | ✅ 完成 | |
| DWS_FINANCE_RECHARGE | ✅ 完成 | |
| DWS_FINANCE_INCOME_STRUCTURE | ❌ 级联失败 | InFailedSqlTransaction |
| DWS_FINANCE_DISCOUNT_DETAIL | ❌ 级联失败 | InFailedSqlTransaction |
| DWS_WINBACK_INDEX | ❌ 级联失败 | InFailedSqlTransaction |
| DWS_NEWCONV_INDEX | ❌ 级联失败 | InFailedSqlTransaction |
| DWS_RELATION_INDEX | ❌ 级联失败 | InFailedSqlTransaction |
## 总结
- 14/19 任务成功完成
- 5/19 任务因 InFailedSqlTransaction 级联失败
- 级联失败根因: `dim_assistant_ex` 和 `dim_member_card_account_ex` 中存在非法日期值 (year=-1),导致事务进入失败状态
- 这是数据质量问题,不是代码 BUG — 需要在 DWD 装载时对日期字段做容错处理
## 与 v6上次最好成绩对比
| 指标 | v6 | v8 |
|------|----|----|
| 耗时 | 29m26s | 1m24s |
| 成功任务 | 11/19 | 14/19 |
| 失败任务 | 8/19 | 5/19 |
| DWD 装载 | 部分 dim 失败 | 39/41 表成功 |
| 新增成功 | — | DWS_FINANCE_DAILY, DWS_FINANCE_RECHARGE, DWS_GOODS_STOCK_* |
"""
(out / "2026-02-21__etl_run_result_v8.md").write_text(report, encoding="utf-8")
print(f"报告已导出: {out / '2026-02-21__etl_run_result_v8.md'}")