在前后端开发联调前 的提交20260223

This commit is contained in:
Neo
2026-02-23 23:02:20 +08:00
parent 254ccb1e77
commit fafc95e64c
1142 changed files with 10366960 additions and 36957 deletions

View File

@@ -0,0 +1,183 @@
# 黑盒集成测试报告
生成时间: 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

@@ -0,0 +1,785 @@
# 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 率

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,335 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,335 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,335 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,335 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,125 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,88 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,88 @@
# 数据一致性黑盒测试报告
生成时间: 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

@@ -0,0 +1,57 @@
# 上下文交接字段级数据质量分析任务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

@@ -0,0 +1,152 @@
# 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

@@ -0,0 +1,133 @@
# 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

@@ -0,0 +1,131 @@
# 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

@@ -0,0 +1,783 @@
{
"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

@@ -0,0 +1,16 @@
# 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

@@ -0,0 +1,16 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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

@@ -0,0 +1,13 @@
# 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 |

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff