feat: P1-P3 全栈集成 — 数据库基础 + DWS 扩展 + 小程序鉴权 + 工程化体系

## P1 数据库基础
- zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu
- etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表
- 清理 assistant_abolish 残留数据

## P2 ETL/DWS 扩展
- 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution)
- 新增 assistant_order_contribution_task 任务及 RLS 视图
- member_consumption 增加充值字段、assistant_daily 增加处罚字段
- 更新 ODS/DWD/DWS 任务文档及业务规则文档
- 更新 consistency_checker、flow_runner、task_registry 等核心模块

## P3 小程序鉴权系统
- 新增 xcx_auth 路由/schema(微信登录 + JWT)
- 新增 wechat/role/matching/application 服务层
- zqyy_app 鉴权表迁移 + 角色权限种子数据
- auth/dependencies.py 支持小程序 JWT 鉴权

## 文档与审计
- 新增 DOCUMENTATION-MAP 文档导航
- 新增 7 份 BD_Manual 数据库变更文档
- 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth)
- 新增全栈集成审计记录、部署检查清单更新
- 新增 BACKLOG 路线图、FDW→Core 迁移计划

## Kiro 工程化
- 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务)
- 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan)
- 新增 6 个 Hook(合规检查/会话日志/提交审计等)
- 新增 doc-map steering 文件

## 运维与测试
- 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告
- 新增属性测试:test_dws_contribution / test_auth_system
- 清理过期 export 报告文件
- 更新 .gitignore 排除规则
This commit is contained in:
Neo
2026-02-26 08:03:53 +08:00
parent fafc95e64c
commit b25308c3f4
224 changed files with 17660 additions and 32198 deletions

View File

@@ -1,183 +0,0 @@
# 黑盒集成测试报告
生成时间: 2026-02-20 18:12:25
ETL 日志: `703747ca8db84aa785405fc75ee388a2.log`
测试窗口: 2025-11-01 ~ 2026-02-20 (full_window 模式)
## 1. ETL 执行总览
| 指标 | 值 |
|------|-----|
| 成功任务 | 25 |
| 失败任务 | 1 |
| 跳过任务 | 14 |
| 总计 | 40 |
### 失败任务详情
- **DWS_RELATION_INDEX**: 错误: 字段 d.is_delete 不存在
### 跳过任务(未注册)
- DWS_ASSISTANT_DAILY
- DWS_ASSISTANT_MONTHLY
- DWS_ASSISTANT_CUSTOMER
- DWS_ASSISTANT_SALARY
- DWS_ASSISTANT_FINANCE
- DWS_MEMBER_CONSUMPTION
- DWS_MEMBER_VISIT
- DWS_FINANCE_DAILY
- DWS_FINANCE_RECHARGE
- DWS_FINANCE_INCOME_STRUCTURE
- DWS_FINANCE_DISCOUNT_DETAIL
- DWS_GOODS_STOCK_DAILY
- DWS_GOODS_STOCK_WEEKLY
- DWS_GOODS_STOCK_MONTHLY
## 2. 输入侧APIvs 输出侧ODS对比
| 任务 | ODS 表 | API 抓取数 | ODS 总行数 | ODS 去重ID | ETL 状态 |
|------|--------|-----------|-----------|-----------|---------|
| ODS_ASSISTANT_ABOLISH | assistant_cancellation_records | 78 | 178 | 100 | SUCC |
| ODS_ASSISTANT_ACCOUNT | assistant_accounts_master | 828 | 295 | 69 | SUCC |
| ODS_ASSISTANT_LEDGER | assistant_service_records | 2307 | 12561 | 5297 | SUCC |
| ODS_GOODS_CATEGORY | stock_goods_category_tree | 108 | 18 | 9 | SUCC |
| ODS_GROUP_BUY_REDEMPTION | group_buy_redemption_records | 88140 | 27284 | 12768 | SUCC |
| ODS_GROUP_PACKAGE | group_buy_packages | 216 | 70 | 34 | SUCC |
| ODS_INVENTORY_CHANGE | goods_stock_movements | 14556 | -1 | -1 | SUCC |
| ODS_INVENTORY_STOCK | goods_stock_summary | 2249 | -1 | -1 | SUCC |
| ODS_MEMBER | member_profiles | 6684 | 1771 | 557 | SUCC |
| ODS_MEMBER_BALANCE | member_balance_changes | 26556 | 9684 | 5081 | SUCC |
| ODS_MEMBER_CARD | member_stored_value_cards | 11352 | 2973 | 946 | SUCC |
| ODS_PAYMENT | payment_transactions | 129024 | 36006 | 24922 | SUCC |
| ODS_PLATFORM_COUPON | platform_coupon_redemption_records | 219732 | 36678 | 18311 | SUCC |
| ODS_RECHARGE_SETTLE | recharge_settlements | 194 | 3527 | 485 | SUCC |
| ODS_REFUND | refund_transactions | 360 | 83 | 51 | SUCC |
| ODS_SETTLEMENT_RECORDS | settlement_records | 10491 | 66073 | 26435 | SUCC |
| ODS_STORE_GOODS | store_goods_master | 2076 | 1789 | 173 | SUCC |
| ODS_STORE_GOODS_SALES | store_goods_sales_records | 0 | 17563 | 17563 | SUCC |
| ODS_TABLES | site_tables_master | 888 | 1074 | 74 | SUCC |
| ODS_TABLE_FEE_DISCOUNT | table_fee_discount_records | 19644 | 4818 | 3124 | SUCC |
| ODS_TABLE_USE | table_fee_transactions | 110484 | 38585 | 20132 | SUCC |
| ODS_TENANT_GOODS | tenant_goods_master | 2088 | 353 | 174 | SUCC |
> 说明: ODS 采用快照模式 (id, content_hash) 为 PKcontent_hash 变化产生新行,
> 因此 ODS 总行数 ≥ ODS 去重 ID 数。API 抓取数 = 本次 ETL 从 API 获取的记录数。
## 3. ODS → DWD 行数对比
| DWD 表 | ODS 表 | 类型 | ODS 总行 | ODS 去重ID | DWD 行数 | 比率 |
|--------|--------|------|---------|-----------|---------|------|
| dwd.dim_assistant | ods.assistant_accounts_master | 维度(SCD2) | 295 | 69 | 1266 | 18.35 |
| dwd.dim_goods_category | ods.stock_goods_category_tree | 维度(SCD2) | 18 | 9 | 125 | 13.89 |
| dwd.dim_groupbuy_package | ods.group_buy_packages | 维度(SCD2) | 70 | 34 | 373 | 10.97 |
| dwd.dim_member | ods.member_profiles | 维度(SCD2) | 1771 | 557 | 10801 | 19.39 |
| dwd.dim_member_card_account | ods.member_stored_value_cards | 维度(SCD2) | 2973 | 946 | 18370 | 19.42 |
| dwd.dim_store_goods | ods.store_goods_master | 维度(SCD2) | 1789 | 173 | 5444 | 31.47 |
| dwd.dim_table | ods.site_tables_master | 维度(SCD2) | 1074 | 74 | 2881 | 38.93 |
| dwd.dim_tenant_goods | ods.tenant_goods_master | 维度(SCD2) | 353 | 174 | 2018 | 11.6 |
| dwd.dwd_assistant_service_log | ods.assistant_service_records | 事实 | 12561 | 5297 | 5297 | 1.0 |
| dwd.dwd_assistant_trash_event | ods.assistant_cancellation_records | 事实 | 178 | 100 | 100 | 1.0 |
| dwd.dwd_groupbuy_redemption | ods.group_buy_redemption_records | 事实 | 27284 | 12768 | 12768 | 1.0 |
| dwd.dwd_member_balance_change | ods.member_balance_changes | 事实 | 9684 | 5081 | 5081 | 1.0 |
| dwd.dwd_payment | ods.payment_transactions | 事实 | 36006 | 24922 | 24922 | 1.0 |
| dwd.dwd_platform_coupon_redemption | ods.platform_coupon_redemption_records | 事实 | 36678 | 18311 | 18311 | 1.0 |
| dwd.dwd_recharge_order | ods.recharge_settlements | 事实 | 3527 | 485 | 485 | 1.0 |
| dwd.dwd_refund | ods.refund_transactions | 事实 | 83 | 51 | 51 | 1.0 |
| dwd.dwd_settlement_head | ods.settlement_records | 事实 | 66073 | 26435 | 26435 | 1.0 |
| dwd.dwd_store_goods_sale | ods.store_goods_sales_records | 事实 | 17563 | 17563 | 17563 | 1.0 |
| dwd.dwd_table_fee_adjust | ods.table_fee_discount_records | 事实 | 4818 | 3124 | 3124 | 1.0 |
| dwd.dwd_table_fee_log | ods.table_fee_transactions | 事实 | 38585 | 20132 | 20132 | 1.0 |
> 说明: 维度表(SCD2)的 DWD 行数可能 > ODS 去重 ID历史版本保留
> 事实表的 DWD 行数应 ≈ ODS 去重 ID 数。比率 = DWD行数 / ODS去重ID。
## 4. DWD 数据质量NULL 率抽样)
| DWD 表 | 总行数 | NULL 列情况 |
|--------|--------|------------|
| dwd.dim_assistant | 1266 | 无 NULL |
| dwd.dim_assistant_ex | 1251 | avatar=0.9%, introduce=100.0% |
| dwd.dim_goods_category | 125 | alias_name=86.4%, parent_category_id=79.2% |
| dwd.dim_groupbuy_package | 373 | package_template_id=90.9% |
| dwd.dim_groupbuy_package_ex | 373 | usable_range=100.0% |
| dwd.dim_member | 10801 | 无 NULL |
| dwd.dim_member_card_account | 18370 | 无 NULL |
| dwd.dim_member_card_account_ex | 18172 | tenant_name=100.0%, tenantavatar=100.0% |
| dwd.dim_member_ex | 10770 | register_site_name=94.8% |
| dwd.dim_site | 55 | org_id=98.2%, shop_name=98.2%, site_label=98.2% |
| dwd.dim_site_ex | 55 | avatar=98.2%, address=98.2%, longitude=98.2%, latitude=98.2% |
| dwd.dim_store_goods | 5444 | 无 NULL |
| dwd.dim_store_goods_ex | 5402 | site_name=86.5%, goods_barcode=100.0%, goods_cover_url=86.5% |
| dwd.dim_table | 2881 | site_table_area_name=91.4% |
| dwd.dim_table_ex | 3035 | table_cloth_use_time=100.0% |
| dwd.dim_tenant_goods | 2018 | category_name=91.3% |
| dwd.dim_tenant_goods_ex | 2016 | remark_name=100.0%, goods_bar_code=100.0% |
| dwd.dwd_assistant_service_log | 5297 | 无 NULL |
| dwd.dwd_assistant_service_log_ex | 5281 | table_name=9.8%, ledger_group_name=100.0% |
| dwd.dwd_assistant_trash_event | 100 | 无 NULL |
| dwd.dwd_assistant_trash_event_ex | 100 | 无 NULL |
| dwd.dwd_groupbuy_redemption | 12768 | 无 NULL |
| dwd.dwd_groupbuy_redemption_ex | 12768 | 无 NULL |
| dwd.dwd_member_balance_change | 5081 | 无 NULL |
| dwd.dwd_member_balance_change_ex | 5081 | pay_site_name=0.5% |
| dwd.dwd_payment | 24922 | 无 NULL |
| dwd.dwd_platform_coupon_redemption | 18311 | 无 NULL |
| dwd.dwd_platform_coupon_redemption_ex | 18311 | coupon_cover=100.0%, coupon_remark=94.1% |
| dwd.dwd_recharge_order | 485 | 无 NULL |
| dwd.dwd_recharge_order_ex | 485 | 无 NULL |
| dwd.dwd_refund | 51 | 无 NULL |
| dwd.dwd_refund_ex | 51 | 无 NULL |
| dwd.dwd_settlement_head | 26435 | 无 NULL |
| dwd.dwd_settlement_head_ex | 26435 | revoke_order_name=100.0% |
| dwd.dwd_store_goods_sale | 17563 | 无 NULL |
| dwd.dwd_store_goods_sale_ex | 17563 | goods_remark=27.0% |
| dwd.dwd_table_fee_adjust | 3124 | 无 NULL |
| dwd.dwd_table_fee_adjust_ex | 3124 | ledger_name=100.0% |
| dwd.dwd_table_fee_log | 20132 | 无 NULL |
| dwd.dwd_table_fee_log_ex | 20132 | salesman_name=100.0% |
## 5. DWS 汇总层检查
| DWS 表 | 行数 | 最新日期 | 状态 |
|--------|------|---------|------|
| dws.cfg_area_category | 0 | N/A | ⚠️ 空表 |
| dws.cfg_assistant_level_price | 0 | N/A | ⚠️ 空表 |
| dws.cfg_bonus_rules | 0 | N/A | ⚠️ 空表 |
| dws.cfg_index_parameters | 127 | N/A | ✅ |
| dws.cfg_performance_tier | 0 | N/A | ⚠️ 空表 |
| dws.cfg_skill_type | 0 | N/A | ⚠️ 空表 |
| dws.dws_assistant_customer_stats | 0 | N/A | ⚠️ 空表 |
| dws.dws_assistant_daily_detail | 5276 | 2026-02-09 | ✅ |
| dws.dws_assistant_finance_analysis | 0 | N/A | ⚠️ 空表 |
| dws.dws_assistant_monthly_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_assistant_recharge_commission | 0 | N/A | ⚠️ 空表 |
| dws.dws_assistant_salary_calc | 0 | N/A | ⚠️ 空表 |
| dws.dws_finance_daily_summary | 210 | 2026-02-10 | ✅ |
| dws.dws_finance_discount_detail | 0 | N/A | ⚠️ 空表 |
| dws.dws_finance_expense_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_finance_income_structure | 0 | N/A | ⚠️ 空表 |
| dws.dws_finance_recharge_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_goods_stock_daily_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_goods_stock_monthly_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_goods_stock_weekly_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_index_percentile_history | 86 | N/A | ✅ |
| dws.dws_member_assistant_intimacy | 219 | N/A | ✅ |
| dws.dws_member_assistant_relation_index | 0 | N/A | ⚠️ 空表 |
| dws.dws_member_consumption_summary | 0 | N/A | ⚠️ 空表 |
| dws.dws_member_newconv_index | 14 | N/A | ✅ |
| dws.dws_member_recall_index | 0 | N/A | ⚠️ 空表 |
| dws.dws_member_visit_detail | 4398 | N/A | ✅ |
| dws.dws_member_winback_index | 62 | N/A | ✅ |
| dws.dws_ml_manual_order_alloc | 0 | N/A | ⚠️ 空表 |
| dws.dws_ml_manual_order_source | 0 | N/A | ⚠️ 空表 |
| dws.dws_order_summary | 12920 | N/A | ✅ |
| dws.dws_platform_settlement | 0 | N/A | ⚠️ 空表 |
## 6. 结论
- ODS 层: 22/22 个任务成功入库
- DWD 层: 20/20 个表有数据
- DWS 层: 9/32 个表有数据
- 失败任务: 1 个(详见第 1 节)
- 跳过任务: 14 个(未注册的 DWS 任务)

View File

@@ -1,785 +0,0 @@
# ETL 全链路数据一致性检查报告
生成时间: 2026-02-21 11:57:51 CST
ETL 日志: `703747ca8db84aa785405fc75ee388a2.log`
## 1. ETL 执行概览
| 指标 | 值 |
|------|-----|
| 成功任务 | 25 |
| 失败任务 | 1 |
| 跳过任务 | 14 |
| 总计 | 40 |
### 失败任务
- **DWS_RELATION_INDEX**: 错误: 字段 d.is_delete 不存在
## 2. API↔ODS 数据一致性
### 2.1 汇总
| ODS 表 | API 记录数 | ODS 行数 | ODS 去重ID | 字段匹配 | API独有 | ODS独有 | 值差异 | 状态 |
|--------|-----------|---------|-----------|---------|--------|--------|-------|------|
| `assistant_cancellation_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `assistant_accounts_master` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `assistant_service_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `stock_goods_category_tree` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `group_buy_redemption_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `group_buy_packages` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `goods_stock_movements` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `goods_stock_summary` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `member_profiles` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `member_balance_changes` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `member_stored_value_cards` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `payment_transactions` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `platform_coupon_redemption_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `recharge_settlements` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `refund_transactions` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `settlement_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `store_goods_master` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `store_goods_sales_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `site_tables_master` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `table_fee_discount_records` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `table_fee_transactions` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
| `tenant_goods_master` | 0 | 0 | 0 | 0/0 | 0 | 0 | 0 | ⚠️ 无 API JSON |
## 3. ODS↔DWD 数据一致性
### 3.1 汇总
| DWD 表 | ODS 表 | 类型 | ODS 行 | ODS 去重ID | DWD 行 | 共同列 | DWD独有 | 值差异 | 状态 |
|--------|--------|------|-------|-----------|-------|-------|--------|-------|------|
| `dwd.dim_assistant` | `ods.assistant_accounts_master` | 维度(SCD2) | 295 | 69 | 1266 | 14 | 5 | 0 | ❌ 存在差异 |
| `dwd.dim_goods_category` | `ods.stock_goods_category_tree` | 维度(SCD2) | 18 | 9 | 125 | 7 | 9 | 0 | ❌ 存在差异 |
| `dwd.dim_groupbuy_package` | `ods.group_buy_packages` | 维度(SCD2) | 70 | 34 | 373 | 14 | 8 | 0 | ❌ 存在差异 |
| `dwd.dim_member` | `ods.member_profiles` | 维度(SCD2) | 1771 | 557 | 10801 | 10 | 6 | 0 | ❌ 存在差异 |
| `dwd.dim_member_card_account` | `ods.member_stored_value_cards` | 维度(SCD2) | 2973 | 946 | 18370 | 18 | 5 | 0 | ❌ 存在差异 |
| `dwd.dim_store_goods` | `ods.store_goods_master` | 维度(SCD2) | 1789 | 173 | 5444 | 13 | 13 | 0 | ❌ 存在差异 |
| `dwd.dim_table` | `ods.site_tables_master` | 维度(SCD2) | 1074 | 74 | 2881 | 5 | 7 | 0 | ❌ 存在差异 |
| `dwd.dim_tenant_goods` | `ods.tenant_goods_master` | 维度(SCD2) | 353 | 174 | 2018 | 13 | 6 | 0 | ❌ 存在差异 |
| `dwd.dwd_assistant_service_log` | `ods.assistant_service_records` | 事实 | 12561 | 5297 | 5297 | 29 | 4 | 0 | ❌ 存在差异 |
| `dwd.dwd_assistant_trash_event` | `ods.assistant_cancellation_records` | 事实 | 178 | 100 | 100 | 1 | 10 | 0 | ❌ 存在差异 |
| `dwd.dwd_groupbuy_redemption` | `ods.group_buy_redemption_records` | 事实 | 27284 | 12768 | 12768 | 24 | 1 | 0 | ❌ 存在差异 |
| `dwd.dwd_member_balance_change` | `ods.member_balance_changes` | 事实 | 9684 | 5081 | 5081 | 13 | 9 | 0 | ❌ 存在差异 |
| `dwd.dwd_payment` | `ods.payment_transactions` | 事实 | 36006 | 24922 | 24922 | 10 | 2 | 0 | ❌ 存在差异 |
| `dwd.dwd_platform_coupon_redemption` | `ods.platform_coupon_redemption_records` | 事实 | 36678 | 18311 | 18311 | 19 | 1 | 0 | ❌ 存在差异 |
| `dwd.dwd_recharge_order` | `ods.recharge_settlements` | 事实 | 3527 | 485 | 485 | 0 | 24 | 0 | ✅ |
| `dwd.dwd_refund` | `ods.refund_transactions` | 事实 | 83 | 51 | 51 | 11 | 1 | 0 | ❌ 存在差异 |
| `dwd.dwd_settlement_head` | `ods.settlement_records` | 事实 | 66073 | 26435 | 26435 | 0 | 37 | 0 | ✅ |
| `dwd.dwd_store_goods_sale` | `ods.store_goods_sales_records` | 事实 | 17563 | 17563 | 17563 | 23 | 1 | 0 | ❌ 存在差异 |
| `dwd.dwd_table_fee_adjust` | `ods.table_fee_discount_records` | 事实 | 4818 | 3124 | 3124 | 11 | 5 | 0 | ❌ 存在差异 |
| `dwd.dwd_table_fee_log` | `ods.table_fee_transactions` | 事实 | 38585 | 20132 | 20132 | 28 | 1 | 0 | ❌ 存在差异 |
### 3.2 dwd.dim_assistant 详情
**DWD 独有列** (5 个): `assistant_id`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`
**ODS 独有列** (48 个): `allow_cx`, `assistant_grade`, `avatar`, `birth_date`, `charge_way`, `create_time`, `criticism_status`, `cx_unit_price`, `ding_talk_synced`, `end_time`, `entry_sign_status`, `entry_type`, `gender`, `get_grade_times`, `group_id`
<details><summary>📊 dwd.dim_assistant 字段级统计19 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `assistant_id` | int8 | 0.0% | 69 | min=2793361915547781, max=3067857612671685, avg=2880809252491745.23 |
| `user_id` | int8 | 0.0% | 68 | min=2324804675291845, max=3067857612163781, avg=2844417384867970.47 |
| `assistant_no` | text | 0.0% | 42 | len=1~3 |
| `real_name` | text | 0.0% | 68 | len=2~3 |
| `nickname` | text | 0.0% | 68 | len=2~3 |
| `mobile` | text | 0.0% | 68 | len=11~11 |
| `tenant_id` | int8 | 0.0% | 1 | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | 1 | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `team_id` | int8 | 0.0% | 2 | min=2792011585884037, max=2959085810992645, avg=2850474367655848.49 |
| `team_name` | text | 0.0% | 2 | len=2~2 |
| `level` | int4 | 0.0% | 5 | min=8, max=40, avg=18.07 |
| `entry_time` | timestamptz | 0.0% | 36 | 2025-07-16 08:00:00+08 ~ 2026-01-26 08:00:00+08 |
| `resign_time` | timestamptz | 0.0% | 63 | 2025-08-01 08:00:00+08 ~ 2226-01-26 15:26:11+08 |
| `leave_status` | int4 | 0.0% | 2 | min=0, max=1, avg=0.38 |
| `assistant_status` | int4 | 0.0% | 2 | min=1, max=2, avg=1.15 |
| `scd2_start_time` | timestamptz | 0.0% | 1151 | 2025-12-14 21:20:28.731914+08 ~ 2026-02-15 18:21:52.288328+08 |
| `scd2_end_time` | timestamptz | 5.5% | 1144 | 2026-01-30 23:12:53.787306+08 ~ 2026-02-15 18:21:52.288328+08 |
| `scd2_is_current` | int4 | 0.0% | 2 | min=0, max=1, avg=0.05 |
| `scd2_version` | int4 | 0.0% | 9 | min=1, max=9, avg=1.15 |
</details>
### 3.2 dwd.dim_goods_category 详情
**DWD 独有列** (9 个): `category_id`, `category_level`, `is_leaf`, `parent_category_id`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`, `sort_order`
**ODS 独有列** (4 个): `categoryboxes`, `id`, `pid`, `sort`
<details><summary>📊 dwd.dim_goods_category 字段级统计16 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `category_id` | int8 | 0.0% | 26 | min=2790683528350533, max=2793236829620037, avg=2791668679275962.07 |
| `tenant_id` | int8 | 0.0% | 1 | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `category_name` | varchar | 0.0% | 18 | len=1~3 |
| `alias_name` | varchar | 86.4% | 1 | len=0~0 |
| `parent_category_id` | int8 | 79.2% | 10 | min=0, max=2793220945250117, avg=1825071020936357.35 |
| `business_name` | varchar | 0.0% | 9 | len=2~2 |
| `tenant_goods_business_id` | int8 | 0.0% | 9 | min=2790683528317765, max=2793220268902213, avg=2791480552891899.95 |
| `category_level` | int4 | 79.2% | 2 | min=1, max=2, avg=1.65 |
| `is_leaf` | int4 | 79.2% | 2 | min=0, max=1, avg=0.65 |
| `open_salesman` | int4 | 0.0% | 1 | min=2, max=2, avg=2.00 |
| `sort_order` | int4 | 79.2% | 2 | min=0, max=1, avg=0.12 |
| `is_warehousing` | int4 | 0.0% | 1 | min=1, max=1, avg=1.00 |
| `scd2_start_time` | timestamptz | 0.0% | 92 | 2025-12-14 21:20:28.731914+08 ~ 2026-02-09 20:08:48.295523+08 |
| `scd2_end_time` | timestamptz | 7.2% | 92 | 2026-02-05 09:18:19.11776+08 ~ 2026-02-09 20:08:48.295523+08 |
| `scd2_is_current` | int4 | 0.0% | 2 | min=0, max=1, avg=0.21 |
| `scd2_version` | int4 | 0.0% | 1 | min=1, max=1, avg=1.00 |
</details>
### 3.2 dwd.dim_groupbuy_package 详情
**DWD 独有列** (8 个): `coupon_face_value`, `duration_seconds`, `groupbuy_package_id`, `package_template_id`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`
**ODS 独有列** (24 个): `add_end_clock`, `add_start_clock`, `area_tag_type`, `coupon_money`, `creator_name`, `date_info`, `date_type`, `duration`, `effective_status`, `end_clock`, `group_type`, `id`, `max_selectable_categories`, `package_id`, `site_name`
<details><summary>📊 dwd.dim_groupbuy_package 字段级统计22 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `groupbuy_package_id` | int8 | 0.0% | 34 | min=2798713926290437, max=3048468851870085, avg=2917819297255812.31 |
| `tenant_id` | int8 | 0.0% | 1 | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | 1 | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `package_name` | varchar | 0.0% | 18 | len=5~11 |
| `package_template_id` | int8 | 90.9% | 15 | min=1126976372, max=1814983609169019, avg=426806077589937.59 |
| `selling_price` | numeric | 0.0% | 1 | min=0.00, max=0.00, avg=0.00 |
| `coupon_face_value` | numeric | 90.9% | 1 | min=0.00, max=0.00, avg=0.00 |
| `duration_seconds` | int4 | 90.9% | 3 | min=3600, max=14400, avg=6670.59 |
| `start_time` | timestamptz | 0.0% | 10 | 2025-07-20 00:00:00+08 ~ 2026-01-12 00:00:00+08 |
| `end_time` | timestamptz | 0.0% | 11 | 2025-12-30 00:00:00+08 ~ 2027-09-01 00:00:00+08 |
| `table_area_name` | varchar | 47.2% | 6 | len=2~5 |
| `is_enabled` | int4 | 0.0% | 2 | min=1, max=2, avg=1.29 |
| `is_delete` | int4 | 0.0% | 2 | min=0, max=1, avg=0.04 |
| `create_time` | timestamptz | 0.0% | 34 | 2025-07-20 12:19:04+08 ~ 2026-01-12 22:42:55+08 |
| `tenant_table_area_id_list` | varchar | 47.2% | 6 | len=16~16 |
| `card_type_ids` | varchar | 8.0% | 1 | len=1~1 |
| `sort` | int4 | 79.6% | 1 | min=100, max=100, avg=100.00 |
| `is_first_limit` | bool | 0.0% | 1 | T=373, F=0 |
| `scd2_start_time` | timestamptz | 0.0% | 335 | 2025-12-14 21:20:28.731914+08 ~ 2026-02-09 20:24:07.27917+08 |
| `scd2_end_time` | timestamptz | 9.1% | 332 | 2026-02-05 09:18:19.746022+08 ~ 2026-02-09 20:24:07.27917+08 |
| `scd2_is_current` | int4 | 0.0% | 2 | min=0, max=1, avg=0.09 |
| `scd2_version` | int4 | 0.0% | 1 | min=1, max=1, avg=1.00 |
</details>
### 3.2 dwd.dim_member 详情
**DWD 独有列** (6 个): `member_id`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`, `update_time`
**ODS 独有列** (10 个): `growth_value`, `id`, `person_tenant_org_id`, `person_tenant_org_name`, `point`, `referrer_member_id`, `register_source`, `site_name`, `status`, `user_status`
<details><summary>📊 dwd.dim_member 字段级统计16 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `member_id` | int8 | 0.0% | - | min=2791994266390405, max=3085176958944837, avg=2823078351641537.46 |
| `system_member_id` | int8 | 0.0% | - | min=1722160959426757, max=3085176956307013, avg=2800106896966723.16 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `register_site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `mobile` | text | 0.0% | - | len=11~14 |
| `nickname` | text | 0.0% | - | len=1~12 |
| `member_card_grade_code` | int8 | 0.0% | - | min=2790683528022853, max=2790683528022857, avg=2790683528022854.03 |
| `member_card_grade_name` | text | 0.0% | - | len=2~5 |
| `create_time` | timestamptz | 0.0% | - | 2025-07-15 18:23:28+08 ~ 2026-02-07 21:04:20+08 |
| `update_time` | timestamptz | 100.0% | - | — |
| `pay_money_sum` | numeric | 25.4% | - | min=-363409.48, max=0.00, avg=-5534.32 |
| `recharge_money_sum` | numeric | 25.4% | - | min=0.00, max=388256.03, avg=6339.79 |
| `scd2_start_time` | timestamptz | 0.0% | - | 2025-12-14 21:20:28.731914+08 ~ 2026-02-09 20:30:11.747293+08 |
| `scd2_end_time` | timestamptz | 5.2% | - | 2026-02-02 02:32:43.782109+08 ~ 2026-02-09 20:30:11.747293+08 |
| `scd2_is_current` | int4 | 0.0% | - | min=0, max=1, avg=0.05 |
| `scd2_version` | int4 | 0.0% | - | min=1, max=6, avg=1.01 |
</details>
### 3.2 dwd.dim_member_card_account 详情
**DWD 独有列** (5 个): `member_card_id`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`
**ODS 独有列** (57 个): `able_cross_site`, `able_share_member_discount`, `assistant_deduct_radio`, `assistant_discount`, `assistant_discount_sub_switch`, `assistant_reward_deduct_radio`, `assistant_reward_discount`, `assistant_reward_discount_sub_switch`, `assistant_service_deduct_radio`, `assistant_service_discount`, `assistantcarddeduct`, `assistantrewardcarddeduct`, `assistantservicecarddeduct`, `bind_password`, `card_no`
<details><summary>📊 dwd.dim_member_card_account 字段级统计23 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `member_card_id` | int8 | 0.0% | - | min=2791994266619781, max=3085176959321669, avg=2827361158604426.61 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `register_site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `tenant_member_id` | int8 | 0.0% | - | min=0, max=3085176958944837, avg=2527617817121777.45 |
| `system_member_id` | int8 | 0.0% | - | min=0, max=3085176956307013, avg=2502398934969501.99 |
| `card_type_id` | int8 | 0.0% | - | min=2791987095408517, max=2794699703437125, avg=2792866036110503.31 |
| `member_card_grade_code` | int8 | 0.0% | - | min=2790683528022853, max=2790683528022858, avg=2790683528022854.40 |
| `member_card_grade_code_name` | text | 0.0% | - | len=2~5 |
| `member_card_type_name` | text | 0.0% | - | len=2~5 |
| `member_name` | text | 10.5% | - | len=1~5 |
| `member_mobile` | text | 10.5% | - | len=11~11 |
| `balance` | numeric | 0.0% | - | min=0.00, max=23202.00, avg=426.47 |
| `start_time` | timestamptz | 0.0% | - | 2025-07-15 18:23:28+08 ~ 2026-02-07 21:04:20+08 |
| `end_time` | timestamptz | 0.0% | - | 2025-08-15 16:40:12+08 ~ 2225-01-01 00:00:00+08 |
| `last_consume_time` | timestamptz | 0.0% | - | 1970-01-01 00:00:00+08 ~ 2026-02-10 01:38:22+08 |
| `status` | int4 | 0.0% | - | min=1, max=4, avg=1.03 |
| `is_delete` | int4 | 0.0% | - | min=0, max=0, avg=0.00 |
| `principal_balance` | numeric | 42.8% | - | min=0.00, max=22706.00, avg=443.11 |
| `member_grade` | int8 | 0.0% | - | min=0, max=2790683528022856, avg=65172183924837.70 |
| `scd2_start_time` | timestamptz | 0.0% | - | 2025-12-14 21:20:28.731914+08 ~ 2026-02-09 20:30:12.759904+08 |
| `scd2_end_time` | timestamptz | 5.1% | - | 2026-01-31 16:03:53.792254+08 ~ 2026-02-09 20:30:12.759904+08 |
| `scd2_is_current` | int4 | 0.0% | - | min=0, max=1, avg=0.05 |
| `scd2_version` | int4 | 0.0% | - | min=1, max=10, avg=1.02 |
</details>
### 3.2 dwd.dim_store_goods 详情
**DWD 独有列** (13 个): `avg_monthly_sales`, `batch_stock_qty`, `category_level1_name`, `category_level2_name`, `created_at`, `sale_qty`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`, `site_goods_id`, `total_sales_qty`, `updated_at`
**ODS 独有列** (34 个): `able_discount`, `able_site_transfer`, `audit_status`, `average_monthly_sales`, `batch_stock_quantity`, `cost_price`, `cost_price_type`, `create_time`, `custom_label_type`, `days_available`, `forbid_sell_status`, `freeze`, `goods_bar_code`, `goods_cover`, `id`
<details><summary>📊 dwd.dim_store_goods 字段级统计26 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `site_goods_id` | int8 | 0.0% | - | min=2791953867886725, max=3073782716778501, avg=2812688507458426.00 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `tenant_goods_id` | int8 | 0.0% | - | min=2791925230096261, max=3073781669250565, avg=2811945814355194.04 |
| `goods_name` | text | 0.0% | - | len=2~10 |
| `goods_category_id` | int8 | 0.0% | - | min=2790683528350533, max=2793220945250117, avg=2791610153802231.17 |
| `goods_second_category_id` | int8 | 0.0% | - | min=2790683528350534, max=2793236829620037, avg=2791668366183841.36 |
| `category_level1_name` | text | 85.9% | - | len=2~2 |
| `category_level2_name` | text | 85.9% | - | len=1~3 |
| `batch_stock_qty` | int4 | 85.9% | - | min=0, max=976, avg=66.24 |
| `sale_qty` | int4 | 85.9% | - | min=0, max=6466, avg=619.75 |
| `total_sales_qty` | int4 | 85.9% | - | min=0, max=6466, avg=619.75 |
| `sale_price` | numeric | 0.0% | - | min=2.00, max=11360.00, avg=109.03 |
| `created_at` | timestamptz | 85.9% | - | 2025-07-15 17:42:23+08 ~ 2026-01-30 19:53:30+08 |
| `updated_at` | timestamptz | 85.9% | - | 2025-07-16 11:56:22+08 ~ 2026-02-05 04:03:17+08 |
| `avg_monthly_sales` | numeric | 85.9% | - | min=0.0000, max=42.0300, avg=3.28 |
| `goods_state` | int4 | 0.0% | - | min=1, max=2, avg=1.03 |
| `enable_status` | int4 | 0.0% | - | min=1, max=1, avg=1.00 |
| `send_state` | int4 | 0.0% | - | min=1, max=1, avg=1.00 |
| `is_delete` | int4 | 0.0% | - | min=0, max=0, avg=0.00 |
| `commodity_code` | text | 0.0% | - | len=5~9 |
| `not_sale` | int4 | 0.0% | - | min=2, max=2, avg=2.00 |
| `scd2_start_time` | timestamptz | 0.0% | - | 2025-12-14 21:20:28.731914+08 ~ 2026-02-09 20:30:15.735121+08 |
| `scd2_end_time` | timestamptz | 3.2% | - | 2026-01-31 16:03:53.792254+08 ~ 2026-02-09 20:30:15.735121+08 |
| `scd2_is_current` | int4 | 0.0% | - | min=0, max=1, avg=0.03 |
| `scd2_version` | int4 | 0.0% | - | min=1, max=24, avg=1.49 |
</details>
### 3.2 dwd.dim_table 详情
**DWD 独有列** (7 个): `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`, `site_table_area_name`, `table_id`, `tenant_table_area_id`
**ODS 独有列** (21 个): `appletQrCodeUrl`, `areaname`, `audit_status`, `charge_free`, `create_time`, `delay_lights_time`, `id`, `is_online_reservation`, `is_rest_area`, `light_status`, `only_allow_groupon`, `order_delay_time`, `self_table`, `show_status`, `sitename`
<details><summary>📊 dwd.dim_table 字段级统计12 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `table_id` | int8 | 0.0% | 74 | min=2791964216463493, max=3004536233839429, avg=2809642206324618.93 |
| `site_id` | int8 | 0.0% | 1 | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `table_name` | text | 0.0% | 74 | len=2~6 |
| `site_table_area_id` | int8 | 0.0% | 16 | min=2791963794329671, max=3004534627601285, avg=2803989189538572.36 |
| `site_table_area_name` | text | 91.4% | 16 | len=2~5 |
| `tenant_table_area_id` | int8 | 91.4% | 16 | min=2791963794329671, max=3004534627601285, avg=2800489289216219.78 |
| `table_price` | numeric | 0.0% | 1 | min=0.00, max=0.00, avg=0.00 |
| `order_id` | int8 | 0.0% | 201 | min=0, max=3088206550486661, avg=660613765522914.15 |
| `scd2_start_time` | timestamptz | 0.0% | 2638 | 2025-12-14 21:20:28.731914+08 ~ 2026-02-15 18:21:41.474728+08 |
| `scd2_end_time` | timestamptz | 2.6% | 2636 | 2026-02-02 01:33:07.640592+08 ~ 2026-02-15 18:21:41.474728+08 |
| `scd2_is_current` | int4 | 0.0% | 2 | min=0, max=1, avg=0.03 |
| `scd2_version` | int4 | 0.0% | 12 | min=1, max=12, avg=1.21 |
</details>
### 3.2 dwd.dim_tenant_goods 详情
**DWD 独有列** (6 个): `category_name`, `scd2_end_time`, `scd2_is_current`, `scd2_start_time`, `scd2_version`, `tenant_goods_id`
**ODS 独有列** (19 个): `able_discount`, `able_site_transfer`, `categoryname`, `commodity_code`, `commoditycode`, `common_sale_royalty`, `cost_price`, `cost_price_type`, `goods_bar_code`, `goods_cover`, `id`, `is_warehousing`, `isinsite`, `min_discount_price`, `out_goods_id`
<details><summary>📊 dwd.dim_tenant_goods 字段级统计19 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `tenant_goods_id` | int8 | 0.0% | 173 | min=2791925230096261, max=3073781669250565, avg=2812177202555278.70 |
| `tenant_id` | int8 | 0.0% | 1 | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `supplier_id` | int8 | 0.0% | 1 | min=0, max=0, avg=0.00 |
| `category_name` | varchar | 91.3% | 14 | len=1~3 |
| `goods_category_id` | int8 | 0.0% | 9 | min=2790683528350533, max=2793220945250117, avg=2791641989465527.48 |
| `goods_second_category_id` | int8 | 0.0% | 14 | min=2790683528350534, max=2793236829620037, avg=2791720496902958.89 |
| `goods_name` | varchar | 0.0% | 173 | len=2~10 |
| `goods_number` | varchar | 0.0% | 173 | len=1~8 |
| `unit` | varchar | 0.0% | 13 | len=1~1 |
| `market_price` | numeric | 0.0% | 48 | min=2.00, max=11360.00, avg=277.51 |
| `goods_state` | int4 | 0.0% | 2 | min=1, max=2, avg=1.03 |
| `create_time` | timestamptz | 0.0% | 173 | 2025-07-15 17:13:15+08 ~ 2026-01-30 19:52:26+08 |
| `update_time` | timestamptz | 18.6% | 144 | 2025-07-15 19:58:39+08 ~ 2026-01-22 18:55:24+08 |
| `is_delete` | int4 | 0.0% | 1 | min=0, max=0, avg=0.00 |
| `not_sale` | int4 | 0.0% | 1 | min=2, max=2, avg=2.00 |
| `scd2_start_time` | timestamptz | 0.0% | 1751 | 2025-12-14 21:20:28.731914+08 ~ 2026-02-09 20:23:55.604384+08 |
| `scd2_end_time` | timestamptz | 8.6% | 1746 | 2026-01-31 16:03:53.792254+08 ~ 2026-02-09 20:23:55.604384+08 |
| `scd2_is_current` | int4 | 0.0% | 2 | min=0, max=1, avg=0.09 |
| `scd2_version` | int4 | 0.0% | 2 | min=1, max=2, avg=1.00 |
</details>
### 3.2 dwd.dwd_assistant_service_log 详情
**DWD 独有列** (4 个): `assistant_no`, `assistant_service_id`, `level_name`, `skill_name`
**ODS 独有列** (37 个): `assistantname`, `assistantno`, `assistantteamname`, `composite_grade`, `composite_grade_time`, `get_grade_times`, `grade_status`, `id`, `is_confirm`, `is_not_responding`, `is_single_order`, `is_trash`, `ledger_count`, `ledger_end_time`, `ledger_group_name`
<details><summary>📊 dwd.dwd_assistant_service_log 字段级统计33 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `assistant_service_id` | int8 | 0.0% | - | min=2800311971268549, max=3092712427276485, avg=2944926324324030.52 |
| `order_trade_no` | int8 | 0.0% | - | min=2800311913039813, max=3092230766020741, avg=2944492196874608.13 |
| `order_settle_id` | int8 | 0.0% | - | min=2800311915366341, max=3092711340902597, avg=2944926140749989.93 |
| `order_pay_id` | int8 | 0.0% | - | min=0, max=0, avg=0.00 |
| `order_assistant_id` | int8 | 0.0% | - | min=2800311914104773, max=3092265482209605, avg=2944455405500768.47 |
| `order_assistant_type` | int4 | 0.0% | - | min=1, max=2, avg=1.12 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `site_table_id` | int8 | 0.0% | - | min=0, max=3004536233839429, avg=2536057042915585.55 |
| `tenant_member_id` | int8 | 0.0% | - | min=0, max=3055176918828421, avg=1433413041734787.92 |
| `system_member_id` | int8 | 0.0% | - | min=0, max=3055176917108101, avg=1407179738886734.81 |
| `assistant_no` | varchar | 0.0% | - | len=1~3 |
| `nickname` | varchar | 0.0% | - | len=2~3 |
| `site_assistant_id` | int8 | 0.0% | - | min=2793361915547781, max=3067857612671685, avg=2843120450020717.73 |
| `user_id` | int8 | 0.0% | - | min=2324804675291845, max=3067857612163781, avg=2812388381472601.43 |
| `assistant_team_id` | int8 | 0.0% | - | min=2792011585884037, max=2959085810992645, avg=2834213834929783.18 |
| `person_org_id` | int8 | 0.0% | - | min=2793361915465861, max=3067857612573381, avg=2843120449922822.01 |
| `assistant_level` | int4 | 0.0% | - | min=8, max=40, avg=19.54 |
| `level_name` | varchar | 0.0% | - | len=2~4 |
| `skill_id` | int8 | 0.0% | - | min=2790683529513797, max=3039912271463941, avg=2792518515531553.51 |
| `skill_name` | varchar | 46.0% | - | len=3~3 |
| `ledger_unit_price` | numeric | 0.0% | - | min=98.00, max=198.00, avg=119.03 |
| `ledger_amount` | numeric | 0.0% | - | min=0.00, max=1900.00, avg=313.04 |
| `projected_income` | numeric | 0.0% | - | min=0.00, max=1605.33, avg=248.46 |
| `coupon_deduct_money` | numeric | 0.0% | - | min=0.00, max=431.10, avg=2.09 |
| `income_seconds` | int4 | 0.0% | - | min=0, max=53640, avg=9476.36 |
| `real_use_seconds` | int4 | 0.0% | - | min=0, max=53651, avg=8484.50 |
| `add_clock` | int4 | 0.0% | - | min=0, max=36000, avg=99.36 |
| `create_time` | timestamptz | 0.0% | - | 2025-07-21 15:24:41+08 ~ 2026-02-13 04:49:48+08 |
| `start_use_time` | timestamptz | 0.0% | - | 2025-07-21 15:24:37+08 ~ 2026-02-12 21:15:08+08 |
| `last_use_time` | timestamptz | 0.0% | - | 2025-07-21 15:24:37+08 ~ 2026-02-13 03:14:14+08 |
| `is_delete` | int4 | 0.0% | - | min=0, max=1, avg=0.04 |
| `real_service_money` | numeric | 0.1% | - | min=0.00, max=0.00, avg=0.00 |
</details>
### 3.2 dwd.dwd_assistant_trash_event 详情
**DWD 独有列** (10 个): `abolish_amount`, `assistant_name`, `assistant_no`, `assistant_trash_event_id`, `charge_minutes_raw`, `create_time`, `site_id`, `table_area_id`, `table_id`, `trash_reason`
**ODS 独有列** (13 个): `assistantabolishamount`, `assistantname`, `assistanton`, `createtime`, `id`, `pdchargeminutes`, `siteid`, `siteprofile`, `tablearea`, `tableareaid`, `tableid`, `tablename`, `trashreason`
<details><summary>📊 dwd.dwd_assistant_trash_event 字段级统计11 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `assistant_trash_event_id` | int8 | 0.0% | 100 | min=2889961229945221, max=3071358041819077, avg=3005598627527239.60 |
| `site_id` | int8 | 0.0% | 1 | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `table_id` | int8 | 0.0% | 36 | min=2791964216463493, max=3004536233839429, avg=2830967365385290.76 |
| `table_area_id` | int8 | 0.0% | 14 | min=2791963794329671, max=3004534627601285, avg=2828246246772928.74 |
| `assistant_no` | varchar | 0.0% | 22 | len=1~2 |
| `assistant_name` | varchar | 0.0% | 22 | len=2~3 |
| `charge_minutes_raw` | int4 | 0.0% | 50 | min=0, max=28187, avg=4322.24 |
| `abolish_amount` | numeric | 0.0% | 50 | min=0.00, max=845.61, avg=154.90 |
| `trash_reason` | varchar | 100.0% | 0 | — |
| `create_time` | timestamptz | 0.0% | 75 | 2025-09-22 23:20:37+08 ~ 2026-01-29 02:47:00+08 |
| `tenant_id` | int8 | 100.0% | 0 | — |
</details>
### 3.2 dwd.dwd_groupbuy_redemption 详情
**DWD 独有列** (1 个): `redemption_id`
**ODS 独有列** (28 个): `assistant_promotion_money`, `assistant_service_promotion_money`, `assistant_service_share_money`, `assistant_share_money`, `good_service_share_money`, `goods_promotion_money`, `goods_share_money`, `goodsoptionprice`, `id`, `ledger_group_name`, `ledger_status`, `offer_type`, `operator_id`, `operator_name`, `order_pay_id`
<details><summary>📊 dwd.dwd_groupbuy_redemption 字段级统计25 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `redemption_id` | int8 | 0.0% | - | min=2883738008095877, max=3093859292088645, avg=2986775282529774.90 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `table_id` | int8 | 0.0% | - | min=2791964216463493, max=2942325122944709, avg=2792953913307584.20 |
| `tenant_table_area_id` | int8 | 0.0% | - | min=2791960001957765, max=2791962314215301, avg=2791960193901872.31 |
| `table_charge_seconds` | int4 | 0.0% | - | min=0, max=36000, avg=6406.17 |
| `order_trade_no` | int8 | 0.0% | - | min=2883678958930885, max=3093784062036101, avg=2986665451961769.90 |
| `order_settle_id` | int8 | 0.0% | - | min=2883737991875653, max=3093859276196037, avg=2986775234177318.75 |
| `order_coupon_id` | int8 | 0.0% | - | min=2883678959848389, max=3093784063412357, avg=2986676883465579.34 |
| `coupon_origin_id` | int8 | 0.0% | - | min=2883678959848389, max=3093784063412357, avg=2986676883425226.30 |
| `promotion_activity_id` | int8 | 0.0% | - | min=2883678958144453, max=3093784060856453, avg=2986676881439836.58 |
| `promotion_coupon_id` | int8 | 0.0% | - | min=2798713926290437, max=3048468851870085, avg=2867360433683138.99 |
| `order_coupon_channel` | int4 | 0.0% | - | min=1, max=2, avg=1.06 |
| `ledger_unit_price` | numeric | 0.0% | - | min=0.00, max=888.00, avg=33.71 |
| `ledger_count` | int4 | 0.0% | - | min=0, max=14400, avg=4328.35 |
| `ledger_amount` | numeric | 0.0% | - | min=0.00, max=752.00, avg=61.78 |
| `coupon_money` | numeric | 0.0% | - | min=0.00, max=1988.00, avg=64.41 |
| `promotion_seconds` | int4 | 0.0% | - | min=3600, max=14400, avg=4407.23 |
| `coupon_code` | varchar | 0.0% | - | len=10~15 |
| `is_single_order` | int4 | 0.0% | - | min=0, max=1, avg=1.00 |
| `is_delete` | int4 | 0.0% | - | min=0, max=1, avg=0.35 |
| `ledger_name` | varchar | 0.0% | - | len=6~11 |
| `create_time` | timestamptz | 0.0% | - | 2025-09-18 13:50:02+08 ~ 2026-02-14 00:16:27+08 |
| `member_discount_money` | numeric | 27.5% | - | min=0.00, max=0.00, avg=0.00 |
| `coupon_sale_id` | int8 | 0.0% | - | min=0, max=0, avg=0.00 |
</details>
### 3.2 dwd.dwd_member_balance_change 详情
**DWD 独有列** (9 个): `balance_after`, `balance_before`, `balance_change_id`, `card_type_name`, `change_amount`, `change_time`, `member_mobile`, `member_name`, `principal_change_amount`
**ODS 独有列** (15 个): `account_data`, `after`, `before`, `create_time`, `id`, `membercardtypename`, `membermobile`, `membername`, `operator_id`, `operator_name`, `paysitename`, `principal_data`, `refund_amount`, `registersitename`, `relate_id`
<details><summary>📊 dwd.dwd_member_balance_change 字段级统计22 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `balance_change_id` | int8 | 0.0% | - | min=2800328071170949, max=3093844118358341, avg=2940016953299285.81 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=0, max=2790685415443269, avg=2776405190920237.12 |
| `register_site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `tenant_member_id` | int8 | 0.0% | - | min=2799207056279301, max=3085176958944837, avg=2830862386806799.06 |
| `system_member_id` | int8 | 0.0% | - | min=1823736961667205, max=3085176956307013, avg=2790919037889637.25 |
| `tenant_member_card_id` | int8 | 0.0% | - | min=2799215867168517, max=3085176959321669, avg=2836298526517953.66 |
| `card_type_id` | int8 | 0.0% | - | min=2791987095408517, max=2794699703437125, avg=2793172848534856.62 |
| `card_type_name` | varchar | 0.0% | - | len=2~5 |
| `member_name` | varchar | 0.0% | - | len=1~12 |
| `member_mobile` | varchar | 0.0% | - | len=11~14 |
| `balance_before` | numeric | 0.0% | - | min=0.00, max=44000.00, avg=1723.54 |
| `change_amount` | numeric | 0.0% | - | min=-44000.00, max=44000.00, avg=-13.22 |
| `balance_after` | numeric | 0.0% | - | min=0.00, max=44000.00, avg=1710.31 |
| `from_type` | int4 | 0.0% | - | min=1, max=9, avg=1.75 |
| `payment_method` | int4 | 0.0% | - | min=0, max=4, avg=0.65 |
| `change_time` | timestamptz | 0.0% | - | 2025-07-21 15:41:03+08 ~ 2026-02-14 00:01:01+08 |
| `is_delete` | int4 | 0.0% | - | min=0, max=1, avg=0.51 |
| `remark` | varchar | 97.9% | - | len=4~4 |
| `principal_before` | numeric | 46.4% | - | min=0.00, max=44000.00, avg=1960.40 |
| `principal_after` | numeric | 46.4% | - | min=0.00, max=44000.00, avg=1957.08 |
| `principal_change_amount` | numeric | 0.0% | - | min=-44000.00, max=44000.00, avg=-1.78 |
</details>
### 3.2 dwd.dwd_payment 详情
**DWD 独有列** (2 个): `pay_date`, `payment_id`
**ODS 独有列** (2 个): `id`, `siteprofile`
<details><summary>📊 dwd.dwd_payment 字段级统计12 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `payment_id` | int8 | 0.0% | - | min=2800050343954053, max=3093864103463109, avg=2945845541688648.13 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `relate_type` | int4 | 0.0% | - | min=1, max=6, avg=2.05 |
| `relate_id` | int8 | 0.0% | - | min=2800050273584581, max=3093864077166789, avg=2945845268177596.82 |
| `pay_amount` | numeric | 0.0% | - | min=-44000.00, max=44000.00, avg=97.28 |
| `pay_status` | int4 | 0.0% | - | min=2, max=2, avg=2.00 |
| `payment_method` | int4 | 0.0% | - | min=1, max=4, avg=2.74 |
| `online_pay_channel` | int4 | 0.0% | - | min=0, max=0, avg=0.00 |
| `create_time` | timestamptz | 0.0% | - | 2025-07-21 10:58:32+08 ~ 2026-02-14 00:21:21+08 |
| `pay_time` | timestamptz | 0.0% | - | 2025-07-21 10:58:32+08 ~ 2026-02-14 00:21:21+08 |
| `pay_date` | date | 0.0% | - | 2025-07-21 ~ 2026-02-14 |
| `tenant_id` | int8 | 100.0% | - | — |
</details>
### 3.2 dwd.dwd_platform_coupon_redemption 详情
**DWD 独有列** (1 个): `platform_coupon_redemption_id`
**ODS 独有列** (7 个): `coupon_cover`, `coupon_remark`, `groupon_type`, `id`, `operator_id`, `operator_name`, `siteprofile`
<details><summary>📊 dwd.dwd_platform_coupon_redemption 字段级统计20 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `platform_coupon_redemption_id` | int8 | 0.0% | - | min=2800008264287621, max=3093784060856453, avg=2943232422091948.45 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `coupon_code` | varchar | 0.0% | - | len=10~15 |
| `coupon_channel` | int4 | 0.0% | - | min=1, max=2, avg=1.06 |
| `coupon_name` | varchar | 0.0% | - | len=9~21 |
| `sale_price` | numeric | 0.0% | - | min=9.90, max=888.00, avg=35.31 |
| `coupon_money` | numeric | 0.0% | - | min=48.00, max=1988.00, avg=65.20 |
| `coupon_free_time` | int4 | 0.0% | - | min=0, max=0, avg=0.00 |
| `channel_deal_id` | int8 | 0.0% | - | min=1126976372, max=1814983609169019, avg=106643012052423.28 |
| `deal_id` | int8 | 0.0% | - | min=0, max=1398374101, avg=1271601313.21 |
| `group_package_id` | int8 | 0.0% | - | min=0, max=0, avg=0.00 |
| `site_order_id` | int8 | 0.0% | - | min=2800008264811909, max=3093784062036101, avg=2943220525820855.43 |
| `table_id` | int8 | 0.0% | - | min=2791964216463493, max=2793023960731717, avg=2792918485456299.82 |
| `certificate_id` | varchar | 0.0% | - | len=19~19 |
| `verify_id` | varchar | 94.1% | - | len=19~19 |
| `use_status` | int4 | 0.0% | - | min=1, max=2, avg=1.00 |
| `is_delete` | int4 | 0.0% | - | min=0, max=0, avg=0.00 |
| `create_time` | timestamptz | 0.0% | - | 2025-07-21 10:15:44+08 ~ 2026-02-13 22:59:56+08 |
| `consume_time` | timestamptz | 0.0% | - | 2025-07-21 10:15:45+08 ~ 2026-02-13 22:59:56+08 |
</details>
### 3.2 dwd.dwd_recharge_order 详情
**DWD 独有列** (24 个): `cash_amount`, `create_time`, `electricity_adjust_money`, `electricity_money`, `is_first`, `member_card_type_name`, `member_id`, `member_name_snapshot`, `member_phone_snapshot`, `mervou_sales_amount`, `pay_amount`, `pay_time`, `payment_method`, `pl_coupon_sale_amount`, `point_amount`
**ODS 独有列** (66 个): `activitydiscount`, `adjustamount`, `allcoupondiscount`, `assistantcxmoney`, `assistantmanualdiscount`, `assistantpdmoney`, `assistantpromotionmoney`, `balanceamount`, `canberevoked`, `cardamount`, `cashamount`, `consumemoney`, `couponamount`, `couponsaleamount`, `createtime`
### 3.2 dwd.dwd_refund 详情
**DWD 独有列** (1 个): `refund_id`
**ODS 独有列** (21 个): `action_type`, `balance_frozen_amount`, `card_frozen_amount`, `cashier_point_id`, `channel_pay_no`, `channel_payer_id`, `check_status`, `id`, `is_delete`, `is_revoke`, `online_pay_channel`, `online_pay_type`, `operator_id`, `pay_config_id`, `pay_sn`
<details><summary>📊 dwd.dwd_refund 字段级统计12 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `refund_id` | int8 | 0.0% | 51 | min=2888536816749061, max=3089577798995141, avg=2993893346224381.47 |
| `tenant_id` | int8 | 0.0% | 1 | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | 1 | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `relate_type` | int4 | 0.0% | 3 | min=1, max=5, avg=2.24 |
| `relate_id` | int8 | 0.0% | 50 | min=2888535969433925, max=3089548319804869, avg=2993841151683115.96 |
| `pay_amount` | numeric | 0.0% | 36 | min=-44000.00, max=-0.67, avg=-1552.48 |
| `channel_fee` | numeric | 0.0% | 1 | min=0.00, max=0.00, avg=0.00 |
| `pay_time` | timestamptz | 0.0% | 51 | 2025-09-21 23:11:38+08 ~ 2026-02-10 23:41:06+08 |
| `create_time` | timestamptz | 0.0% | 51 | 2025-09-21 23:11:38+08 ~ 2026-02-10 23:41:06+08 |
| `payment_method` | int4 | 0.0% | 2 | min=2, max=4, avg=3.88 |
| `member_id` | int8 | 0.0% | 1 | min=0, max=0, avg=0.00 |
| `member_card_id` | int8 | 0.0% | 1 | min=0, max=0, avg=0.00 |
</details>
### 3.2 dwd.dwd_settlement_head 详情
**DWD 独有列** (37 个): `adjust_amount`, `assistant_cx_money`, `assistant_pd_money`, `balance_amount`, `consume_money`, `coupon_amount`, `create_time`, `electricity_adjust_money`, `electricity_money`, `gift_card_amount`, `goods_money`, `is_bind_member`, `member_card_account_id`, `member_card_type_name`, `member_discount_amount`
**ODS 独有列** (66 个): `activitydiscount`, `adjustamount`, `allcoupondiscount`, `assistantcxmoney`, `assistantmanualdiscount`, `assistantpdmoney`, `assistantpromotionmoney`, `balanceamount`, `canberevoked`, `cardamount`, `cashamount`, `consumemoney`, `couponamount`, `couponsaleamount`, `createtime`
### 3.2 dwd.dwd_store_goods_sale 详情
**DWD 独有列** (1 个): `store_goods_sale_id`
**ODS 独有列** (28 个): `coupon_deduct_money`, `discount_money`, `goods_remark`, `id`, `is_single_order`, `member_coupon_id`, `member_discount_amount`, `opensalesman`, `operator_id`, `operator_name`, `option_coupon_deduct_money`, `option_member_discount_money`, `option_price`, `option_value_name`, `order_coupon_id`
<details><summary>📊 dwd.dwd_store_goods_sale 字段级统计24 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `store_goods_sale_id` | int8 | 0.0% | - | min=2800105583071877, max=3013419364454150, avg=2911009833142095.77 |
| `order_trade_no` | int8 | 0.0% | - | min=2800105537881541, max=3013147520814661, avg=2910486643264710.50 |
| `order_settle_id` | int8 | 0.0% | - | min=2800105539552709, max=3013419160440709, avg=2911009675936561.89 |
| `order_pay_id` | int8 | 0.0% | - | min=0, max=0, avg=0.00 |
| `order_goods_id` | int8 | 0.0% | - | min=0, max=3013308162690885, avg=1584470684860438.36 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_goods_id` | int8 | 0.0% | - | min=2791953867886725, max=3004536125639493, avg=2796326049558804.13 |
| `tenant_goods_id` | int8 | 0.0% | - | min=2791925230096261, max=3004531315313413, avg=2795499121485088.38 |
| `tenant_goods_category_id` | int8 | 0.0% | - | min=2790683528350534, max=2793236829620037, avg=2791450392380408.40 |
| `tenant_goods_business_id` | int8 | 0.0% | - | min=2790683528317765, max=2793220268902213, avg=2791300728335841.79 |
| `site_table_id` | int8 | 0.0% | - | min=0, max=3004536233839429, avg=2053615874358120.74 |
| `ledger_name` | varchar | 0.0% | - | len=2~10 |
| `ledger_group_name` | varchar | 0.0% | - | len=2~2 |
| `ledger_unit_price` | numeric | 0.0% | - | min=2.00, max=1690.00, avg=12.01 |
| `ledger_count` | int4 | 0.0% | - | min=1, max=66, avg=1.76 |
| `ledger_amount` | numeric | 0.0% | - | min=2.00, max=1690.00, avg=21.27 |
| `discount_price` | numeric | 0.0% | - | min=0.00, max=990.00, avg=1.23 |
| `real_goods_money` | numeric | 0.0% | - | min=0.00, max=1690.00, avg=20.04 |
| `cost_money` | numeric | 0.0% | - | min=0.00, max=81.82, avg=0.18 |
| `ledger_status` | int4 | 0.0% | - | min=1, max=1, avg=1.00 |
| `is_delete` | int4 | 0.0% | - | min=0, max=0, avg=0.00 |
| `create_time` | timestamptz | 0.0% | - | 2025-07-21 11:54:44+08 ~ 2025-12-19 04:28:44+08 |
| `coupon_share_money` | numeric | 0.0% | - | min=0.00, max=0.00, avg=0.00 |
</details>
### 3.2 dwd.dwd_table_fee_adjust 详情
**DWD 独有列** (5 个): `adjust_time`, `table_area_id`, `table_area_name`, `table_fee_adjust_id`, `table_id`
**ODS 独有列** (17 个): `adjust_type`, `applicant_id`, `applicant_name`, `area_type_id`, `create_time`, `id`, `ledger_count`, `ledger_name`, `operator_id`, `operator_name`, `site_table_area_id`, `site_table_area_name`, `site_table_id`, `sitename`, `siteprofile`
<details><summary>📊 dwd.dwd_table_fee_adjust 字段级统计16 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `table_fee_adjust_id` | int8 | 0.0% | - | min=2800379696809925, max=3093721330321541, avg=2958095165613949.04 |
| `order_trade_no` | int8 | 0.0% | - | min=2800305631070021, max=3093400552720645, avg=2957508400667238.14 |
| `order_settle_id` | int8 | 0.0% | - | min=2800379609925573, max=3093721299536133, avg=2958095010682472.18 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `table_id` | int8 | 0.0% | - | min=2791964216463493, max=3004536233839429, avg=2804884795729219.83 |
| `table_area_id` | int8 | 0.0% | - | min=2791960001957765, max=3004534168259333, avg=2799978030180374.23 |
| `table_area_name` | varchar | 100.0% | - | — |
| `tenant_table_area_id` | int8 | 0.0% | - | min=2791960001957765, max=3004534168259333, avg=2799978030180374.23 |
| `ledger_amount` | numeric | 0.0% | - | min=0.01, max=2911.81, avg=118.55 |
| `ledger_status` | int4 | 0.0% | - | min=0, max=1, avg=0.98 |
| `is_delete` | int4 | 0.0% | - | min=0, max=1, avg=0.41 |
| `adjust_time` | timestamptz | 0.0% | - | 2025-07-21 16:33:34+08 ~ 2026-02-13 21:56:07+08 |
| `table_name` | text | 100.0% | - | — |
| `table_price` | numeric | 100.0% | - | — |
| `charge_free` | bool | 100.0% | - | T=0, F=0 |
</details>
### 3.2 dwd.dwd_table_fee_log 详情
**DWD 独有列** (1 个): `table_fee_log_id`
**ODS 独有列** (14 个): `fee_total`, `id`, `last_use_time`, `ledger_start_time`, `mgmt_fee`, `operator_id`, `operator_name`, `order_consumption_type`, `salesman_name`, `salesman_org_id`, `salesman_user_id`, `service_money`, `siteprofile`, `used_card_amount`
<details><summary>📊 dwd.dwd_table_fee_log 字段级统计29 列)</summary>
| 字段 | 类型 | NULL率 | 唯一值 | 统计 |
|------|------|--------|--------|------|
| `table_fee_log_id` | int8 | 0.0% | - | min=2800050345363077, max=3093859291416901, avg=2951516001649154.20 |
| `order_trade_no` | int8 | 0.0% | - | min=2800008264811909, max=3093784062036101, avg=2951288548282306.44 |
| `order_settle_id` | int8 | 0.0% | - | min=2800050273584581, max=3093859276196037, avg=2951515918296444.68 |
| `order_pay_id` | int8 | 0.0% | - | min=0, max=0, avg=0.00 |
| `tenant_id` | int8 | 0.0% | - | min=2790683160709957, max=2790683160709957, avg=2790683160709957.00 |
| `site_id` | int8 | 0.0% | - | min=2790685415443269, max=2790685415443269, avg=2790685415443269.00 |
| `site_table_id` | int8 | 0.0% | - | min=2791964216463493, max=3004536233839429, avg=2795993997317671.85 |
| `site_table_area_id` | int8 | 0.0% | - | min=2791963794329671, max=3004534627601285, avg=2793946624608023.39 |
| `site_table_area_name` | varchar | 0.0% | - | len=2~7 |
| `tenant_table_area_id` | int8 | 0.0% | - | min=2791960001957765, max=3004534168259333, avg=2793942584809932.30 |
| `member_id` | int8 | 0.0% | - | min=0, max=3085176958944837, avg=492432511454912.34 |
| `ledger_name` | varchar | 0.0% | - | len=2~6 |
| `ledger_unit_price` | numeric | 0.0% | - | min=0.00, max=398.00, avg=58.20 |
| `ledger_count` | int4 | 0.0% | - | min=0, max=60539, avg=6463.62 |
| `ledger_amount` | numeric | 0.0% | - | min=0.00, max=6077.90, avg=115.73 |
| `real_table_charge_money` | numeric | 0.0% | - | min=0.00, max=4862.33, avg=41.30 |
| `coupon_promotion_amount` | numeric | 0.0% | - | min=0.00, max=752.00, avg=51.85 |
| `member_discount_amount` | numeric | 0.0% | - | min=0.00, max=929.84, avg=9.94 |
| `adjust_amount` | numeric | 0.0% | - | min=0.00, max=2911.81, avg=17.93 |
| `real_table_use_seconds` | int4 | 0.0% | - | min=0, max=60539, avg=6411.07 |
| `add_clock_seconds` | int4 | 0.0% | - | min=0, max=39600, avg=58.77 |
| `start_use_time` | timestamptz | 0.0% | - | 2025-07-21 10:15:43+08 ~ 2026-02-13 22:59:55+08 |
| `ledger_end_time` | timestamptz | 0.0% | - | 2025-07-21 10:58:18+08 ~ 2026-02-14 00:15:53+08 |
| `create_time` | timestamptz | 0.0% | - | 2025-07-21 10:58:32+08 ~ 2026-02-14 00:16:27+08 |
| `ledger_status` | int4 | 0.0% | - | min=1, max=1, avg=1.00 |
| `is_single_order` | int4 | 0.0% | - | min=0, max=1, avg=0.97 |
| `is_delete` | int4 | 0.0% | - | min=0, max=1, avg=0.49 |
| `activity_discount_amount` | numeric | 43.5% | - | min=0.00, max=0.00, avg=0.00 |
| `real_service_money` | numeric | 43.5% | - | min=0.00, max=0.00, avg=0.00 |
</details>
## 4. DWD↔DWS 数据一致性
### 4.1 DWS 表概览
DWS 层共 32 张表14 张有数据18 张为空。
| DWS 表 | 行数 | 列数 | 状态 |
|--------|------|------|------|
| `dws.cfg_area_category` | 21 | 10 | ✅ |
| `dws.cfg_assistant_level_price` | 5 | 10 | ✅ |
| `dws.cfg_bonus_rules` | 9 | 14 | ✅ |
| `dws.cfg_index_parameters` | 127 | 9 | ✅ |
| `dws.cfg_performance_tier` | 12 | 16 | ✅ |
| `dws.cfg_skill_type` | 3 | 9 | ✅ |
| `dws.dws_assistant_customer_stats` | 0 | 37 | ⚠️ 空表 |
| `dws.dws_assistant_daily_detail` | 5276 | 30 | ✅ |
| `dws.dws_assistant_finance_analysis` | 0 | 20 | ⚠️ 空表 |
| `dws.dws_assistant_monthly_summary` | 0 | 35 | ⚠️ 空表 |
| `dws.dws_assistant_recharge_commission` | 0 | 18 | ⚠️ 空表 |
| `dws.dws_assistant_salary_calc` | 0 | 37 | ⚠️ 空表 |
| `dws.dws_finance_daily_summary` | 210 | 42 | ✅ |
| `dws.dws_finance_discount_detail` | 0 | 12 | ⚠️ 空表 |
| `dws.dws_finance_expense_summary` | 0 | 16 | ⚠️ 空表 |
| `dws.dws_finance_income_structure` | 0 | 13 | ⚠️ 空表 |
| `dws.dws_finance_recharge_summary` | 0 | 23 | ⚠️ 空表 |
| `dws.dws_goods_stock_daily_summary` | 0 | 20 | ⚠️ 空表 |
| `dws.dws_goods_stock_monthly_summary` | 0 | 20 | ⚠️ 空表 |
| `dws.dws_goods_stock_weekly_summary` | 0 | 20 | ⚠️ 空表 |
| `dws.dws_index_percentile_history` | 86 | 13 | ✅ |
| `dws.dws_member_assistant_intimacy` | 219 | 23 | ✅ |
| `dws.dws_member_assistant_relation_index` | 0 | 29 | ⚠️ 空表 |
| `dws.dws_member_consumption_summary` | 0 | 39 | ⚠️ 空表 |
| `dws.dws_member_newconv_index` | 14 | 37 | ✅ |
| `dws.dws_member_recall_index` | 0 | 21 | ⚠️ 空表 |
| `dws.dws_member_visit_detail` | 4398 | 29 | ✅ |
| `dws.dws_member_winback_index` | 62 | 35 | ✅ |
| `dws.dws_ml_manual_order_alloc` | 0 | 19 | ⚠️ 空表 |
| `dws.dws_ml_manual_order_source` | 0 | 27 | ⚠️ 空表 |
| `dws.dws_order_summary` | 12920 | 34 | ✅ |
| `dws.dws_platform_settlement` | 0 | 19 | ⚠️ 空表 |
### 4.2 DWS 数值列健全性检查
#### dws.cfg_bonus_rules
| 列 | NULL率 | 负值数 | 最小值 | 最大值 | 状态 |
|----|--------|--------|--------|--------|------|
| `rank_position` | 66.7% | 0 | 1 | 3 | ⚠️ 高 NULL 率 |
#### dws.dws_assistant_daily_detail
| 列 | NULL率 | 负值数 | 最小值 | 最大值 | 状态 |
|----|--------|--------|--------|--------|------|
| `assistant_level_code` | 100.0% | 0 | None | None | ⚠️ 高 NULL 率 |
#### dws.dws_member_visit_detail
| 列 | NULL率 | 负值数 | 最小值 | 最大值 | 状态 |
|----|--------|--------|--------|--------|------|
| `table_id` | 100.0% | 0 | None | None | ⚠️ 高 NULL 率 |
## 5. 异常汇总与建议
共发现 43 项异常:
1. API↔ODS `assistant_cancellation_records`: ⚠️ 无 API JSON
2. API↔ODS `assistant_accounts_master`: ⚠️ 无 API JSON
3. API↔ODS `assistant_service_records`: ⚠️ 无 API JSON
4. API↔ODS `stock_goods_category_tree`: ⚠️ 无 API JSON
5. API↔ODS `group_buy_redemption_records`: ⚠️ 无 API JSON
6. API↔ODS `group_buy_packages`: ⚠️ 无 API JSON
7. API↔ODS `goods_stock_movements`: ⚠️ 无 API JSON
8. API↔ODS `goods_stock_summary`: ⚠️ 无 API JSON
9. API↔ODS `member_profiles`: ⚠️ 无 API JSON
10. API↔ODS `member_balance_changes`: ⚠️ 无 API JSON
11. API↔ODS `member_stored_value_cards`: ⚠️ 无 API JSON
12. API↔ODS `payment_transactions`: ⚠️ 无 API JSON
13. API↔ODS `platform_coupon_redemption_records`: ⚠️ 无 API JSON
14. API↔ODS `recharge_settlements`: ⚠️ 无 API JSON
15. API↔ODS `refund_transactions`: ⚠️ 无 API JSON
16. API↔ODS `settlement_records`: ⚠️ 无 API JSON
17. API↔ODS `store_goods_master`: ⚠️ 无 API JSON
18. API↔ODS `store_goods_sales_records`: ⚠️ 无 API JSON
19. API↔ODS `site_tables_master`: ⚠️ 无 API JSON
20. API↔ODS `table_fee_discount_records`: ⚠️ 无 API JSON
21. API↔ODS `table_fee_transactions`: ⚠️ 无 API JSON
22. API↔ODS `tenant_goods_master`: ⚠️ 无 API JSON
23. ODS↔DWD `dwd.dim_assistant`: ❌ 存在差异
24. ODS↔DWD `dwd.dim_goods_category`: ❌ 存在差异
25. ODS↔DWD `dwd.dim_groupbuy_package`: ❌ 存在差异
26. ODS↔DWD `dwd.dim_member`: ❌ 存在差异
27. ODS↔DWD `dwd.dim_member_card_account`: ❌ 存在差异
28. ODS↔DWD `dwd.dim_store_goods`: ❌ 存在差异
29. ODS↔DWD `dwd.dim_table`: ❌ 存在差异
30. ODS↔DWD `dwd.dim_tenant_goods`: ❌ 存在差异
31. ODS↔DWD `dwd.dwd_assistant_service_log`: ❌ 存在差异
32. ODS↔DWD `dwd.dwd_assistant_trash_event`: ❌ 存在差异
33. ODS↔DWD `dwd.dwd_groupbuy_redemption`: ❌ 存在差异
34. ODS↔DWD `dwd.dwd_member_balance_change`: ❌ 存在差异
35. ODS↔DWD `dwd.dwd_payment`: ❌ 存在差异
36. ODS↔DWD `dwd.dwd_platform_coupon_redemption`: ❌ 存在差异
37. ODS↔DWD `dwd.dwd_refund`: ❌ 存在差异
38. ODS↔DWD `dwd.dwd_store_goods_sale`: ❌ 存在差异
39. ODS↔DWD `dwd.dwd_table_fee_adjust`: ❌ 存在差异
40. ODS↔DWD `dwd.dwd_table_fee_log`: ❌ 存在差异
41. DWS `dws.cfg_bonus_rules.rank_position`: ⚠️ 高 NULL 率
42. DWS `dws.dws_assistant_daily_detail.assistant_level_code`: ⚠️ 高 NULL 率
43. DWS `dws.dws_member_visit_detail.table_id`: ⚠️ 高 NULL 率

View File

@@ -1,335 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-20T07:21:33.898900+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 38/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ✅ | 15 | 15 | 0 | 0 | 295 | 1266 | |
| dwd.dim_assistant_ex | ✅ | 44 | 44 | 0 | 0 | 295 | 1251 | |
| dwd.dim_goods_category | ✅ | 12 | 12 | 0 | 0 | 18 | 125 | |
| dwd.dim_groupbuy_package | ✅ | 18 | 18 | 0 | 0 | 70 | 373 | |
| dwd.dim_groupbuy_package_ex | ✅ | 21 | 21 | 0 | 0 | 70 | 373 | |
| dwd.dim_member | ❌ | 12 | 11 | 1 | 0 | 1771 | 10801 | |
| dwd.dim_member_card_account | ✅ | 19 | 19 | 0 | 0 | 2973 | 18370 | |
| dwd.dim_member_card_account_ex | ✅ | 57 | 57 | 0 | 0 | 2973 | 18172 | |
| dwd.dim_member_ex | ✅ | 10 | 10 | 0 | 0 | 1771 | 10770 | |
| dwd.dim_site | ✅ | 13 | 13 | 0 | 0 | 38585 | 55 | |
| dwd.dim_site_ex | ✅ | 21 | 21 | 0 | 0 | 38585 | 55 | |
| dwd.dim_store_goods | ✅ | 22 | 22 | 0 | 0 | 1744 | 5444 | |
| dwd.dim_store_goods_ex | ✅ | 26 | 26 | 0 | 0 | 1744 | 5402 | |
| dwd.dim_table | ✅ | 8 | 8 | 0 | 0 | 1074 | 2881 | |
| dwd.dim_table_ex | ✅ | 20 | 20 | 0 | 0 | 1074 | 3035 | |
| dwd.dim_tenant_goods | ✅ | 15 | 15 | 0 | 0 | 353 | 2018 | |
| dwd.dim_tenant_goods_ex | ✅ | 18 | 18 | 0 | 0 | 353 | 2016 | |
| dwd.dwd_assistant_service_log | ✅ | 33 | 33 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_service_log_ex | ✅ | 31 | 31 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_trash_event | ✅ | 11 | 11 | 0 | 0 | 100 | 100 | |
| dwd.dwd_assistant_trash_event_ex | ✅ | 3 | 3 | 0 | 0 | 100 | 100 | |
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_movement 不存在或无列 |
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_summary 不存在或无列 |
| dwd.dwd_groupbuy_redemption | ✅ | 25 | 25 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_groupbuy_redemption_ex | ✅ | 28 | 28 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_member_balance_change | ❌ | 22 | 21 | 1 | 0 | 9684 | 5081 | |
| dwd.dwd_member_balance_change_ex | ✅ | 7 | 7 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_payment | ✅ | 12 | 12 | 0 | 0 | 36006 | 24922 | |
| dwd.dwd_platform_coupon_redemption | ✅ | 20 | 20 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_platform_coupon_redemption_ex | ✅ | 6 | 6 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_recharge_order | ✅ | 24 | 24 | 0 | 0 | 3333 | 485 | |
| dwd.dwd_recharge_order_ex | ✅ | 43 | 43 | 0 | 0 | 3333 | 485 | |
| dwd.dwd_refund | ✅ | 12 | 12 | 0 | 0 | 83 | 51 | |
| dwd.dwd_refund_ex | ✅ | 20 | 20 | 0 | 0 | 83 | 51 | |
| dwd.dwd_settlement_head | ✅ | 37 | 37 | 0 | 0 | 55457 | 26115 | |
| dwd.dwd_settlement_head_ex | ✅ | 30 | 30 | 0 | 0 | 55457 | 26115 | |
| dwd.dwd_store_goods_sale | ✅ | 24 | 24 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_store_goods_sale_ex | ✅ | 28 | 28 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_table_fee_adjust | ✅ | 16 | 16 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_adjust_ex | ✅ | 13 | 13 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_log | ✅ | 29 | 29 | 0 | 0 | 38585 | 20132 | |
| dwd.dwd_table_fee_log_ex | ✅ | 13 | 13 | 0 | 0 | 38585 | 20132 | |
### dwd.dim_member — 映射异常明细
- `update_time` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"member_id": 2860039721438277,
"dwd_create_time": "2025-09-01T20:02:53+08:00",
"ods_create_time": "2025-09-01 20:02:53",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "13189179882",
"ods_mobile": "13189179882",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-788.37",
"ods_pay_money_sum": "-788.37",
"dwd_recharge_money_sum": "2716.00",
"ods_recharge_money_sum": "2716.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799207107888901,
"ods_system_member_id": "2799207107888901",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 3066773303512389,
"dwd_create_time": "2026-01-25T21:03:10+08:00",
"ods_create_time": "2026-01-25 21:03:10",
"dwd_member_card_grade_code": 2790683528022856,
"ods_member_card_grade_code": "2790683528022856",
"dwd_member_card_grade_name": "活动抵用券",
"ods_member_card_grade_name": "活动抵用券",
"dwd_mobile": "17306741548",
"ods_mobile": "17306741548",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-188.00",
"ods_pay_money_sum": "-188.00",
"dwd_recharge_money_sum": "188.00",
"ods_recharge_money_sum": "188.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 3066773300268357,
"ods_system_member_id": "3066773300268357",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2966381620874693,
"dwd_create_time": "2025-11-15T22:59:28+08:00",
"ods_create_time": "2025-11-15 22:59:28",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "15915866234",
"ods_mobile": "15915866234",
"dwd_nickname": "尤",
"ods_nickname": "尤",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "200.00",
"ods_recharge_money_sum": "200.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2966381618761157,
"ods_system_member_id": "2966381618761157",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2807525094639429,
"dwd_create_time": "2025-07-26T17:42:15+08:00",
"ods_create_time": "2025-07-26 17:42:15",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "15802496094",
"ods_mobile": "15802496094",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2807525093623621,
"ods_system_member_id": "2807525093623621",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2799212423857925,
"dwd_create_time": "2025-07-20T20:46:10+08:00",
"ods_create_time": "2025-07-20 20:46:10",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "18148713553",
"ods_mobile": "18148713553",
"dwd_nickname": "潘",
"ods_nickname": "潘",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799212422907653,
"ods_system_member_id": "2799212422907653",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
}
]
```
### dwd.dwd_member_balance_change — 映射异常明细
- `principal_change_amount` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"balance_change_id": 2800328071170949,
"dwd_balance_after": "8.00",
"ods_balance_after": "8.00",
"dwd_balance_before": "199.00",
"ods_balance_before": "199.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-191.00",
"ods_change_amount": "-191.00",
"dwd_change_time": "2025-07-21T15:41:03+08:00",
"ods_change_time": "2025-07-21 15:41:03",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800328508984197,
"dwd_balance_after": "0.00",
"ods_balance_after": "0.00",
"dwd_balance_before": "8.00",
"ods_balance_before": "8.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-8.00",
"ods_change_amount": "-8.00",
"dwd_change_time": "2025-07-21T15:41:30+08:00",
"ods_change_time": "2025-07-21 15:41:30",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800329356315525,
"dwd_balance_after": "1957.00",
"ods_balance_after": "1957.00",
"dwd_balance_before": "2027.00",
"ods_balance_before": "2027.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-70.00",
"ods_change_amount": "-70.00",
"dwd_change_time": "2025-07-21T15:42:22+08:00",
"ods_change_time": "2025-07-21 15:42:22",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "13503045590",
"ods_member_mobile": "13503045590",
"dwd_member_name": "程允立",
"ods_member_name": "程允立"
},
{
"balance_change_id": 2800330000272261,
"dwd_balance_after": "1095.00",
"ods_balance_after": "1095.00",
"dwd_balance_before": "1162.00",
"ods_balance_before": "1162.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-67.00",
"ods_change_amount": "-67.00",
"dwd_change_time": "2025-07-21T15:43:01+08:00",
"ods_change_time": "2025-07-21 15:43:01",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "18689418682",
"ods_member_mobile": "18689418682",
"dwd_member_name": "易先生",
"ods_member_name": "易先生"
},
{
"balance_change_id": 2800331271129989,
"dwd_balance_after": "515.00",
"ods_balance_after": "515.00",
"dwd_balance_before": "175.00",
"ods_balance_before": "175.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "340.00",
"ods_change_amount": "340.00",
"dwd_change_time": "2025-07-21T15:44:19+08:00",
"ods_change_time": "2025-07-21 15:44:19",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19152047230",
"ods_member_mobile": "19152047230",
"dwd_member_name": "小唯",
"ods_member_name": "小唯"
}
]
```

View File

@@ -1,335 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-20T07:21:53.320578+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 38/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ✅ | 15 | 15 | 0 | 0 | 295 | 1266 | |
| dwd.dim_assistant_ex | ✅ | 44 | 44 | 0 | 0 | 295 | 1251 | |
| dwd.dim_goods_category | ✅ | 12 | 12 | 0 | 0 | 18 | 125 | |
| dwd.dim_groupbuy_package | ✅ | 18 | 18 | 0 | 0 | 70 | 373 | |
| dwd.dim_groupbuy_package_ex | ✅ | 21 | 21 | 0 | 0 | 70 | 373 | |
| dwd.dim_member | ❌ | 12 | 11 | 1 | 0 | 1771 | 10801 | |
| dwd.dim_member_card_account | ✅ | 19 | 19 | 0 | 0 | 2973 | 18370 | |
| dwd.dim_member_card_account_ex | ✅ | 57 | 57 | 0 | 0 | 2973 | 18172 | |
| dwd.dim_member_ex | ✅ | 10 | 10 | 0 | 0 | 1771 | 10770 | |
| dwd.dim_site | ✅ | 13 | 13 | 0 | 0 | 38585 | 55 | |
| dwd.dim_site_ex | ✅ | 21 | 21 | 0 | 0 | 38585 | 55 | |
| dwd.dim_store_goods | ✅ | 22 | 22 | 0 | 0 | 1744 | 5444 | |
| dwd.dim_store_goods_ex | ✅ | 26 | 26 | 0 | 0 | 1744 | 5402 | |
| dwd.dim_table | ✅ | 8 | 8 | 0 | 0 | 1074 | 2881 | |
| dwd.dim_table_ex | ✅ | 20 | 20 | 0 | 0 | 1074 | 3035 | |
| dwd.dim_tenant_goods | ✅ | 15 | 15 | 0 | 0 | 353 | 2018 | |
| dwd.dim_tenant_goods_ex | ✅ | 18 | 18 | 0 | 0 | 353 | 2016 | |
| dwd.dwd_assistant_service_log | ✅ | 33 | 33 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_service_log_ex | ✅ | 31 | 31 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_trash_event | ✅ | 11 | 11 | 0 | 0 | 100 | 100 | |
| dwd.dwd_assistant_trash_event_ex | ✅ | 3 | 3 | 0 | 0 | 100 | 100 | |
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_movement 不存在或无列 |
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_summary 不存在或无列 |
| dwd.dwd_groupbuy_redemption | ✅ | 25 | 25 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_groupbuy_redemption_ex | ✅ | 28 | 28 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_member_balance_change | ❌ | 22 | 21 | 1 | 0 | 9684 | 5081 | |
| dwd.dwd_member_balance_change_ex | ✅ | 7 | 7 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_payment | ✅ | 12 | 12 | 0 | 0 | 36006 | 24922 | |
| dwd.dwd_platform_coupon_redemption | ✅ | 20 | 20 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_platform_coupon_redemption_ex | ✅ | 6 | 6 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_recharge_order | ✅ | 24 | 24 | 0 | 0 | 3333 | 485 | |
| dwd.dwd_recharge_order_ex | ✅ | 43 | 43 | 0 | 0 | 3333 | 485 | |
| dwd.dwd_refund | ✅ | 12 | 12 | 0 | 0 | 83 | 51 | |
| dwd.dwd_refund_ex | ✅ | 20 | 20 | 0 | 0 | 83 | 51 | |
| dwd.dwd_settlement_head | ✅ | 37 | 37 | 0 | 0 | 55457 | 26115 | |
| dwd.dwd_settlement_head_ex | ✅ | 30 | 30 | 0 | 0 | 55457 | 26115 | |
| dwd.dwd_store_goods_sale | ✅ | 24 | 24 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_store_goods_sale_ex | ✅ | 28 | 28 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_table_fee_adjust | ✅ | 16 | 16 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_adjust_ex | ✅ | 13 | 13 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_log | ✅ | 29 | 29 | 0 | 0 | 38585 | 20132 | |
| dwd.dwd_table_fee_log_ex | ✅ | 13 | 13 | 0 | 0 | 38585 | 20132 | |
### dwd.dim_member — 映射异常明细
- `update_time` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"member_id": 2860039721438277,
"dwd_create_time": "2025-09-01T20:02:53+08:00",
"ods_create_time": "2025-09-01 20:02:53",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "13189179882",
"ods_mobile": "13189179882",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-788.37",
"ods_pay_money_sum": "-788.37",
"dwd_recharge_money_sum": "2716.00",
"ods_recharge_money_sum": "2716.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799207107888901,
"ods_system_member_id": "2799207107888901",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 3066773303512389,
"dwd_create_time": "2026-01-25T21:03:10+08:00",
"ods_create_time": "2026-01-25 21:03:10",
"dwd_member_card_grade_code": 2790683528022856,
"ods_member_card_grade_code": "2790683528022856",
"dwd_member_card_grade_name": "活动抵用券",
"ods_member_card_grade_name": "活动抵用券",
"dwd_mobile": "17306741548",
"ods_mobile": "17306741548",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-188.00",
"ods_pay_money_sum": "-188.00",
"dwd_recharge_money_sum": "188.00",
"ods_recharge_money_sum": "188.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 3066773300268357,
"ods_system_member_id": "3066773300268357",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2966381620874693,
"dwd_create_time": "2025-11-15T22:59:28+08:00",
"ods_create_time": "2025-11-15 22:59:28",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "15915866234",
"ods_mobile": "15915866234",
"dwd_nickname": "尤",
"ods_nickname": "尤",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "200.00",
"ods_recharge_money_sum": "200.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2966381618761157,
"ods_system_member_id": "2966381618761157",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2807525094639429,
"dwd_create_time": "2025-07-26T17:42:15+08:00",
"ods_create_time": "2025-07-26 17:42:15",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "15802496094",
"ods_mobile": "15802496094",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2807525093623621,
"ods_system_member_id": "2807525093623621",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2799212423857925,
"dwd_create_time": "2025-07-20T20:46:10+08:00",
"ods_create_time": "2025-07-20 20:46:10",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "18148713553",
"ods_mobile": "18148713553",
"dwd_nickname": "潘",
"ods_nickname": "潘",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799212422907653,
"ods_system_member_id": "2799212422907653",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
}
]
```
### dwd.dwd_member_balance_change — 映射异常明细
- `principal_change_amount` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"balance_change_id": 2800328071170949,
"dwd_balance_after": "8.00",
"ods_balance_after": "8.00",
"dwd_balance_before": "199.00",
"ods_balance_before": "199.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-191.00",
"ods_change_amount": "-191.00",
"dwd_change_time": "2025-07-21T15:41:03+08:00",
"ods_change_time": "2025-07-21 15:41:03",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800328508984197,
"dwd_balance_after": "0.00",
"ods_balance_after": "0.00",
"dwd_balance_before": "8.00",
"ods_balance_before": "8.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-8.00",
"ods_change_amount": "-8.00",
"dwd_change_time": "2025-07-21T15:41:30+08:00",
"ods_change_time": "2025-07-21 15:41:30",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800329356315525,
"dwd_balance_after": "1957.00",
"ods_balance_after": "1957.00",
"dwd_balance_before": "2027.00",
"ods_balance_before": "2027.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-70.00",
"ods_change_amount": "-70.00",
"dwd_change_time": "2025-07-21T15:42:22+08:00",
"ods_change_time": "2025-07-21 15:42:22",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "13503045590",
"ods_member_mobile": "13503045590",
"dwd_member_name": "程允立",
"ods_member_name": "程允立"
},
{
"balance_change_id": 2800330000272261,
"dwd_balance_after": "1095.00",
"ods_balance_after": "1095.00",
"dwd_balance_before": "1162.00",
"ods_balance_before": "1162.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-67.00",
"ods_change_amount": "-67.00",
"dwd_change_time": "2025-07-21T15:43:01+08:00",
"ods_change_time": "2025-07-21 15:43:01",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "18689418682",
"ods_member_mobile": "18689418682",
"dwd_member_name": "易先生",
"ods_member_name": "易先生"
},
{
"balance_change_id": 2800331271129989,
"dwd_balance_after": "515.00",
"ods_balance_after": "515.00",
"dwd_balance_before": "175.00",
"ods_balance_before": "175.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "340.00",
"ods_change_amount": "340.00",
"dwd_change_time": "2025-07-21T15:44:19+08:00",
"ods_change_time": "2025-07-21 15:44:19",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19152047230",
"ods_member_mobile": "19152047230",
"dwd_member_name": "小唯",
"ods_member_name": "小唯"
}
]
```

View File

@@ -1,335 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-20T07:35:49.899418+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 38/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ✅ | 15 | 15 | 0 | 0 | 295 | 1266 | |
| dwd.dim_assistant_ex | ✅ | 44 | 44 | 0 | 0 | 295 | 1251 | |
| dwd.dim_goods_category | ✅ | 12 | 12 | 0 | 0 | 18 | 125 | |
| dwd.dim_groupbuy_package | ✅ | 18 | 18 | 0 | 0 | 70 | 373 | |
| dwd.dim_groupbuy_package_ex | ✅ | 21 | 21 | 0 | 0 | 70 | 373 | |
| dwd.dim_member | ❌ | 12 | 11 | 1 | 0 | 1771 | 10801 | |
| dwd.dim_member_card_account | ✅ | 19 | 19 | 0 | 0 | 2973 | 18370 | |
| dwd.dim_member_card_account_ex | ✅ | 57 | 57 | 0 | 0 | 2973 | 18172 | |
| dwd.dim_member_ex | ✅ | 10 | 10 | 0 | 0 | 1771 | 10770 | |
| dwd.dim_site | ✅ | 13 | 13 | 0 | 0 | 38585 | 55 | |
| dwd.dim_site_ex | ✅ | 21 | 21 | 0 | 0 | 38585 | 55 | |
| dwd.dim_store_goods | ✅ | 22 | 22 | 0 | 0 | 1744 | 5444 | |
| dwd.dim_store_goods_ex | ✅ | 26 | 26 | 0 | 0 | 1744 | 5402 | |
| dwd.dim_table | ✅ | 8 | 8 | 0 | 0 | 1074 | 2881 | |
| dwd.dim_table_ex | ✅ | 20 | 20 | 0 | 0 | 1074 | 3035 | |
| dwd.dim_tenant_goods | ✅ | 15 | 15 | 0 | 0 | 353 | 2018 | |
| dwd.dim_tenant_goods_ex | ✅ | 18 | 18 | 0 | 0 | 353 | 2016 | |
| dwd.dwd_assistant_service_log | ✅ | 33 | 33 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_service_log_ex | ✅ | 31 | 31 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_trash_event | ✅ | 11 | 11 | 0 | 0 | 100 | 100 | |
| dwd.dwd_assistant_trash_event_ex | ✅ | 3 | 3 | 0 | 0 | 100 | 100 | |
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_movement 不存在或无列 |
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_summary 不存在或无列 |
| dwd.dwd_groupbuy_redemption | ✅ | 25 | 25 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_groupbuy_redemption_ex | ✅ | 28 | 28 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_member_balance_change | ❌ | 22 | 21 | 1 | 0 | 9684 | 5081 | |
| dwd.dwd_member_balance_change_ex | ✅ | 7 | 7 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_payment | ✅ | 12 | 12 | 0 | 0 | 36006 | 24922 | |
| dwd.dwd_platform_coupon_redemption | ✅ | 20 | 20 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_platform_coupon_redemption_ex | ✅ | 6 | 6 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_recharge_order | ✅ | 24 | 24 | 0 | 0 | 3333 | 485 | |
| dwd.dwd_recharge_order_ex | ✅ | 43 | 43 | 0 | 0 | 3333 | 485 | |
| dwd.dwd_refund | ✅ | 12 | 12 | 0 | 0 | 83 | 51 | |
| dwd.dwd_refund_ex | ✅ | 20 | 20 | 0 | 0 | 83 | 51 | |
| dwd.dwd_settlement_head | ✅ | 37 | 37 | 0 | 0 | 55457 | 26115 | |
| dwd.dwd_settlement_head_ex | ✅ | 30 | 30 | 0 | 0 | 55457 | 26115 | |
| dwd.dwd_store_goods_sale | ✅ | 24 | 24 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_store_goods_sale_ex | ✅ | 28 | 28 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_table_fee_adjust | ✅ | 16 | 16 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_adjust_ex | ✅ | 13 | 13 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_log | ✅ | 29 | 29 | 0 | 0 | 38585 | 20132 | |
| dwd.dwd_table_fee_log_ex | ✅ | 13 | 13 | 0 | 0 | 38585 | 20132 | |
### dwd.dim_member — 映射异常明细
- `update_time` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"member_id": 2860039721438277,
"dwd_create_time": "2025-09-01T20:02:53+08:00",
"ods_create_time": "2025-09-01 20:02:53",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "13189179882",
"ods_mobile": "13189179882",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-788.37",
"ods_pay_money_sum": "-788.37",
"dwd_recharge_money_sum": "2716.00",
"ods_recharge_money_sum": "2716.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799207107888901,
"ods_system_member_id": "2799207107888901",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 3066773303512389,
"dwd_create_time": "2026-01-25T21:03:10+08:00",
"ods_create_time": "2026-01-25 21:03:10",
"dwd_member_card_grade_code": 2790683528022856,
"ods_member_card_grade_code": "2790683528022856",
"dwd_member_card_grade_name": "活动抵用券",
"ods_member_card_grade_name": "活动抵用券",
"dwd_mobile": "17306741548",
"ods_mobile": "17306741548",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-188.00",
"ods_pay_money_sum": "-188.00",
"dwd_recharge_money_sum": "188.00",
"ods_recharge_money_sum": "188.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 3066773300268357,
"ods_system_member_id": "3066773300268357",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2966381620874693,
"dwd_create_time": "2025-11-15T22:59:28+08:00",
"ods_create_time": "2025-11-15 22:59:28",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "15915866234",
"ods_mobile": "15915866234",
"dwd_nickname": "尤",
"ods_nickname": "尤",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "200.00",
"ods_recharge_money_sum": "200.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2966381618761157,
"ods_system_member_id": "2966381618761157",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2807525094639429,
"dwd_create_time": "2025-07-26T17:42:15+08:00",
"ods_create_time": "2025-07-26 17:42:15",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "15802496094",
"ods_mobile": "15802496094",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2807525093623621,
"ods_system_member_id": "2807525093623621",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2799212423857925,
"dwd_create_time": "2025-07-20T20:46:10+08:00",
"ods_create_time": "2025-07-20 20:46:10",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "18148713553",
"ods_mobile": "18148713553",
"dwd_nickname": "潘",
"ods_nickname": "潘",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799212422907653,
"ods_system_member_id": "2799212422907653",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
}
]
```
### dwd.dwd_member_balance_change — 映射异常明细
- `principal_change_amount` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"balance_change_id": 2800328071170949,
"dwd_balance_after": "8.00",
"ods_balance_after": "8.00",
"dwd_balance_before": "199.00",
"ods_balance_before": "199.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-191.00",
"ods_change_amount": "-191.00",
"dwd_change_time": "2025-07-21T15:41:03+08:00",
"ods_change_time": "2025-07-21 15:41:03",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800328508984197,
"dwd_balance_after": "0.00",
"ods_balance_after": "0.00",
"dwd_balance_before": "8.00",
"ods_balance_before": "8.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-8.00",
"ods_change_amount": "-8.00",
"dwd_change_time": "2025-07-21T15:41:30+08:00",
"ods_change_time": "2025-07-21 15:41:30",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800329356315525,
"dwd_balance_after": "1957.00",
"ods_balance_after": "1957.00",
"dwd_balance_before": "2027.00",
"ods_balance_before": "2027.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-70.00",
"ods_change_amount": "-70.00",
"dwd_change_time": "2025-07-21T15:42:22+08:00",
"ods_change_time": "2025-07-21 15:42:22",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "13503045590",
"ods_member_mobile": "13503045590",
"dwd_member_name": "程允立",
"ods_member_name": "程允立"
},
{
"balance_change_id": 2800330000272261,
"dwd_balance_after": "1095.00",
"ods_balance_after": "1095.00",
"dwd_balance_before": "1162.00",
"ods_balance_before": "1162.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-67.00",
"ods_change_amount": "-67.00",
"dwd_change_time": "2025-07-21T15:43:01+08:00",
"ods_change_time": "2025-07-21 15:43:01",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "18689418682",
"ods_member_mobile": "18689418682",
"dwd_member_name": "易先生",
"ods_member_name": "易先生"
},
{
"balance_change_id": 2800331271129989,
"dwd_balance_after": "515.00",
"ods_balance_after": "515.00",
"dwd_balance_before": "175.00",
"ods_balance_before": "175.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "340.00",
"ods_change_amount": "340.00",
"dwd_change_time": "2025-07-21T15:44:19+08:00",
"ods_change_time": "2025-07-21 15:44:19",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19152047230",
"ods_member_mobile": "19152047230",
"dwd_member_name": "小唯",
"ods_member_name": "小唯"
}
]
```

View File

@@ -1,335 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-20T09:13:56.727591+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 38/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ✅ | 15 | 15 | 0 | 0 | 295 | 1266 | |
| dwd.dim_assistant_ex | ✅ | 44 | 44 | 0 | 0 | 295 | 1251 | |
| dwd.dim_goods_category | ✅ | 12 | 12 | 0 | 0 | 18 | 125 | |
| dwd.dim_groupbuy_package | ✅ | 18 | 18 | 0 | 0 | 70 | 373 | |
| dwd.dim_groupbuy_package_ex | ✅ | 21 | 21 | 0 | 0 | 70 | 373 | |
| dwd.dim_member | ❌ | 12 | 11 | 1 | 0 | 1771 | 10801 | |
| dwd.dim_member_card_account | ✅ | 19 | 19 | 0 | 0 | 2973 | 18370 | |
| dwd.dim_member_card_account_ex | ✅ | 57 | 57 | 0 | 0 | 2973 | 18172 | |
| dwd.dim_member_ex | ✅ | 10 | 10 | 0 | 0 | 1771 | 10770 | |
| dwd.dim_site | ✅ | 13 | 13 | 0 | 0 | 38585 | 55 | |
| dwd.dim_site_ex | ✅ | 21 | 21 | 0 | 0 | 38585 | 55 | |
| dwd.dim_store_goods | ✅ | 22 | 22 | 0 | 0 | 1789 | 5444 | |
| dwd.dim_store_goods_ex | ✅ | 26 | 26 | 0 | 0 | 1789 | 5402 | |
| dwd.dim_table | ✅ | 8 | 8 | 0 | 0 | 1074 | 2881 | |
| dwd.dim_table_ex | ✅ | 20 | 20 | 0 | 0 | 1074 | 3035 | |
| dwd.dim_tenant_goods | ✅ | 15 | 15 | 0 | 0 | 353 | 2018 | |
| dwd.dim_tenant_goods_ex | ✅ | 18 | 18 | 0 | 0 | 353 | 2016 | |
| dwd.dwd_assistant_service_log | ✅ | 33 | 33 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_service_log_ex | ✅ | 31 | 31 | 0 | 0 | 10219 | 5281 | |
| dwd.dwd_assistant_trash_event | ✅ | 11 | 11 | 0 | 0 | 178 | 100 | |
| dwd.dwd_assistant_trash_event_ex | ✅ | 3 | 3 | 0 | 0 | 178 | 100 | |
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_movement 不存在或无列 |
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | DWD 表 dwd.dwd_goods_stock_summary 不存在或无列 |
| dwd.dwd_groupbuy_redemption | ✅ | 25 | 25 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_groupbuy_redemption_ex | ✅ | 28 | 28 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_member_balance_change | ❌ | 22 | 21 | 1 | 0 | 9684 | 5081 | |
| dwd.dwd_member_balance_change_ex | ✅ | 7 | 7 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_payment | ✅ | 12 | 12 | 0 | 0 | 36006 | 24922 | |
| dwd.dwd_platform_coupon_redemption | ✅ | 20 | 20 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_platform_coupon_redemption_ex | ✅ | 6 | 6 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_recharge_order | ✅ | 24 | 24 | 0 | 0 | 3527 | 485 | |
| dwd.dwd_recharge_order_ex | ✅ | 43 | 43 | 0 | 0 | 3527 | 485 | |
| dwd.dwd_refund | ✅ | 12 | 12 | 0 | 0 | 83 | 51 | |
| dwd.dwd_refund_ex | ✅ | 20 | 20 | 0 | 0 | 83 | 51 | |
| dwd.dwd_settlement_head | ✅ | 37 | 37 | 0 | 0 | 66073 | 26115 | |
| dwd.dwd_settlement_head_ex | ✅ | 30 | 30 | 0 | 0 | 66073 | 26115 | |
| dwd.dwd_store_goods_sale | ✅ | 24 | 24 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_store_goods_sale_ex | ✅ | 28 | 28 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_table_fee_adjust | ✅ | 16 | 16 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_adjust_ex | ✅ | 13 | 13 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_log | ✅ | 29 | 29 | 0 | 0 | 38585 | 20132 | |
| dwd.dwd_table_fee_log_ex | ✅ | 13 | 13 | 0 | 0 | 38585 | 20132 | |
### dwd.dim_member — 映射异常明细
- `update_time` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"member_id": 2860039721438277,
"dwd_create_time": "2025-09-01T20:02:53+08:00",
"ods_create_time": "2025-09-01 20:02:53",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "13189179882",
"ods_mobile": "13189179882",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-788.37",
"ods_pay_money_sum": "-788.37",
"dwd_recharge_money_sum": "2716.00",
"ods_recharge_money_sum": "2716.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799207107888901,
"ods_system_member_id": "2799207107888901",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 3066773303512389,
"dwd_create_time": "2026-01-25T21:03:10+08:00",
"ods_create_time": "2026-01-25 21:03:10",
"dwd_member_card_grade_code": 2790683528022856,
"ods_member_card_grade_code": "2790683528022856",
"dwd_member_card_grade_name": "活动抵用券",
"ods_member_card_grade_name": "活动抵用券",
"dwd_mobile": "17306741548",
"ods_mobile": "17306741548",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "-188.00",
"ods_pay_money_sum": "-188.00",
"dwd_recharge_money_sum": "188.00",
"ods_recharge_money_sum": "188.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 3066773300268357,
"ods_system_member_id": "3066773300268357",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2966381620874693,
"dwd_create_time": "2025-11-15T22:59:28+08:00",
"ods_create_time": "2025-11-15 22:59:28",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "15915866234",
"ods_mobile": "15915866234",
"dwd_nickname": "尤",
"ods_nickname": "尤",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "200.00",
"ods_recharge_money_sum": "200.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2966381618761157,
"ods_system_member_id": "2966381618761157",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2807525094639429,
"dwd_create_time": "2025-07-26T17:42:15+08:00",
"ods_create_time": "2025-07-26 17:42:15",
"dwd_member_card_grade_code": 2790683528022853,
"ods_member_card_grade_code": "2790683528022853",
"dwd_member_card_grade_name": "储值卡",
"ods_member_card_grade_name": "储值卡",
"dwd_mobile": "15802496094",
"ods_mobile": "15802496094",
"dwd_nickname": "李",
"ods_nickname": "李",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2807525093623621,
"ods_system_member_id": "2807525093623621",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
},
{
"member_id": 2799212423857925,
"dwd_create_time": "2025-07-20T20:46:10+08:00",
"ods_create_time": "2025-07-20 20:46:10",
"dwd_member_card_grade_code": 2790683528022855,
"ods_member_card_grade_code": "2790683528022855",
"dwd_member_card_grade_name": "台费卡",
"ods_member_card_grade_name": "台费卡",
"dwd_mobile": "18148713553",
"ods_mobile": "18148713553",
"dwd_nickname": "潘",
"ods_nickname": "潘",
"dwd_pay_money_sum": "0.00",
"ods_pay_money_sum": "0.00",
"dwd_recharge_money_sum": "0.00",
"ods_recharge_money_sum": "0.00",
"dwd_register_site_id": 2790685415443269,
"ods_register_site_id": "2790685415443269",
"dwd_system_member_id": 2799212422907653,
"ods_system_member_id": "2799212422907653",
"dwd_tenant_id": 2790683160709957,
"ods_tenant_id": "2790683160709957"
}
]
```
### dwd.dwd_member_balance_change — 映射异常明细
- `principal_change_amount` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
#### 值不一致采样(前 5 条)
```json
[
{
"balance_change_id": 2800328071170949,
"dwd_balance_after": "8.00",
"ods_balance_after": "8.00",
"dwd_balance_before": "199.00",
"ods_balance_before": "199.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-191.00",
"ods_change_amount": "-191.00",
"dwd_change_time": "2025-07-21T15:41:03+08:00",
"ods_change_time": "2025-07-21 15:41:03",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800328508984197,
"dwd_balance_after": "0.00",
"ods_balance_after": "0.00",
"dwd_balance_before": "8.00",
"ods_balance_before": "8.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-8.00",
"ods_change_amount": "-8.00",
"dwd_change_time": "2025-07-21T15:41:30+08:00",
"ods_change_time": "2025-07-21 15:41:30",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19120942851",
"ods_member_mobile": "19120942851",
"dwd_member_name": "夏",
"ods_member_name": "夏"
},
{
"balance_change_id": 2800329356315525,
"dwd_balance_after": "1957.00",
"ods_balance_after": "1957.00",
"dwd_balance_before": "2027.00",
"ods_balance_before": "2027.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-70.00",
"ods_change_amount": "-70.00",
"dwd_change_time": "2025-07-21T15:42:22+08:00",
"ods_change_time": "2025-07-21 15:42:22",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "13503045590",
"ods_member_mobile": "13503045590",
"dwd_member_name": "程允立",
"ods_member_name": "程允立"
},
{
"balance_change_id": 2800330000272261,
"dwd_balance_after": "1095.00",
"ods_balance_after": "1095.00",
"dwd_balance_before": "1162.00",
"ods_balance_before": "1162.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "-67.00",
"ods_change_amount": "-67.00",
"dwd_change_time": "2025-07-21T15:43:01+08:00",
"ods_change_time": "2025-07-21 15:43:01",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "18689418682",
"ods_member_mobile": "18689418682",
"dwd_member_name": "易先生",
"ods_member_name": "易先生"
},
{
"balance_change_id": 2800331271129989,
"dwd_balance_after": "515.00",
"ods_balance_after": "515.00",
"dwd_balance_before": "175.00",
"ods_balance_before": "175.00",
"dwd_card_type_id": 2793249295533893,
"ods_card_type_id": "2793249295533893",
"dwd_card_type_name": "储值卡",
"ods_card_type_name": "储值卡",
"dwd_change_amount": "340.00",
"ods_change_amount": "340.00",
"dwd_change_time": "2025-07-21T15:44:19+08:00",
"ods_change_time": "2025-07-21 15:44:19",
"dwd_from_type": 9,
"ods_from_type": "9",
"dwd_is_delete": 1,
"ods_is_delete": "1",
"dwd_member_mobile": "19152047230",
"ods_member_mobile": "19152047230",
"dwd_member_name": "小唯",
"ods_member_name": "小唯"
}
]
```

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T15:39:08.330965+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T19:30:15.876594+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T19:52:20.129042+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T20:08:55.483294+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T20:31:27.049664+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T21:14:42.451232+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T21:26:36.915408+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,125 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T21:34:59.812645+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 0/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_assistant_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_goods_category | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_groupbuy_package_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_card_account_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_member_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_site_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_store_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_table_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dim_tenant_goods_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_service_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_assistant_trash_event_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_movement | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_goods_stock_summary | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_groupbuy_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_member_balance_change_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_payment | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_platform_coupon_redemption_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_recharge_order_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_refund_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_settlement_head_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_store_goods_sale_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_adjust_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|
| dwd.dwd_table_fee_log_ex | ❌ | 0 | 0 | 0 | 0 | 0 | 0 | InFailedSqlTransaction: 错误: 当前事务被终止, 事务块结束之前的查询被忽略
|

View File

@@ -1,88 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T22:40:07.845381+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 41/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ✅ | 15 | 15 | 0 | 0 | 295 | 1404 | |
| dwd.dim_assistant_ex | ✅ | 48 | 48 | 0 | 0 | 295 | 1320 | |
| dwd.dim_goods_category | ✅ | 12 | 12 | 0 | 0 | 18 | 177 | |
| dwd.dim_groupbuy_package | ✅ | 18 | 18 | 0 | 0 | 70 | 441 | |
| dwd.dim_groupbuy_package_ex | ✅ | 21 | 21 | 0 | 0 | 70 | 441 | |
| dwd.dim_member | ✅ | 12 | 12 | 0 | 0 | 1771 | 11915 | |
| dwd.dim_member_card_account | ✅ | 19 | 19 | 0 | 0 | 2973 | 20262 | |
| dwd.dim_member_card_account_ex | ✅ | 57 | 57 | 0 | 0 | 2973 | 19118 | |
| dwd.dim_member_ex | ✅ | 10 | 10 | 0 | 0 | 1771 | 11884 | |
| dwd.dim_site | ✅ | 13 | 13 | 0 | 0 | 38585 | 57 | |
| dwd.dim_site_ex | ✅ | 21 | 21 | 0 | 0 | 38585 | 56 | |
| dwd.dim_store_goods | ✅ | 22 | 22 | 0 | 0 | 1829 | 5790 | |
| dwd.dim_store_goods_ex | ✅ | 28 | 28 | 0 | 0 | 1829 | 5748 | |
| dwd.dim_table | ✅ | 8 | 8 | 0 | 0 | 1074 | 3029 | |
| dwd.dim_table_ex | ✅ | 20 | 20 | 0 | 0 | 1074 | 3183 | |
| dwd.dim_tenant_goods | ✅ | 15 | 15 | 0 | 0 | 353 | 2366 | |
| dwd.dim_tenant_goods_ex | ✅ | 18 | 18 | 0 | 0 | 353 | 2364 | |
| dwd.dwd_assistant_service_log | ✅ | 33 | 33 | 0 | 0 | 12903 | 5297 | |
| dwd.dwd_assistant_service_log_ex | ✅ | 33 | 33 | 0 | 0 | 12903 | 5297 | |
| dwd.dwd_assistant_trash_event | ✅ | 11 | 11 | 0 | 0 | 178 | 100 | |
| dwd.dwd_assistant_trash_event_ex | ✅ | 4 | 4 | 0 | 0 | 178 | 100 | |
| dwd.dwd_goods_stock_movement | ✅ | 20 | 20 | 0 | 0 | 50162 | 14306 | |
| dwd.dwd_goods_stock_summary | ❌ | 17 | 15 | 2 | 0 | 2685 | 716 | |
| dwd.dwd_groupbuy_redemption | ✅ | 25 | 25 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_groupbuy_redemption_ex | ✅ | 28 | 28 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_member_balance_change | ✅ | 22 | 22 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_member_balance_change_ex | ✅ | 8 | 8 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_payment | ✅ | 12 | 12 | 0 | 0 | 36006 | 24922 | |
| dwd.dwd_platform_coupon_redemption | ✅ | 20 | 20 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_platform_coupon_redemption_ex | ✅ | 6 | 6 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_recharge_order | ✅ | 24 | 24 | 0 | 0 | 3527 | 485 | |
| dwd.dwd_recharge_order_ex | ✅ | 43 | 43 | 0 | 0 | 3527 | 485 | |
| dwd.dwd_refund | ✅ | 12 | 12 | 0 | 0 | 83 | 51 | |
| dwd.dwd_refund_ex | ✅ | 20 | 20 | 0 | 0 | 83 | 51 | |
| dwd.dwd_settlement_head | ✅ | 37 | 37 | 0 | 0 | 66073 | 26435 | |
| dwd.dwd_settlement_head_ex | ✅ | 30 | 30 | 0 | 0 | 66073 | 26435 | |
| dwd.dwd_store_goods_sale | ✅ | 25 | 25 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_store_goods_sale_ex | ✅ | 28 | 28 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_table_fee_adjust | ✅ | 16 | 16 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_adjust_ex | ✅ | 13 | 13 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_log | ✅ | 29 | 29 | 0 | 0 | 38585 | 20132 | |
| dwd.dwd_table_fee_log_ex | ✅ | 13 | 13 | 0 | 0 | 38585 | 20132 | |
### dwd.dwd_goods_stock_summary — 映射异常明细
- `site_id` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
- `tenant_id` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)

View File

@@ -1,88 +0,0 @@
# 数据一致性黑盒测试报告
生成时间: 2026-02-21T22:49:54.514754+08:00
总体结果: **❌ 存在异常**
## 汇总
- API vs ODS 字段完整性: 22/22 张表通过
- ODS vs DWD 映射正确性: 41/42 张表通过
## API vs ODS 字段完整性检查
| 表名 | 状态 | 总字段 | 通过 | 缺失 | 备注 |
|------|------|--------|------|------|------|
| ods.assistant_accounts_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_accounts_master.json |
| ods.assistant_cancellation_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_cancellation_records.json |
| ods.assistant_service_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: assistant_service_records.json |
| ods.goods_stock_movements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_movements.json |
| ods.goods_stock_summary | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: goods_stock_summary.json |
| ods.group_buy_packages | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_packages.json |
| ods.group_buy_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: group_buy_redemption_records.json |
| ods.member_balance_changes | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_balance_changes.json |
| ods.member_profiles | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_profiles.json |
| ods.member_stored_value_cards | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: member_stored_value_cards.json |
| ods.payment_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: payment_transactions.json |
| ods.platform_coupon_redemption_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: platform_coupon_redemption_records.json |
| ods.recharge_settlements | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: recharge_settlements.json |
| ods.refund_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: refund_transactions.json |
| ods.settlement_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: settlement_records.json |
| ods.site_tables_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: site_tables_master.json |
| ods.stock_goods_category_tree | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: stock_goods_category_tree.json |
| ods.store_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_master.json |
| ods.store_goods_sales_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: store_goods_sales_records.json |
| ods.table_fee_discount_records | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_discount_records.json |
| ods.table_fee_transactions | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: table_fee_transactions.json |
| ods.tenant_goods_master | ✅ | 0 | 0 | 0 | API JSON 缓存不存在: tenant_goods_master.json |
## ODS vs DWD 映射正确性检查
| DWD 表 | 状态 | 总字段 | 通过 | 缺失 | 不一致 | ODS 行数 | DWD 行数 | 备注 |
|--------|------|--------|------|------|--------|----------|----------|------|
| dwd.dim_assistant | ✅ | 15 | 15 | 0 | 0 | 295 | 1473 | |
| dwd.dim_assistant_ex | ✅ | 48 | 48 | 0 | 0 | 295 | 1389 | |
| dwd.dim_goods_category | ✅ | 12 | 12 | 0 | 0 | 18 | 203 | |
| dwd.dim_groupbuy_package | ✅ | 18 | 18 | 0 | 0 | 70 | 475 | |
| dwd.dim_groupbuy_package_ex | ✅ | 21 | 21 | 0 | 0 | 70 | 475 | |
| dwd.dim_member | ✅ | 12 | 12 | 0 | 0 | 1771 | 12472 | |
| dwd.dim_member_card_account | ✅ | 19 | 19 | 0 | 0 | 2973 | 21208 | |
| dwd.dim_member_card_account_ex | ✅ | 57 | 57 | 0 | 0 | 2973 | 20064 | |
| dwd.dim_member_ex | ✅ | 10 | 10 | 0 | 0 | 1771 | 12441 | |
| dwd.dim_site | ✅ | 13 | 13 | 0 | 0 | 38585 | 58 | |
| dwd.dim_site_ex | ✅ | 21 | 21 | 0 | 0 | 38585 | 57 | |
| dwd.dim_store_goods | ✅ | 22 | 22 | 0 | 0 | 1829 | 5963 | |
| dwd.dim_store_goods_ex | ✅ | 28 | 28 | 0 | 0 | 1829 | 5921 | |
| dwd.dim_table | ✅ | 8 | 8 | 0 | 0 | 1074 | 3103 | |
| dwd.dim_table_ex | ✅ | 20 | 20 | 0 | 0 | 1074 | 3257 | |
| dwd.dim_tenant_goods | ✅ | 15 | 15 | 0 | 0 | 353 | 2540 | |
| dwd.dim_tenant_goods_ex | ✅ | 18 | 18 | 0 | 0 | 353 | 2538 | |
| dwd.dwd_assistant_service_log | ✅ | 33 | 33 | 0 | 0 | 12903 | 5297 | |
| dwd.dwd_assistant_service_log_ex | ✅ | 33 | 33 | 0 | 0 | 12903 | 5297 | |
| dwd.dwd_assistant_trash_event | ✅ | 11 | 11 | 0 | 0 | 178 | 100 | |
| dwd.dwd_assistant_trash_event_ex | ✅ | 4 | 4 | 0 | 0 | 178 | 100 | |
| dwd.dwd_goods_stock_movement | ✅ | 20 | 20 | 0 | 0 | 50162 | 14306 | |
| dwd.dwd_goods_stock_summary | ❌ | 17 | 15 | 2 | 0 | 2685 | 716 | |
| dwd.dwd_groupbuy_redemption | ✅ | 25 | 25 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_groupbuy_redemption_ex | ✅ | 28 | 28 | 0 | 0 | 27284 | 12768 | |
| dwd.dwd_member_balance_change | ✅ | 22 | 22 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_member_balance_change_ex | ✅ | 8 | 8 | 0 | 0 | 9684 | 5081 | |
| dwd.dwd_payment | ✅ | 12 | 12 | 0 | 0 | 36006 | 24922 | |
| dwd.dwd_platform_coupon_redemption | ✅ | 20 | 20 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_platform_coupon_redemption_ex | ✅ | 6 | 6 | 0 | 0 | 36678 | 18311 | |
| dwd.dwd_recharge_order | ✅ | 24 | 24 | 0 | 0 | 3527 | 485 | |
| dwd.dwd_recharge_order_ex | ✅ | 43 | 43 | 0 | 0 | 3527 | 485 | |
| dwd.dwd_refund | ✅ | 12 | 12 | 0 | 0 | 83 | 51 | |
| dwd.dwd_refund_ex | ✅ | 20 | 20 | 0 | 0 | 83 | 51 | |
| dwd.dwd_settlement_head | ✅ | 37 | 37 | 0 | 0 | 66073 | 26435 | |
| dwd.dwd_settlement_head_ex | ✅ | 30 | 30 | 0 | 0 | 66073 | 26435 | |
| dwd.dwd_store_goods_sale | ✅ | 25 | 25 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_store_goods_sale_ex | ✅ | 28 | 28 | 0 | 0 | 17563 | 17563 | |
| dwd.dwd_table_fee_adjust | ✅ | 16 | 16 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_adjust_ex | ✅ | 13 | 13 | 0 | 0 | 4818 | 3124 | |
| dwd.dwd_table_fee_log | ✅ | 29 | 29 | 0 | 0 | 38585 | 20132 | |
| dwd.dwd_table_fee_log_ex | ✅ | 13 | 13 | 0 | 0 | 38585 | 20132 | |
### dwd.dwd_goods_stock_summary — 映射异常明细
- `site_id` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)
- `tenant_id` [missing]: DWD 列无 ODS 映射源(无显式映射且无同名 ODS 列)

View File

@@ -1,57 +0,0 @@
# 上下文交接字段级数据质量分析任务2
## 当前状态
字段级采样报告已生成,但用户认为还不够细致,需要继续深化。
## 已完成
- 字段级采样脚本:`scripts/ops/field_level_report.py`v2 性能优化版,每表 1~2 条 SQL
- 报告产出:`export/ETL-Connectors/feiqiu/REPORTS/field_level_report_20260220_233432.md`197KB95 张表2622 个字段)
- 覆盖范围ODS 23 表 / DWD 40 表 / DWS 32 表
- 每字段统计类型、NULL率、数值 min/max/avg、日期范围、文本长度范围、布尔分布
- 大表(>3000行跳过 COUNT DISTINCT标记为 `-`),小表精确计算
## 已发现的数据质量问题
1. `dws.dws_order_summary.order_original_amount` 出现 -44000 负值(疑似退款/异常订单)
2. `member_flag``recharge_order_flag` 全部 FALSE12920 行),标记字段可能未正确计算
3. 多张 `_ex` 表存在 `year -1` 异常日期值(上游 API 脏数据,脚本已用 `::text` 比较绕过)
4. 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 SUCCDWD SUCC3 INDEX SUCCWBI/NCI/ORDER_SUMMARY1 INDEX FAILRELATION_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` — FlowRunner
- `apps/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)`,快照模式
- DWDdim 表 SCD2fact 表 `dwd_*`(非 `fact_*`),扩展属性在 `*_ex`
- DWSdelete-before-insert 幂等,无游标
- 输出路径从 `.env``ETL_REPORT_ROOT` 读取

View File

@@ -1,152 +0,0 @@
# DDL vs 数据库一致性检查报告
生成时间2026-02-21 21:22:55
数据库test_etl_feiqiu
DDL 文件ods.sql, dwd.sql, dws.sql, meta.sql
## 概览
| 指标 | 数量 |
|------|------|
| DDL 定义表数 | 99 |
| DB 实际表数 | 99 |
| 完全匹配 | 99 |
| DDL 有但 DB 缺失 | 0 |
| DB 有但 DDL 缺失 | 0 |
## 差异详情15 项)
### dwd.dim_store_goods_ex
类型不匹配batch_stock_quantity DDL=integer DB=numeric
### dwd.dwd_refund_ex
DB 有但 DDL 缺失的列:['check_status']
### dws.dws_assistant_daily_detail
DB 有但 DDL 缺失的列:['unique_customers', 'unique_tables']
### dws.dws_assistant_finance_analysis
DB 有但 DDL 缺失的列:['unique_customers']
### dws.dws_assistant_monthly_summary
DB 有但 DDL 缺失的列:['unique_customers', 'unique_tables']
### ods.refund_transactions
DB 有但 DDL 缺失的列:['check_status']
### ods.site_tables_master
DDL 有但 DB 缺失的列:['appletqrcodeurl']
DB 有但 DDL 缺失的列:['appletQrCodeUrl']
## 索引概览
数据库中共 343 个索引,覆盖 107 张表。
- dwd.dim_assistant: 4 个索引
- dwd.dim_assistant_ex: 6 个索引
- dwd.dim_goods_category: 4 个索引
- dwd.dim_groupbuy_package: 6 个索引
- dwd.dim_groupbuy_package_ex: 4 个索引
- dwd.dim_member: 6 个索引
- dwd.dim_member_card_account: 4 个索引
- dwd.dim_member_card_account_ex: 6 个索引
- dwd.dim_member_ex: 4 个索引
- dwd.dim_site: 4 个索引
- dwd.dim_site_ex: 6 个索引
- dwd.dim_store_goods: 4 个索引
- dwd.dim_store_goods_ex: 4 个索引
- dwd.dim_table: 4 个索引
- dwd.dim_table_ex: 4 个索引
- dwd.dim_tenant_goods: 6 个索引
- dwd.dim_tenant_goods_ex: 4 个索引
- dwd.dwd_assistant_service_log: 5 个索引
- dwd.dwd_assistant_service_log_ex: 1 个索引
- dwd.dwd_assistant_trash_event: 3 个索引
- dwd.dwd_assistant_trash_event_ex: 1 个索引
- dwd.dwd_goods_stock_movement: 1 个索引
- dwd.dwd_goods_stock_summary: 1 个索引
- dwd.dwd_groupbuy_redemption: 3 个索引
- dwd.dwd_groupbuy_redemption_ex: 1 个索引
- dwd.dwd_member_balance_change: 1 个索引
- dwd.dwd_member_balance_change_ex: 1 个索引
- dwd.dwd_payment: 5 个索引
- dwd.dwd_platform_coupon_redemption: 3 个索引
- dwd.dwd_platform_coupon_redemption_ex: 1 个索引
- dwd.dwd_recharge_order: 5 个索引
- dwd.dwd_recharge_order_ex: 1 个索引
- dwd.dwd_refund: 5 个索引
- dwd.dwd_refund_ex: 1 个索引
- dwd.dwd_settlement_head: 5 个索引
- dwd.dwd_settlement_head_ex: 1 个索引
- dwd.dwd_store_goods_sale: 3 个索引
- dwd.dwd_store_goods_sale_ex: 1 个索引
- dwd.dwd_table_fee_adjust: 1 个索引
- dwd.dwd_table_fee_adjust_ex: 1 个索引
- dwd.dwd_table_fee_log: 5 个索引
- dwd.dwd_table_fee_log_ex: 1 个索引
- dws.cfg_area_category: 3 个索引
- dws.cfg_assistant_level_price: 3 个索引
- dws.cfg_bonus_rules: 4 个索引
- dws.cfg_index_parameters: 4 个索引
- dws.cfg_performance_tier: 3 个索引
- dws.cfg_skill_type: 3 个索引
- dws.dws_assistant_customer_stats: 5 个索引
- dws.dws_assistant_daily_detail: 5 个索引
- dws.dws_assistant_finance_analysis: 4 个索引
- dws.dws_assistant_monthly_summary: 5 个索引
- dws.dws_assistant_recharge_commission: 4 个索引
- dws.dws_assistant_salary_calc: 4 个索引
- dws.dws_finance_daily_summary: 4 个索引
- dws.dws_finance_discount_detail: 4 个索引
- dws.dws_finance_expense_summary: 5 个索引
- dws.dws_finance_income_structure: 4 个索引
- dws.dws_finance_recharge_summary: 3 个索引
- dws.dws_goods_stock_daily_summary: 4 个索引
- dws.dws_goods_stock_monthly_summary: 4 个索引
- dws.dws_goods_stock_weekly_summary: 4 个索引
- dws.dws_index_percentile_history: 3 个索引
- dws.dws_member_assistant_intimacy: 4 个索引
- dws.dws_member_assistant_relation_index: 5 个索引
- dws.dws_member_consumption_summary: 5 个索引
- dws.dws_member_newconv_index: 3 个索引
- dws.dws_member_recall_index: 3 个索引
- dws.dws_member_visit_detail: 5 个索引
- dws.dws_member_winback_index: 3 个索引
- dws.dws_ml_manual_order_alloc: 4 个索引
- dws.dws_ml_manual_order_source: 4 个索引
- dws.dws_order_summary: 4 个索引
- dws.dws_platform_settlement: 5 个索引
- dws.mv_dws_assistant_daily_detail_l1: 1 个索引
- dws.mv_dws_assistant_daily_detail_l2: 1 个索引
- dws.mv_dws_assistant_daily_detail_l3: 1 个索引
- dws.mv_dws_assistant_daily_detail_l4: 1 个索引
- dws.mv_dws_finance_daily_summary_l1: 1 个索引
- dws.mv_dws_finance_daily_summary_l2: 1 个索引
- dws.mv_dws_finance_daily_summary_l3: 1 个索引
- dws.mv_dws_finance_daily_summary_l4: 1 个索引
- meta.etl_cursor: 2 个索引
- meta.etl_run: 1 个索引
- meta.etl_task: 2 个索引
- ods.assistant_accounts_master: 3 个索引
- ods.assistant_cancellation_records: 3 个索引
- ods.assistant_service_records: 3 个索引
- ods.goods_stock_movements: 3 个索引
- ods.goods_stock_summary: 3 个索引
- ods.group_buy_packages: 3 个索引
- ods.group_buy_redemption_records: 3 个索引
- ods.member_balance_changes: 3 个索引
- ods.member_profiles: 3 个索引
- ods.member_stored_value_cards: 3 个索引
- ods.payment_transactions: 3 个索引
- ods.platform_coupon_redemption_records: 3 个索引
- ods.recharge_settlements: 3 个索引
- ods.refund_transactions: 3 个索引
- ods.settlement_records: 3 个索引
- ods.site_tables_master: 3 个索引
- ods.stock_goods_category_tree: 3 个索引
- ods.store_goods_master: 3 个索引
- ods.store_goods_sales_records: 3 个索引
- ods.table_fee_discount_records: 3 个索引
- ods.table_fee_transactions: 3 个索引
- ods.tenant_goods_master: 3 个索引

View File

@@ -1,133 +0,0 @@
# DDL vs 数据库一致性检查报告
生成时间2026-02-21 21:26:21
数据库test_etl_feiqiu
DDL 文件ods.sql, dwd.sql, dws.sql, meta.sql
## 概览
| 指标 | 数量 |
|------|------|
| DDL 定义表数 | 99 |
| DB 实际表数 | 99 |
| 完全匹配 | 99 |
| DDL 有但 DB 缺失 | 0 |
| DB 有但 DDL 缺失 | 0 |
## 差异详情2 项)
### dwd.dim_store_goods_ex
类型不匹配batch_stock_quantity DDL=integer DB=numeric
## 索引概览
数据库中共 343 个索引,覆盖 107 张表。
- dwd.dim_assistant: 4 个索引
- dwd.dim_assistant_ex: 6 个索引
- dwd.dim_goods_category: 4 个索引
- dwd.dim_groupbuy_package: 6 个索引
- dwd.dim_groupbuy_package_ex: 4 个索引
- dwd.dim_member: 6 个索引
- dwd.dim_member_card_account: 4 个索引
- dwd.dim_member_card_account_ex: 6 个索引
- dwd.dim_member_ex: 4 个索引
- dwd.dim_site: 4 个索引
- dwd.dim_site_ex: 6 个索引
- dwd.dim_store_goods: 4 个索引
- dwd.dim_store_goods_ex: 4 个索引
- dwd.dim_table: 4 个索引
- dwd.dim_table_ex: 4 个索引
- dwd.dim_tenant_goods: 6 个索引
- dwd.dim_tenant_goods_ex: 4 个索引
- dwd.dwd_assistant_service_log: 5 个索引
- dwd.dwd_assistant_service_log_ex: 1 个索引
- dwd.dwd_assistant_trash_event: 3 个索引
- dwd.dwd_assistant_trash_event_ex: 1 个索引
- dwd.dwd_goods_stock_movement: 1 个索引
- dwd.dwd_goods_stock_summary: 1 个索引
- dwd.dwd_groupbuy_redemption: 3 个索引
- dwd.dwd_groupbuy_redemption_ex: 1 个索引
- dwd.dwd_member_balance_change: 1 个索引
- dwd.dwd_member_balance_change_ex: 1 个索引
- dwd.dwd_payment: 5 个索引
- dwd.dwd_platform_coupon_redemption: 3 个索引
- dwd.dwd_platform_coupon_redemption_ex: 1 个索引
- dwd.dwd_recharge_order: 5 个索引
- dwd.dwd_recharge_order_ex: 1 个索引
- dwd.dwd_refund: 5 个索引
- dwd.dwd_refund_ex: 1 个索引
- dwd.dwd_settlement_head: 5 个索引
- dwd.dwd_settlement_head_ex: 1 个索引
- dwd.dwd_store_goods_sale: 3 个索引
- dwd.dwd_store_goods_sale_ex: 1 个索引
- dwd.dwd_table_fee_adjust: 1 个索引
- dwd.dwd_table_fee_adjust_ex: 1 个索引
- dwd.dwd_table_fee_log: 5 个索引
- dwd.dwd_table_fee_log_ex: 1 个索引
- dws.cfg_area_category: 3 个索引
- dws.cfg_assistant_level_price: 3 个索引
- dws.cfg_bonus_rules: 4 个索引
- dws.cfg_index_parameters: 4 个索引
- dws.cfg_performance_tier: 3 个索引
- dws.cfg_skill_type: 3 个索引
- dws.dws_assistant_customer_stats: 5 个索引
- dws.dws_assistant_daily_detail: 5 个索引
- dws.dws_assistant_finance_analysis: 4 个索引
- dws.dws_assistant_monthly_summary: 5 个索引
- dws.dws_assistant_recharge_commission: 4 个索引
- dws.dws_assistant_salary_calc: 4 个索引
- dws.dws_finance_daily_summary: 4 个索引
- dws.dws_finance_discount_detail: 4 个索引
- dws.dws_finance_expense_summary: 5 个索引
- dws.dws_finance_income_structure: 4 个索引
- dws.dws_finance_recharge_summary: 3 个索引
- dws.dws_goods_stock_daily_summary: 4 个索引
- dws.dws_goods_stock_monthly_summary: 4 个索引
- dws.dws_goods_stock_weekly_summary: 4 个索引
- dws.dws_index_percentile_history: 3 个索引
- dws.dws_member_assistant_intimacy: 4 个索引
- dws.dws_member_assistant_relation_index: 5 个索引
- dws.dws_member_consumption_summary: 5 个索引
- dws.dws_member_newconv_index: 3 个索引
- dws.dws_member_recall_index: 3 个索引
- dws.dws_member_visit_detail: 5 个索引
- dws.dws_member_winback_index: 3 个索引
- dws.dws_ml_manual_order_alloc: 4 个索引
- dws.dws_ml_manual_order_source: 4 个索引
- dws.dws_order_summary: 4 个索引
- dws.dws_platform_settlement: 5 个索引
- dws.mv_dws_assistant_daily_detail_l1: 1 个索引
- dws.mv_dws_assistant_daily_detail_l2: 1 个索引
- dws.mv_dws_assistant_daily_detail_l3: 1 个索引
- dws.mv_dws_assistant_daily_detail_l4: 1 个索引
- dws.mv_dws_finance_daily_summary_l1: 1 个索引
- dws.mv_dws_finance_daily_summary_l2: 1 个索引
- dws.mv_dws_finance_daily_summary_l3: 1 个索引
- dws.mv_dws_finance_daily_summary_l4: 1 个索引
- meta.etl_cursor: 2 个索引
- meta.etl_run: 1 个索引
- meta.etl_task: 2 个索引
- ods.assistant_accounts_master: 3 个索引
- ods.assistant_cancellation_records: 3 个索引
- ods.assistant_service_records: 3 个索引
- ods.goods_stock_movements: 3 个索引
- ods.goods_stock_summary: 3 个索引
- ods.group_buy_packages: 3 个索引
- ods.group_buy_redemption_records: 3 个索引
- ods.member_balance_changes: 3 个索引
- ods.member_profiles: 3 个索引
- ods.member_stored_value_cards: 3 个索引
- ods.payment_transactions: 3 个索引
- ods.platform_coupon_redemption_records: 3 个索引
- ods.recharge_settlements: 3 个索引
- ods.refund_transactions: 3 个索引
- ods.settlement_records: 3 个索引
- ods.site_tables_master: 3 个索引
- ods.stock_goods_category_tree: 3 个索引
- ods.store_goods_master: 3 个索引
- ods.store_goods_sales_records: 3 个索引
- ods.table_fee_discount_records: 3 个索引
- ods.table_fee_transactions: 3 个索引
- ods.tenant_goods_master: 3 个索引

View File

@@ -1,131 +0,0 @@
# DDL vs 数据库一致性检查报告
生成时间2026-02-21 21:27:26
数据库test_etl_feiqiu
DDL 文件ods.sql, dwd.sql, dws.sql, meta.sql
## 概览
| 指标 | 数量 |
|------|------|
| DDL 定义表数 | 99 |
| DB 实际表数 | 99 |
| 完全匹配 | 99 |
| DDL 有但 DB 缺失 | 0 |
| DB 有但 DDL 缺失 | 0 |
## 结果:✅ 完全一致
所有 DDL 定义与数据库实际 schema 完全匹配,无差异。
## 索引概览
数据库中共 343 个索引,覆盖 107 张表。
- dwd.dim_assistant: 4 个索引
- dwd.dim_assistant_ex: 6 个索引
- dwd.dim_goods_category: 4 个索引
- dwd.dim_groupbuy_package: 6 个索引
- dwd.dim_groupbuy_package_ex: 4 个索引
- dwd.dim_member: 6 个索引
- dwd.dim_member_card_account: 4 个索引
- dwd.dim_member_card_account_ex: 6 个索引
- dwd.dim_member_ex: 4 个索引
- dwd.dim_site: 4 个索引
- dwd.dim_site_ex: 6 个索引
- dwd.dim_store_goods: 4 个索引
- dwd.dim_store_goods_ex: 4 个索引
- dwd.dim_table: 4 个索引
- dwd.dim_table_ex: 4 个索引
- dwd.dim_tenant_goods: 6 个索引
- dwd.dim_tenant_goods_ex: 4 个索引
- dwd.dwd_assistant_service_log: 5 个索引
- dwd.dwd_assistant_service_log_ex: 1 个索引
- dwd.dwd_assistant_trash_event: 3 个索引
- dwd.dwd_assistant_trash_event_ex: 1 个索引
- dwd.dwd_goods_stock_movement: 1 个索引
- dwd.dwd_goods_stock_summary: 1 个索引
- dwd.dwd_groupbuy_redemption: 3 个索引
- dwd.dwd_groupbuy_redemption_ex: 1 个索引
- dwd.dwd_member_balance_change: 1 个索引
- dwd.dwd_member_balance_change_ex: 1 个索引
- dwd.dwd_payment: 5 个索引
- dwd.dwd_platform_coupon_redemption: 3 个索引
- dwd.dwd_platform_coupon_redemption_ex: 1 个索引
- dwd.dwd_recharge_order: 5 个索引
- dwd.dwd_recharge_order_ex: 1 个索引
- dwd.dwd_refund: 5 个索引
- dwd.dwd_refund_ex: 1 个索引
- dwd.dwd_settlement_head: 5 个索引
- dwd.dwd_settlement_head_ex: 1 个索引
- dwd.dwd_store_goods_sale: 3 个索引
- dwd.dwd_store_goods_sale_ex: 1 个索引
- dwd.dwd_table_fee_adjust: 1 个索引
- dwd.dwd_table_fee_adjust_ex: 1 个索引
- dwd.dwd_table_fee_log: 5 个索引
- dwd.dwd_table_fee_log_ex: 1 个索引
- dws.cfg_area_category: 3 个索引
- dws.cfg_assistant_level_price: 3 个索引
- dws.cfg_bonus_rules: 4 个索引
- dws.cfg_index_parameters: 4 个索引
- dws.cfg_performance_tier: 3 个索引
- dws.cfg_skill_type: 3 个索引
- dws.dws_assistant_customer_stats: 5 个索引
- dws.dws_assistant_daily_detail: 5 个索引
- dws.dws_assistant_finance_analysis: 4 个索引
- dws.dws_assistant_monthly_summary: 5 个索引
- dws.dws_assistant_recharge_commission: 4 个索引
- dws.dws_assistant_salary_calc: 4 个索引
- dws.dws_finance_daily_summary: 4 个索引
- dws.dws_finance_discount_detail: 4 个索引
- dws.dws_finance_expense_summary: 5 个索引
- dws.dws_finance_income_structure: 4 个索引
- dws.dws_finance_recharge_summary: 3 个索引
- dws.dws_goods_stock_daily_summary: 4 个索引
- dws.dws_goods_stock_monthly_summary: 4 个索引
- dws.dws_goods_stock_weekly_summary: 4 个索引
- dws.dws_index_percentile_history: 3 个索引
- dws.dws_member_assistant_intimacy: 4 个索引
- dws.dws_member_assistant_relation_index: 5 个索引
- dws.dws_member_consumption_summary: 5 个索引
- dws.dws_member_newconv_index: 3 个索引
- dws.dws_member_recall_index: 3 个索引
- dws.dws_member_visit_detail: 5 个索引
- dws.dws_member_winback_index: 3 个索引
- dws.dws_ml_manual_order_alloc: 4 个索引
- dws.dws_ml_manual_order_source: 4 个索引
- dws.dws_order_summary: 4 个索引
- dws.dws_platform_settlement: 5 个索引
- dws.mv_dws_assistant_daily_detail_l1: 1 个索引
- dws.mv_dws_assistant_daily_detail_l2: 1 个索引
- dws.mv_dws_assistant_daily_detail_l3: 1 个索引
- dws.mv_dws_assistant_daily_detail_l4: 1 个索引
- dws.mv_dws_finance_daily_summary_l1: 1 个索引
- dws.mv_dws_finance_daily_summary_l2: 1 个索引
- dws.mv_dws_finance_daily_summary_l3: 1 个索引
- dws.mv_dws_finance_daily_summary_l4: 1 个索引
- meta.etl_cursor: 2 个索引
- meta.etl_run: 1 个索引
- meta.etl_task: 2 个索引
- ods.assistant_accounts_master: 3 个索引
- ods.assistant_cancellation_records: 3 个索引
- ods.assistant_service_records: 3 个索引
- ods.goods_stock_movements: 3 个索引
- ods.goods_stock_summary: 3 个索引
- ods.group_buy_packages: 3 个索引
- ods.group_buy_redemption_records: 3 个索引
- ods.member_balance_changes: 3 个索引
- ods.member_profiles: 3 个索引
- ods.member_stored_value_cards: 3 个索引
- ods.payment_transactions: 3 个索引
- ods.platform_coupon_redemption_records: 3 个索引
- ods.recharge_settlements: 3 个索引
- ods.refund_transactions: 3 个索引
- ods.settlement_records: 3 个索引
- ods.site_tables_master: 3 个索引
- ods.stock_goods_category_tree: 3 个索引
- ods.store_goods_master: 3 个索引
- ods.store_goods_sales_records: 3 个索引
- ods.table_fee_discount_records: 3 个索引
- ods.table_fee_transactions: 3 个索引
- ods.tenant_goods_master: 3 个索引

View File

@@ -1,783 +0,0 @@
{
"generated_at": "2026-02-18T13:54:42.674118",
"tables": [
{
"dwd_table": "dwd.dim_site",
"ods_table": "ods.table_fee_transactions",
"count": {
"dwd": 54,
"ods": 38585,
"diff": -38531
},
"amounts": []
},
{
"dwd_table": "dwd.dim_site_ex",
"ods_table": "ods.table_fee_transactions",
"count": {
"dwd": 54,
"ods": 38585,
"diff": -38531
},
"amounts": []
},
{
"dwd_table": "dwd.dim_table",
"ods_table": "ods.site_tables_master",
"count": {
"dwd": 2881,
"ods": 1074,
"diff": 1807
},
"amounts": []
},
{
"dwd_table": "dwd.dim_table_ex",
"ods_table": "ods.site_tables_master",
"count": {
"dwd": 3035,
"ods": 1074,
"diff": 1961
},
"amounts": []
},
{
"dwd_table": "dwd.dim_assistant",
"ods_table": "ods.assistant_accounts_master",
"count": {
"dwd": 1266,
"ods": 295,
"diff": 971
},
"amounts": []
},
{
"dwd_table": "dwd.dim_assistant_ex",
"ods_table": "ods.assistant_accounts_master",
"count": {
"dwd": 1251,
"ods": 295,
"diff": 956
},
"amounts": []
},
{
"dwd_table": "dwd.dim_member",
"ods_table": "ods.member_profiles",
"count": {
"dwd": 10801,
"ods": 1771,
"diff": 9030
},
"amounts": [
{
"column": "pay_money_sum",
"dwd_sum": -44578911.7,
"ods_sum": -12031004.21,
"diff": -32547907.490000002
},
{
"column": "recharge_money_sum",
"dwd_sum": 51067011.97,
"ods_sum": 13293169.41,
"diff": 37773842.56
}
]
},
{
"dwd_table": "dwd.dim_member_ex",
"ods_table": "ods.member_profiles",
"count": {
"dwd": 10770,
"ods": 1771,
"diff": 8999
},
"amounts": []
},
{
"dwd_table": "dwd.dim_member_card_account",
"ods_table": "ods.member_stored_value_cards",
"count": {
"dwd": 18370,
"ods": 2973,
"diff": 15397
},
"amounts": [
{
"column": "balance",
"dwd_sum": 7834178.2,
"ods_sum": 1369125.58,
"diff": 6465052.62
},
{
"column": "principal_balance",
"dwd_sum": 4659292.04,
"ods_sum": 921317.68,
"diff": 3737974.36
}
]
},
{
"dwd_table": "dwd.dim_member_card_account_ex",
"ods_table": "ods.member_stored_value_cards",
"count": {
"dwd": 18172,
"ods": 2973,
"diff": 15199
},
"amounts": [
{
"column": "deliveryfeededuct",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dim_tenant_goods",
"ods_table": "ods.tenant_goods_master",
"count": {
"dwd": 2018,
"ods": 353,
"diff": 1665
},
"amounts": []
},
{
"dwd_table": "dwd.dim_tenant_goods_ex",
"ods_table": "ods.tenant_goods_master",
"count": {
"dwd": 2016,
"ods": 353,
"diff": 1663
},
"amounts": []
},
{
"dwd_table": "dwd.dim_store_goods",
"ods_table": "ods.store_goods_master",
"count": {
"dwd": 5444,
"ods": 1744,
"diff": 3700
},
"amounts": []
},
{
"dwd_table": "dwd.dim_store_goods_ex",
"ods_table": "ods.store_goods_master",
"count": {
"dwd": 5402,
"ods": 1744,
"diff": 3658
},
"amounts": []
},
{
"dwd_table": "dwd.dim_goods_category",
"ods_table": "ods.stock_goods_category_tree",
"count": {
"dwd": 125,
"ods": 18,
"diff": 107
},
"amounts": []
},
{
"dwd_table": "dwd.dim_groupbuy_package",
"ods_table": "ods.group_buy_packages",
"count": {
"dwd": 373,
"ods": 70,
"diff": 303
},
"amounts": []
},
{
"dwd_table": "dwd.dim_groupbuy_package_ex",
"ods_table": "ods.group_buy_packages",
"count": {
"dwd": 373,
"ods": 70,
"diff": 303
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_settlement_head",
"ods_table": "ods.settlement_records",
"count": {
"dwd": 26115,
"ods": 55457,
"diff": -29342
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_settlement_head_ex",
"ods_table": "ods.settlement_records",
"count": {
"dwd": 26115,
"ods": 55457,
"diff": -29342
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_table_fee_log",
"ods_table": "ods.table_fee_transactions",
"count": {
"dwd": 20132,
"ods": 38585,
"diff": -18453
},
"amounts": [
{
"column": "activity_discount_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "adjust_amount",
"dwd_sum": 360935.76,
"ods_sum": 748219.39,
"diff": -387283.63
},
{
"column": "coupon_promotion_amount",
"dwd_sum": 1043924.79,
"ods_sum": 1960731.94,
"diff": -916807.1499999999
},
{
"column": "ledger_amount",
"dwd_sum": 2329813.19,
"ods_sum": 4552084.15,
"diff": -2222270.9600000004
},
{
"column": "member_discount_amount",
"dwd_sum": 200164.42,
"ods_sum": 363032.98,
"diff": -162868.55999999997
},
{
"column": "real_service_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "real_table_charge_money",
"dwd_sum": 831450.6,
"ods_sum": 1676836.7,
"diff": -845386.1
}
]
},
{
"dwd_table": "dwd.dwd_table_fee_log_ex",
"ods_table": "ods.table_fee_transactions",
"count": {
"dwd": 20132,
"ods": 38585,
"diff": -18453
},
"amounts": [
{
"column": "fee_total",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "mgmt_fee",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "service_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "used_card_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_table_fee_adjust",
"ods_table": "ods.table_fee_discount_records",
"count": {
"dwd": 3124,
"ods": 4818,
"diff": -1694
},
"amounts": [
{
"column": "ledger_amount",
"dwd_sum": 370340.42,
"ods_sum": 580703.61,
"diff": -210363.19
}
]
},
{
"dwd_table": "dwd.dwd_table_fee_adjust_ex",
"ods_table": "ods.table_fee_discount_records",
"count": {
"dwd": 3124,
"ods": 4818,
"diff": -1694
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_store_goods_sale",
"ods_table": "ods.store_goods_sales_records",
"count": {
"dwd": 17563,
"ods": 17563,
"diff": 0
},
"amounts": [
{
"column": "cost_money",
"dwd_sum": 3116.75,
"ods_sum": 3116.75,
"diff": 0.0
},
{
"column": "coupon_share_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "ledger_amount",
"dwd_sum": 373588.1,
"ods_sum": 373588.1,
"diff": 0.0
},
{
"column": "real_goods_money",
"dwd_sum": 351914.9,
"ods_sum": 351914.9,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_store_goods_sale_ex",
"ods_table": "ods.store_goods_sales_records",
"count": {
"dwd": 17563,
"ods": 17563,
"diff": 0
},
"amounts": [
{
"column": "coupon_deduct_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "discount_money",
"dwd_sum": 21673.2,
"ods_sum": 21673.2,
"diff": 0.0
},
{
"column": "member_discount_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "option_coupon_deduct_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "option_member_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "point_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "point_discount_money_cost",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "push_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_assistant_service_log",
"ods_table": "ods.assistant_service_records",
"count": {
"dwd": 5281,
"ods": 10219,
"diff": -4938
},
"amounts": [
{
"column": "coupon_deduct_money",
"dwd_sum": 11071.07,
"ods_sum": 21950.93,
"diff": -10879.86
},
{
"column": "ledger_amount",
"dwd_sum": 1653011.03,
"ods_sum": 3196243.99,
"diff": -1543232.9600000002
},
{
"column": "real_service_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_assistant_service_log_ex",
"ods_table": "ods.assistant_service_records",
"count": {
"dwd": 5281,
"ods": 10219,
"diff": -4938
},
"amounts": [
{
"column": "manual_discount_amount",
"dwd_sum": 414.17,
"ods_sum": 828.34,
"diff": -414.17
},
{
"column": "member_discount_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "service_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_assistant_trash_event",
"ods_table": "ods.assistant_cancellation_records",
"count": {
"dwd": 100,
"ods": 100,
"diff": 0
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_assistant_trash_event_ex",
"ods_table": "ods.assistant_cancellation_records",
"count": {
"dwd": 100,
"ods": 100,
"diff": 0
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_member_balance_change",
"ods_table": "ods.member_balance_changes",
"count": {
"dwd": 5081,
"ods": 9684,
"diff": -4603
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_member_balance_change_ex",
"ods_table": "ods.member_balance_changes",
"count": {
"dwd": 5081,
"ods": 9684,
"diff": -4603
},
"amounts": [
{
"column": "refund_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_groupbuy_redemption",
"ods_table": "ods.group_buy_redemption_records",
"count": {
"dwd": 12768,
"ods": 27284,
"diff": -14516
},
"amounts": [
{
"column": "coupon_money",
"dwd_sum": 822390.0,
"ods_sum": 1748666.0,
"diff": -926276.0
},
{
"column": "ledger_amount",
"dwd_sum": 788754.37,
"ods_sum": 1675417.16,
"diff": -886662.7899999999
},
{
"column": "member_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
},
{
"dwd_table": "dwd.dwd_groupbuy_redemption_ex",
"ods_table": "ods.group_buy_redemption_records",
"count": {
"dwd": 12768,
"ods": 27284,
"diff": -14516
},
"amounts": [
{
"column": "assistant_promotion_money",
"dwd_sum": 7544.8,
"ods_sum": 16557.98,
"diff": -9013.18
},
{
"column": "assistant_service_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "assistant_service_share_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "assistant_share_money",
"dwd_sum": 2285.57,
"ods_sum": 6697.18,
"diff": -4411.610000000001
},
{
"column": "good_service_share_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "goods_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "goods_share_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "recharge_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "recharge_share_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "reward_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "table_service_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "table_service_share_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "table_share_money",
"dwd_sum": 382004.98,
"ods_sum": 846145.6,
"diff": -464140.62
}
]
},
{
"dwd_table": "dwd.dwd_platform_coupon_redemption",
"ods_table": "ods.platform_coupon_redemption_records",
"count": {
"dwd": 18311,
"ods": 36678,
"diff": -18367
},
"amounts": [
{
"column": "coupon_money",
"dwd_sum": 1193916.0,
"ods_sum": 2391858.0,
"diff": -1197942.0
}
]
},
{
"dwd_table": "dwd.dwd_platform_coupon_redemption_ex",
"ods_table": "ods.platform_coupon_redemption_records",
"count": {
"dwd": 18311,
"ods": 36678,
"diff": -18367
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_recharge_order",
"ods_table": "ods.recharge_settlements",
"count": {
"dwd": 485,
"ods": 3333,
"diff": -2848
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_recharge_order_ex",
"ods_table": "ods.recharge_settlements",
"count": {
"dwd": 485,
"ods": 3333,
"diff": -2848
},
"amounts": []
},
{
"dwd_table": "dwd.dwd_payment",
"ods_table": "ods.payment_transactions",
"count": {
"dwd": 24922,
"ods": 36006,
"diff": -11084
},
"amounts": [
{
"column": "pay_amount",
"dwd_sum": 2424522.0,
"ods_sum": 3652765.0,
"diff": -1228243.0
}
]
},
{
"dwd_table": "dwd.dwd_refund",
"ods_table": "ods.refund_transactions",
"count": {
"dwd": 51,
"ods": 83,
"diff": -32
},
"amounts": [
{
"column": "channel_fee",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "pay_amount",
"dwd_sum": -79176.5,
"ods_sum": -94892.0,
"diff": 15715.5
}
]
},
{
"dwd_table": "dwd.dwd_refund_ex",
"ods_table": "ods.refund_transactions",
"count": {
"dwd": 51,
"ods": 83,
"diff": -32
},
"amounts": [
{
"column": "balance_frozen_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "card_frozen_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "refund_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "round_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
]
}
],
"note": "行数/金额核对,金额字段基于列名包含 amount/money/fee/balance 的数值列自动扫描。"
}

View File

@@ -1,16 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-20 07:21:33.075
- 结束时间: 2026-02-20 07:21:33.306
- 总耗时: 230.9ms
- 步骤数: 5
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | ODS_ASSISTANT_ACCOUNT | 07:21:33.075 | 07:21:33.131 | 55.5ms |
| 2 | ODS_MEMBER | 07:21:33.131 | 07:21:33.165 | 34.2ms |
| 3 | DWD_LOAD_FROM_ODS | 07:21:33.165 | 07:21:33.246 | 80.4ms |
| 4 | DWS_COACH_PERFORMANCE | 07:21:33.246 | 07:21:33.286 | 40.4ms |
| 5 | CONSISTENCY_CHECK | 07:21:33.286 | 07:21:33.306 | 20.2ms |

View File

@@ -1,16 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-20 07:21:52.613
- 结束时间: 2026-02-20 07:21:52.839
- 总耗时: 225.8ms
- 步骤数: 5
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | ODS_ASSISTANT_ACCOUNT | 07:21:52.613 | 07:21:52.664 | 51.0ms |
| 2 | ODS_MEMBER | 07:21:52.664 | 07:21:52.696 | 31.7ms |
| 3 | DWD_LOAD_FROM_ODS | 07:21:52.696 | 07:21:52.777 | 81.1ms |
| 4 | DWS_COACH_PERFORMANCE | 07:21:52.777 | 07:21:52.817 | 40.4ms |
| 5 | CONSISTENCY_CHECK | 07:21:52.817 | 07:21:52.839 | 21.4ms |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-20 07:35:49.460
- 结束时间: 2026-02-20 07:36:10.244
- 总耗时: 20.78s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 07:35:49.460 | 07:35:49.896 | 436.1ms |
| 2 | CONSISTENCY_CHECK | 07:35:49.899 | 07:36:10.244 | 20.35s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-20 07:48:41.194
- 结束时间: 2026-02-20 09:14:14.761
- 总耗时: 1h25m
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | FETCH_BEFORE_VERIFY | 07:48:41.194 | 09:13:42.279 | 1h25m |
| 2 | CONSISTENCY_CHECK | 09:13:56.727 | 09:14:14.761 | 18.03s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 15:29:21.753
- 结束时间: 2026-02-21 15:39:10.470
- 总耗时: 9m48.7s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 15:29:21.754 | 15:39:08.328 | 9m46.6s |
| 2 | CONSISTENCY_CHECK | 15:39:08.330 | 15:39:10.470 | 2.14s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 19:27:49.606
- 结束时间: 2026-02-21 19:30:18.170
- 总耗时: 2m28.6s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 19:27:49.606 | 19:30:15.874 | 2m26.3s |
| 2 | CONSISTENCY_CHECK | 19:30:15.876 | 19:30:18.170 | 2.29s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 19:41:02.997
- 结束时间: 2026-02-21 19:52:22.423
- 总耗时: 11m19.4s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 19:41:02.997 | 19:52:20.126 | 11m17.1s |
| 2 | CONSISTENCY_CHECK | 19:52:20.129 | 19:52:22.423 | 2.29s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 19:57:02.636
- 结束时间: 2026-02-21 20:08:57.619
- 总耗时: 11m55.0s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 19:57:02.636 | 20:08:55.481 | 11m52.8s |
| 2 | CONSISTENCY_CHECK | 20:08:55.483 | 20:08:57.619 | 2.14s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 20:19:52.765
- 结束时间: 2026-02-21 20:31:29.279
- 总耗时: 11m36.5s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 20:19:52.765 | 20:31:27.045 | 11m34.3s |
| 2 | CONSISTENCY_CHECK | 20:31:27.049 | 20:31:29.279 | 2.23s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 20:45:18.898
- 结束时间: 2026-02-21 21:14:45.329
- 总耗时: 29m26.4s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 20:45:18.898 | 21:14:42.448 | 29m23.6s |
| 2 | CONSISTENCY_CHECK | 21:14:42.451 | 21:14:45.329 | 2.88s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 21:25:11.381
- 结束时间: 2026-02-21 21:26:39.028
- 总耗时: 1m27.6s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 21:25:11.381 | 21:26:36.913 | 1m25.5s |
| 2 | CONSISTENCY_CHECK | 21:26:36.915 | 21:26:39.027 | 2.11s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 21:33:37.838
- 结束时间: 2026-02-21 21:35:01.943
- 总耗时: 1m24.1s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 21:33:37.838 | 21:34:59.810 | 1m22.0s |
| 2 | CONSISTENCY_CHECK | 21:34:59.812 | 21:35:01.943 | 2.13s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 22:38:56.302
- 结束时间: 2026-02-21 22:40:27.434
- 总耗时: 1m31.1s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 22:38:56.302 | 22:40:07.841 | 1m11.5s |
| 2 | CONSISTENCY_CHECK | 22:40:07.845 | 22:40:27.434 | 19.59s |

View File

@@ -1,13 +0,0 @@
# ETL 执行计时报告
- 开始时间: 2026-02-21 22:48:43.973
- 结束时间: 2026-02-21 22:50:13.110
- 总耗时: 1m29.1s
- 步骤数: 2
## 步骤汇总
| # | 步骤名称 | 开始时间 | 结束时间 | 耗时 |
|---|---------|---------|---------|------|
| 1 | INCREMENT_ETL | 22:48:43.973 | 22:49:54.509 | 1m10.5s |
| 2 | CONSISTENCY_CHECK | 22:49:54.514 | 22:50:13.110 | 18.60s |