在前后端开发联调前 的提交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,138 @@
# Dataflow 报告 vs Field Review 字段新增方案对比
> 生成时间2026-02-20
> 对比文件:
> - **DF**(自动扫描):`dataflow_2026-02-20_005219.md`
> - **FR**(人工审查):`field_review_for_user.md`
---
## 一、完全一致的表
以下 6 张表,两份报告在字段新增方案上结论完全相同:
| 表名 | 未映射数 | FR 方案 | 一致性 |
|------|---------|---------|--------|
| `assistant_accounts_master` | 4 | A 类system_role_id, job_num, cx_unit_price, pd_unit_price → dim_assistant_ex | ✅ 完全一致 |
| `member_balance_changes` | 1 | A 类relate_id → dwd_member_balance_change_ex | ✅ 完全一致 |
| `site_tables_master` | 14 | A 类14 个字段 → dim_table_ex | ✅ 完全一致 |
| `goods_stock_summary` | 14 | C 类:新建 dwd_goods_stock_summary全部 14 列映射 | ✅ 完全一致 |
| `goods_stock_movements` | 19 | C 类:新建 dwd_goods_stock_movement全部 19 列映射 | ✅ 完全一致 |
| `settlement_ticket_details` | 38 | C 类:新建 dwd_settlement_ticket + _ex~38 列映射 | ✅ 完全一致 |
---
## 二、有差异的表(逐表分析)
### 2.1 assistant_service_records
| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `operator_id` | ⚠️ 无 DWD 目标 | ✅ 待新增 → dwd_assistant_service_log_ex | 一致 |
| `operator_name` | ⚠️ 无 DWD 目标 | ✅ 待新增 → dwd_assistant_service_log_ex | 一致 |
| `siteprofile` | ⚠️ 无 DWD 目标 | (未提及) | DF 多报jsonb 嵌套字段,不适合直接映射 DWD 列FR 正确忽略 |
| `site_assistant_id` | ⚠️ 无 DWD 目标 | ⏭️ 跳过:已通过 FACT_MAPPINGS 间接映射ODS order_assistant_id → DWD site_assistant_id | DF 多报:自动扫描无法识别间接映射 |
**结论**实质一致。DF 多出的 2 个标记siteprofile、site_assistant_id均为合理的"不需处理"项。
---
### 2.2 assistant_cancellation_records
| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `assistanton` | ⚠️ 无 DWD 目标 | ✅ 待新增 → assistant_no_intdwd_assistant_trash_event_ex | 一致 |
| `siteprofile` | ⚠️ 无 DWD 目标 | (未提及) | DF 多报jsonb 嵌套字段FR 正确忽略 |
**结论**:实质一致。差异仅为 siteprofile 的合理忽略。
---
### 2.3 recharge_settlements
| 字段对ODS → DWD | DF 标记 | FR 标记 | 差异说明 |
|---------------------|--------|--------|---------|
| `plcouponsaleamount``pl_coupon_sale_amount` | ODS 侧 ⚠️ 无 DWD 目标 + DWD 侧 ⚠️ 无 ODS 源 | ✅ B 类DWD 列已存在,仅补 FACT_MAPPINGS | 诊断视角不同 |
| `mervousalesamount``mervou_sales_amount` | 同上 | ✅ B 类:同上 | 同上 |
| `electricitymoney``electricity_money` | 同上 | ✅ B 类:同上 | 同上 |
| `realelectricitymoney``real_electricity_money` | 同上 | ✅ B 类:同上 | 同上 |
| `electricityadjustmoney``electricity_adjust_money` | 同上 | ✅ B 类:同上 | 同上 |
**结论**实质一致。DF 因 FACT_MAPPINGS 缺失,在 ODS 侧和 DWD 侧各报了一次"未映射"(共 10 个标记。FR 更精准地识别出 DWD 列已存在只需补映射配置B 类操作)。
---
### 2.4 store_goods_master
| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `batch_stock_quantity` | ⚠️ 无 DWD 目标 | ✅ 待新增 → dim_store_goods_ex | 一致 |
| `provisional_total_cost` | ⚠️ 无 DWD 目标 | ⏭️ 跳过DWD 列名已被占用(映射自 ODS total_purchase_cost | FR 识别出列名冲突,有意跳过 |
| `time_slot_sale`API 层) | ⚠️ API→ODS 未映射 | ⏭️ 跳过ODS 列不存在,需确认 API 是否返回 | 两者都发现FR 标记为待确认 |
**结论**batch_stock_quantity 一致。provisional_total_cost 的差异是 FR 有意为之(列名冲突待后续处理)。
---
### 2.5 store_goods_sales_records
| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `discount_price` | ⚠️ 无 DWD 目标 | ⏭️ 跳过DWD discount_price 列名已被占用(映射自 ODS discount_money。如需可后续新增 unit_discount_price | FR 识别出列名冲突并给出后续方案 |
**结论**一致。FR 提供了更具体的处理建议。
---
### 2.6 tenant_goods_master
| 字段 | DF 标记 | FR 标记 | 差异说明 |
|------|--------|--------|---------|
| `commoditycode` | ⚠️ 无 DWD 目标 | ⏭️ 跳过冗余字段DWD 已有 commodity_code + commodity_code_list 覆盖该语义 | FR 判断为冗余,合理跳过 |
**结论**一致。FR 的跳过决策合理。
---
## 三、DF 扫描范围更广但 FR 未涉及的表
DF 覆盖全部 23 张 ODS 表,以下 11 张表 FR 未涉及(因为不涉及字段新增):
| 表名 | DF 发现的 ODS→DWD 未映射 | 说明 |
|------|------------------------|------|
| `settlement_records` | 0 | 无差异 |
| `table_fee_transactions` | 1siteprofile | jsonb 嵌套,无需处理 |
| `payment_transactions` | 1siteprofile | 同上 |
| `refund_transactions` | 1siteprofile | 同上 |
| `platform_coupon_redemption_records` | 1siteprofile | 同上 |
| `member_profiles` | 0 | 无差异 |
| `member_stored_value_cards` | 0 | 无差异 |
| `group_buy_packages` | 0 | 无差异API 层有 2 个数组字段未映射) |
| `group_buy_redemption_records` | 0 | 无差异 |
| `stock_goods_category_tree` | 1categoryboxes | 特殊字段,无需处理 |
| `table_fee_discount_records` | 2siteprofile, tableprofile | jsonb 嵌套,无需处理 |
---
## 四、总结对比
| 维度 | DF自动扫描 | FR人工审查 |
|------|--------------|--------------|
| 覆盖范围 | 23 张 ODS 表全量扫描 | 12 张有差异的表 |
| 待新增字段汇总 | 未给出(只标记差异) | 31 个待新增 + 6 个跳过 |
| 操作分类 | 无 | A 类(新增列+映射)/ B 类(仅补映射)/ C 类(新建表) |
| 诊断精度 | 机械对比无法识别间接映射、jsonb 嵌套、列名冲突 | 逐字段人工决策,识别所有特殊情况 |
| 独有发现 | siteprofile 系列标记、time_slot_saleAPI→ODS | 列名冲突处理建议、目标表指定、冗余字段判断 |
### 核心结论
两份报告在实质性字段新增方案上**完全一致**。DF 多出的标记在 FR 中都有对应的"跳过"或"已处理"说明:
- `siteprofile`(多张表)→ jsonb 嵌套字段,不适合直接映射
- `site_assistant_id` → 已通过 FACT_MAPPINGS 间接映射
- `provisional_total_cost` → DWD 列名冲突,待后续处理
- `commoditycode` → 冗余字段,已有等价覆盖
- `discount_price` → DWD 列名冲突,待后续处理
DF 的价值:全量自动化扫描,确保无遗漏,适合作为 FR 的前置输入。
FR 的价值:提供可执行的分类方案和特殊情况处理策略,是最终实施依据。

View File

@@ -0,0 +1,698 @@
# DWD 表字段清单(现有 + 拟新增)
> 导出时间2026-02-19
> 用途:供人工审查排查结论,确认新增字段是否合理
---
## 第一部分A/B 类表(已有 DWD 表)
### dwd.dim_assistant
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `assistant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2947562271297029标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - id。 |
| 2 | `user_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - staff_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - staff_id。 |
| 3 | `assistant_no` | text | 【说明】维度字段,用于补充维度属性。 【示例】31维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - assistant_no。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - assistant_no。 |
| 4 | `real_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】张静然(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_accounts_master - real_name。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - real_name。 |
| 5 | `nickname` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】小然(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_accounts_master - nickname。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - nickname。 |
| 6 | `mobile` | text | 【说明】维度字段,用于补充维度属性。 【示例】15119679931维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - mobile。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - mobile。 |
| 7 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683160709957标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - tenant_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - tenant_id。 |
| 8 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - site_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - site_id。 |
| 9 | `team_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2792011585884037标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - team_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - team_id。 |
| 10 | `team_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】1组名称字段用于展示与辅助识别。 【ODS来源】assistant_accounts_master - team_name。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - team_name。 |
| 11 | `level` | integer | 【说明】维度字段,用于补充维度属性。 【示例】20维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - level。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - level。 |
| 12 | `entry_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-02 08:00:00时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - entry_time。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - entry_time。 |
| 13 | `resign_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-03 08:00:00时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - resign_time。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - resign_time。 |
| 14 | `leave_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - leave_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - leave_status。 |
| 15 | `assistant_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - assistant_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - assistant_status。 |
| 16 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 17 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 18 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 19 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
---
### dwd.dim_assistant_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `assistant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2947562271297029标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - id。 |
| 2 | `gender` | integer | 【说明】维度字段,用于补充维度属性。 【示例】0维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - gender。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - gender。 |
| 3 | `birth_date` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】0001-01-01 00:00:00时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - birth_date。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - birth_date。 |
| 4 | `avatar` | text | 【说明】维度字段,用于补充维度属性。 【示例】https://oss.ficoo.vip/maUiImages/images/defaultAvatar.png维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - avatar。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - avatar。 |
| 5 | `introduce` | text | 【说明】维度字段,用于补充维度属性。 【示例】NULL维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - introduce。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - introduce。 |
| 6 | `video_introduction_url` | text | 【说明】维度字段,用于补充维度属性。 【示例】https://oss.ficoo.vip/cbb/userVideo/1753096246308/175309624630830.mp4维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - video_introduction_url。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - video_introduction_url。 |
| 7 | `height` | numeric(5,2) | 【说明】维度字段,用于补充维度属性。 【示例】0.0(维度字段,用于补充维度属性)。 【ODS来源】assistant_accounts_master - height。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - height。 |
| 8 | `weight` | numeric(5,2) | 【说明】维度字段,用于补充维度属性。 【示例】0.0(维度字段,用于补充维度属性)。 【ODS来源】assistant_accounts_master - weight。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - weight。 |
| 9 | `shop_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】朗朗桌球(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_accounts_master - shop_name。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - shop_name。 |
| 10 | `group_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - group_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - group_id。 |
| 11 | `group_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】assistant_accounts_master - group_name。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - group_name。 |
| 12 | `person_org_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2947562271215109标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - person_org_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - person_org_id。 |
| 13 | `staff_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - staff_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - staff_id。 |
| 14 | `staff_profile_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - staff_profile_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - staff_profile_id。 |
| 15 | `assistant_grade` | double precision | 【说明】维度字段,用于补充维度属性。 【示例】0.0(维度字段,用于补充维度属性)。 【ODS来源】assistant_accounts_master - assistant_grade。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - assistant_grade。 |
| 16 | `sum_grade` | double precision | 【说明】维度字段,用于补充维度属性。 【示例】0.0(维度字段,用于补充维度属性)。 【ODS来源】assistant_accounts_master - sum_grade。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - sum_grade。 |
| 17 | `get_grade_times` | integer | 【说明】维度字段,用于补充维度属性。 【示例】0维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - get_grade_times。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - get_grade_times。 |
| 18 | `charge_way` | integer | 【说明】维度字段,用于补充维度属性。 【示例】2维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - charge_way。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - charge_way。 |
| 19 | `allow_cx` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - allow_cx。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - allow_cx。 |
| 20 | `is_guaranteed` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】1布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_accounts_master - is_guaranteed。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - is_guaranteed。 |
| 21 | `salary_grant_enabled` | integer | 【说明】维度字段,用于补充维度属性。 【示例】2维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - salary_grant_enabled。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - salary_grant_enabled。 |
| 22 | `entry_type` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - entry_type。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - entry_type。 |
| 23 | `entry_sign_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】0状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - entry_sign_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - entry_sign_status。 |
| 24 | `resign_sign_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】0状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - resign_sign_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - resign_sign_status。 |
| 25 | `work_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】2状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - work_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - work_status。 |
| 26 | `show_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - show_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - show_status。 |
| 27 | `show_sort` | integer | 【说明】维度字段,用于补充维度属性。 【示例】31维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - show_sort。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - show_sort。 |
| 28 | `online_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - online_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - online_status。 |
| 29 | `is_delete` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_accounts_master - is_delete。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - is_delete。 |
| 30 | `criticism_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - criticism_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - criticism_status。 |
| 31 | `create_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-02 15:55:26时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - create_time。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - create_time。 |
| 32 | `update_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-03 18:32:07时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - update_time。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - update_time。 |
| 33 | `start_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-01 08:00:00时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - start_time。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - start_time。 |
| 34 | `end_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-12-01 08:00:00时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_accounts_master - end_time。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - end_time。 |
| 35 | `last_table_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - last_table_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - last_table_id。 |
| 36 | `last_table_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】TV名称字段用于展示与辅助识别。 【ODS来源】assistant_accounts_master - last_table_name。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - last_table_name。 |
| 37 | `last_update_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】管理员:郑丽珊(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_accounts_master - last_update_name。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - last_update_name。 |
| 38 | `order_trade_no` | bigint | 【说明】维度字段,用于补充维度属性。 【示例】0维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - order_trade_no。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - order_trade_no。 |
| 39 | `ding_talk_synced` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】assistant_accounts_master - ding_talk_synced。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - ding_talk_synced。 |
| 40 | `site_light_cfg_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - site_light_cfg_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - site_light_cfg_id。 |
| 41 | `light_equipment_id` | text | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_accounts_master - light_equipment_id。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - light_equipment_id。 |
| 42 | `light_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】2状态枚举字段用于标识业务状态。 【ODS来源】assistant_accounts_master - light_status。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - light_status。 |
| 43 | `is_team_leader` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_accounts_master - is_team_leader。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - is_team_leader。 |
| 44 | `serial_number` | bigint | 【说明】数量/时长字段,用于统计与计量。 【示例】0数量/时长字段,用于统计与计量)。 【ODS来源】assistant_accounts_master - serial_number。 【JSON字段】assistant_accounts_master.json - data.assistantInfos - serial_number。 |
| 45 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 46 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 47 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 48 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】assistant_accounts_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
#### 🆕 拟新增字段
| # | 字段名 | 建议类型 | 来源 ODS 列 | 说明 |
|---|--------|---------|------------|------|
| 1 | `system_role_id` | bigint | assistant_accounts_master.system_role_id | 系统角色 ID关联角色权限 |
| 2 | `job_num` | text | assistant_accounts_master.job_num | 备用工号(当前门店未启用,全 NULL |
| 3 | `cx_unit_price` | numeric(18,2) | assistant_accounts_master.cx_unit_price | 促销时段单价(当前值 0.00 |
| 4 | `pd_unit_price` | numeric(18,2) | assistant_accounts_master.pd_unit_price | 普通时段单价(当前值 0.00 |
---
### dwd.dwd_assistant_service_log
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `assistant_service_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957913441292165标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - id。 |
| 2 | `order_trade_no` | bigint | 【说明】明细字段,用于记录事实取值。 【示例】2957784612605829明细字段用于记录事实取值。 【ODS来源】assistant_service_records - order_trade_no。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_trade_no。 |
| 3 | `order_settle_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957913171693253标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - order_settle_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_settle_id。 |
| 4 | `order_pay_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - order_pay_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_pay_id。 |
| 5 | `order_assistant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957788717240005标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - order_assistant_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_assistant_id。 |
| 6 | `order_assistant_type` | integer | 【说明】明细字段,用于记录事实取值。 【示例】1明细字段用于记录事实取值。 【ODS来源】assistant_service_records - order_assistant_type。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_assistant_type。 |
| 7 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683160709957标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - tenant_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - tenant_id。 |
| 8 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - site_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - site_id。 |
| 9 | `site_table_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793020259897413标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - site_table_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - site_table_id。 |
| 10 | `tenant_member_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - tenant_member_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - tenant_member_id。 |
| 11 | `system_member_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - system_member_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - system_member_id。 |
| 12 | `assistant_no` | character varying(64) | 【说明】明细字段,用于记录事实取值。 【示例】27明细字段用于记录事实取值。 【ODS来源】assistant_service_records - assistantNo。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - assistantNo。 |
| 13 | `nickname` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】泡芙(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_service_records - nickname。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - nickname。 |
| 14 | `site_assistant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957788717240005标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - order_assistant_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - order_assistant_id。 |
| 15 | `user_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2946266868976453标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - user_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - user_id。 |
| 16 | `assistant_team_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2792011585884037标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - assistant_team_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - assistant_team_id。 |
| 17 | `person_org_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2946266869336901标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - person_org_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - person_org_id。 |
| 18 | `assistant_level` | integer | 【说明】明细字段,用于记录事实取值。 【示例】10明细字段用于记录事实取值。 【ODS来源】assistant_service_records - assistant_level。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - assistant_level。 |
| 19 | `level_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】初级(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_service_records - levelName。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - levelName。 |
| 20 | `skill_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683529513797标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - skill_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - skill_id。 |
| 21 | `skill_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】基础课(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_service_records - skillName。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - skillName。 |
| 22 | `ledger_unit_price` | numeric(10,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】98.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_service_records - ledger_unit_price。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_unit_price。 |
| 23 | `ledger_amount` | numeric(10,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】206.67(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_service_records - ledger_amount。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_amount。 |
| 24 | `projected_income` | numeric(10,2) | 【说明】明细字段,用于记录事实取值。 【示例】168.0(明细字段,用于记录事实取值)。 【ODS来源】assistant_service_records - projected_income。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - projected_income。 |
| 25 | `coupon_deduct_money` | numeric(10,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_service_records - coupon_deduct_money。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - coupon_deduct_money。 |
| 26 | `income_seconds` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】7560数量/时长字段,用于统计与计量)。 【ODS来源】assistant_service_records - income_seconds。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - income_seconds。 |
| 27 | `real_use_seconds` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】7592数量/时长字段,用于统计与计量)。 【ODS来源】assistant_service_records - real_use_seconds。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - real_use_seconds。 |
| 28 | `add_clock` | integer | 【说明】明细字段,用于记录事实取值。 【示例】0明细字段用于记录事实取值。 【ODS来源】assistant_service_records - add_clock。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - add_clock。 |
| 29 | `create_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:25:11时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_service_records - create_time。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - create_time。 |
| 30 | `start_use_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 21:18:18时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_service_records - start_use_time。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - start_use_time。 |
| 31 | `last_use_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:24:50时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_service_records - last_use_time。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - last_use_time。 |
| 32 | `is_delete` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_service_records - is_delete。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - is_delete。 |
| 33 | `real_service_money` | numeric(18,2) | |
---
### dwd.dwd_assistant_service_log_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `assistant_service_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957913441292165标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - id。 |
| 2 | `table_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】S1名称字段用于展示与辅助识别。 【ODS来源】assistant_service_records - tableName。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - tableName。 |
| 3 | `assistant_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】何海婷(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_service_records - assistantName。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - assistantName。 |
| 4 | `ledger_name` | character varying(128) | 【说明】名称字段,用于展示与辅助识别。 【示例】27-泡芙(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_service_records - ledger_name。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_name。 |
| 5 | `ledger_group_name` | character varying(128) | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】assistant_service_records - ledger_group_name。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_group_name。 |
| 6 | `ledger_count` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】7592数量/时长字段,用于统计与计量)。 【ODS来源】assistant_service_records - ledger_count。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_count。 |
| 7 | `member_discount_amount` | numeric(10,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_service_records - member_discount_amount。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - member_discount_amount。 |
| 8 | `manual_discount_amount` | numeric(10,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_service_records - manual_discount_amount。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - manual_discount_amount。 |
| 9 | `service_money` | numeric(10,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_service_records - service_money。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - service_money。 |
| 10 | `returns_clock` | integer | 【说明】明细字段,用于记录事实取值。 【示例】0明细字段用于记录事实取值。 【ODS来源】assistant_service_records - returns_clock。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - returns_clock。 |
| 11 | `ledger_start_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 21:18:18时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_service_records - ledger_start_time。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_start_time。 |
| 12 | `ledger_end_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:24:50时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_service_records - ledger_end_time。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_end_time。 |
| 13 | `ledger_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_service_records - ledger_status。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - ledger_status。 |
| 14 | `is_confirm` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】2布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_service_records - is_confirm。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - is_confirm。 |
| 15 | `is_single_order` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】1布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_service_records - is_single_order。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - is_single_order。 |
| 16 | `is_not_responding` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_service_records - is_not_responding。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - is_not_responding。 |
| 17 | `is_trash` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】assistant_service_records - is_trash。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - is_trash。 |
| 18 | `trash_applicant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - trash_applicant_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - trash_applicant_id。 |
| 19 | `trash_applicant_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】assistant_service_records - trash_applicant_name。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - trash_applicant_name。 |
| 20 | `trash_reason` | character varying(255) | 【说明】明细字段,用于记录事实取值。 【示例】NULL明细字段用于记录事实取值。 【ODS来源】assistant_service_records - trash_reason。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - trash_reason。 |
| 21 | `salesman_user_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - salesman_user_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - salesman_user_id。 |
| 22 | `salesman_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】assistant_service_records - salesman_name。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - salesman_name。 |
| 23 | `salesman_org_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_service_records - salesman_org_id。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - salesman_org_id。 |
| 24 | `skill_grade` | integer | 【说明】明细字段,用于记录事实取值。 【示例】0明细字段用于记录事实取值。 【ODS来源】assistant_service_records - skill_grade。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - skill_grade。 |
| 25 | `service_grade` | integer | 【说明】明细字段,用于记录事实取值。 【示例】0明细字段用于记录事实取值。 【ODS来源】assistant_service_records - service_grade。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - service_grade。 |
| 26 | `composite_grade` | numeric(5,2) | 【说明】明细字段,用于记录事实取值。 【示例】0.0(明细字段,用于记录事实取值)。 【ODS来源】assistant_service_records - composite_grade。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - composite_grade。 |
| 27 | `sum_grade` | numeric(10,2) | 【说明】明细字段,用于记录事实取值。 【示例】0.0(明细字段,用于记录事实取值)。 【ODS来源】assistant_service_records - sum_grade。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - sum_grade。 |
| 28 | `get_grade_times` | integer | 【说明】明细字段,用于记录事实取值。 【示例】0明细字段用于记录事实取值。 【ODS来源】assistant_service_records - get_grade_times。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - get_grade_times。 |
| 29 | `grade_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】assistant_service_records - grade_status。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - grade_status。 |
| 30 | `composite_grade_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】0001-01-01 00:00:00时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_service_records - composite_grade_time。 【JSON字段】assistant_service_records.json - data.orderAssistantDetails - composite_grade_time。 |
| 31 | `assistant_team_name` | text | |
#### 🆕 拟新增字段
| # | 字段名 | 建议类型 | 来源 ODS 列 | 说明 |
|---|--------|---------|------------|------|
| 1 | `operator_id` | bigint | assistant_service_records.operator_id | 操作员 ID如收银员 |
| 2 | `operator_name` | text | assistant_service_records.operator_name | 操作员名称快照 |
---
### dwd.dwd_assistant_trash_event
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `assistant_trash_event_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957675849518789标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_cancellation_records - id。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - id。 |
| 2 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_cancellation_records - siteId。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - siteId。 |
| 3 | `table_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793016660660357标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_cancellation_records - tableId。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - tableId。 |
| 4 | `table_area_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791963816579205标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_cancellation_records - tableAreaId。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - tableAreaId。 |
| 5 | `assistant_no` | character varying(32) | 【说明】明细字段,用于记录事实取值。 【示例】泡芙(明细字段,用于记录事实取值)。 【ODS来源】assistant_cancellation_records - assistantName。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - assistantName。 |
| 6 | `assistant_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】泡芙(名称字段,用于展示与辅助识别)。 【ODS来源】assistant_cancellation_records - assistantName。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - assistantName。 |
| 7 | `charge_minutes_raw` | integer | 【说明】明细字段,用于记录事实取值。 【示例】214明细字段用于记录事实取值。 【ODS来源】assistant_cancellation_records - pdChargeMinutes。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - pdChargeMinutes。 |
| 8 | `abolish_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】5.83(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】assistant_cancellation_records - assistantAbolishAmount。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - assistantAbolishAmount。 |
| 9 | `trash_reason` | character varying(255) | 【说明】明细字段,用于记录事实取值。 【示例】NULL明细字段用于记录事实取值。 【ODS来源】assistant_cancellation_records - trashReason。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - trashReason。 |
| 10 | `create_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 19:23:29时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】assistant_cancellation_records - createTime。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - createTime。 |
| 11 | `tenant_id` | bigint | |
---
### dwd.dwd_assistant_trash_event_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `assistant_trash_event_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957675849518789标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】assistant_cancellation_records - id。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - id。 |
| 2 | `table_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】C1名称字段用于展示与辅助识别。 【ODS来源】assistant_cancellation_records - tableName。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - tableName。 |
| 3 | `table_area_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】C区名称字段用于展示与辅助识别。 【ODS来源】assistant_cancellation_records - tableArea。 【JSON字段】assistant_cancellation_records.json - data.abolitionAssistants - tableArea。 |
#### 🆕 拟新增字段
| # | 字段名 | 建议类型 | 来源 ODS 列 | 说明 |
|---|--------|---------|------------|------|
| 1 | `assistant_no_int` | integer | assistant_cancellation_records.assistanton | 助教编号(整数形式),语义 = assistant_no |
---
### dwd.dwd_store_goods_sale
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `store_goods_sale_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957924029550406标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - id。 |
| 2 | `order_trade_no` | bigint | 【说明】明细字段,用于记录事实取值。 【示例】2957858167230149明细字段用于记录事实取值。 【ODS来源】store_goods_sales_records - order_trade_no。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - order_trade_no。 |
| 3 | `order_settle_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957922914357125标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - order_settle_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - order_settle_id。 |
| 4 | `order_pay_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - order_pay_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - order_pay_id。 |
| 5 | `order_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957858456391557标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - order_goods_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - order_goods_id。 |
| 6 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - site_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - site_id。 |
| 7 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683160709957标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - tenant_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - tenant_id。 |
| 8 | `site_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793026176012357标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - site_goods_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - site_goods_id。 |
| 9 | `tenant_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2792115932417925标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - tenant_goods_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - tenant_goods_id。 |
| 10 | `tenant_goods_category_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683528350540标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - tenant_goods_category_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - tenant_goods_category_id。 |
| 11 | `tenant_goods_business_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683528317768标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - tenant_goods_business_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - tenant_goods_business_id。 |
| 12 | `site_table_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793003705192517标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - site_table_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - site_table_id。 |
| 13 | `ledger_name` | character varying(200) | 【说明】名称字段,用于展示与辅助识别。 【示例】哇哈哈矿泉水(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_sales_records - ledger_name。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - ledger_name。 |
| 14 | `ledger_group_name` | character varying(100) | 【说明】名称字段,用于展示与辅助识别。 【示例】酒水(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_sales_records - ledger_group_name。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - ledger_group_name。 |
| 15 | `ledger_unit_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】5.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - ledger_unit_price。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - ledger_unit_price。 |
| 16 | `ledger_count` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】1数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_sales_records - ledger_count。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - ledger_count。 |
| 17 | `ledger_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】5.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - ledger_amount。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - ledger_amount。 |
| 18 | `discount_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - discount_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - discount_money。 |
| 19 | `real_goods_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】5.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - real_goods_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - real_goods_money。 |
| 20 | `cost_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.01(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - cost_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - cost_money。 |
| 21 | `ledger_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】store_goods_sales_records - ledger_status。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - ledger_status。 |
| 22 | `is_delete` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】store_goods_sales_records - is_delete。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - is_delete。 |
| 23 | `create_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 23:35:57时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】store_goods_sales_records - create_time。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - create_time。 |
| 24 | `coupon_share_money` | numeric(18,2) | |
---
### dwd.dwd_store_goods_sale_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `store_goods_sale_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957924029550406标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - id。 |
| 2 | `legacy_order_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957858456391557标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - order_goods_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - order_goods_id。 |
| 3 | `site_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】朗朗桌球(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_sales_records - siteName。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - siteName。 |
| 4 | `legacy_site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - site_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - site_id。 |
| 5 | `goods_remark` | text | 【说明】明细字段,用于记录事实取值。 【示例】哇哈哈矿泉水(明细字段,用于记录事实取值)。 【ODS来源】store_goods_sales_records - goods_remark。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - goods_remark。 |
| 6 | `option_value_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】store_goods_sales_records - option_value_name。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - option_value_name。 |
| 7 | `operator_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】收银员:郑丽珊(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_sales_records - operator_name。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - operator_name。 |
| 8 | `open_salesman_flag` | integer | 【说明】明细字段,用于记录事实取值。 【示例】2明细字段用于记录事实取值。 【ODS来源】store_goods_sales_records - openSalesman。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - openSalesman。 |
| 9 | `salesman_user_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - salesman_user_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - salesman_user_id。 |
| 10 | `salesman_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】store_goods_sales_records - salesman_name。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - salesman_name。 |
| 11 | `salesman_role_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - salesman_role_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - salesman_role_id。 |
| 12 | `salesman_org_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - sales_man_org_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - sales_man_org_id。 |
| 13 | `discount_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - discount_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - discount_money。 |
| 14 | `returns_number` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】0数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_sales_records - returns_number。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - returns_number。 |
| 15 | `coupon_deduct_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - coupon_deduct_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - coupon_deduct_money。 |
| 16 | `member_discount_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - member_discount_amount。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - member_discount_amount。 |
| 17 | `point_discount_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - point_discount_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - point_discount_money。 |
| 18 | `point_discount_money_cost` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - point_discount_money_cost。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - point_discount_money_cost。 |
| 19 | `package_coupon_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - package_coupon_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - package_coupon_id。 |
| 20 | `order_coupon_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - order_coupon_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - order_coupon_id。 |
| 21 | `member_coupon_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - member_coupon_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - member_coupon_id。 |
| 22 | `option_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - option_price。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - option_price。 |
| 23 | `option_member_discount_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - option_member_discount_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - option_member_discount_money。 |
| 24 | `option_coupon_deduct_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - option_coupon_deduct_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - option_coupon_deduct_money。 |
| 25 | `push_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_sales_records - push_money。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - push_money。 |
| 26 | `is_single_order` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】1布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】store_goods_sales_records - is_single_order。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - is_single_order。 |
| 27 | `sales_type` | integer | 【说明】明细字段,用于记录事实取值。 【示例】1明细字段用于记录事实取值。 【ODS来源】store_goods_sales_records - sales_type。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - sales_type。 |
| 28 | `operator_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790687322443013标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_sales_records - operator_id。 【JSON字段】store_goods_sales_records.json - data.orderGoodsLedgers - operator_id。 |
---
### dwd.dwd_member_balance_change
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `balance_change_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957881605869253标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - id。 |
| 2 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683160709957标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - tenant_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - tenant_id。 |
| 3 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - site_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - site_id。 |
| 4 | `register_site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - register_site_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - register_site_id。 |
| 5 | `tenant_member_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2799212845565701标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - tenant_member_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - tenant_member_id。 |
| 6 | `system_member_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2799212844549893标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - system_member_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - system_member_id。 |
| 7 | `tenant_member_card_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2799219999295237标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - tenant_member_card_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - tenant_member_card_id。 |
| 8 | `card_type_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793249295533893标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - card_type_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - card_type_id。 |
| 9 | `card_type_name` | character varying(32) | 【说明】名称字段,用于展示与辅助识别。 【示例】储值卡(名称字段,用于展示与辅助识别)。 【ODS来源】member_balance_changes - memberCardTypeName。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - memberCardTypeName。 |
| 10 | `member_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】曾丹烨(名称字段,用于展示与辅助识别)。 【ODS来源】member_balance_changes - memberName。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - memberName。 |
| 11 | `member_mobile` | character varying(20) | 【说明】明细字段,用于记录事实取值。 【示例】13922213242明细字段用于记录事实取值。 【ODS来源】member_balance_changes - memberMobile。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - memberMobile。 |
| 12 | `balance_before` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】816.3(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】member_balance_changes - before。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - before。 |
| 13 | `change_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】-120.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】member_balance_changes - account_data。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - account_data。 |
| 14 | `balance_after` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】696.3(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】member_balance_changes - after。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - after。 |
| 15 | `from_type` | integer | 【说明】明细字段,用于记录事实取值。 【示例】1明细字段用于记录事实取值。 【ODS来源】member_balance_changes - from_type。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - from_type。 |
| 16 | `payment_method` | integer | 【说明】明细字段,用于记录事实取值。 【示例】0明细字段用于记录事实取值。 【ODS来源】member_balance_changes - payment_method。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - payment_method。 |
| 17 | `change_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-11-09 22:52:48时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】member_balance_changes - create_time。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - create_time。 |
| 18 | `is_delete` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】member_balance_changes - is_delete。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - is_delete。 |
| 19 | `remark` | character varying(255) | 【说明】明细字段,用于记录事实取值。 【示例】充值退款(明细字段,用于记录事实取值)。 【ODS来源】member_balance_changes - remark。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - remark。 |
| 20 | `principal_before` | numeric(18,2) | 【说明】金额字段:本金变动前余额。 【ODS来源】member_balance_changes - principal_before。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - principal_before。 |
| 21 | `principal_after` | numeric(18,2) | 【说明】金额字段:本金变动后余额。 【ODS来源】member_balance_changes - principal_after。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - principal_after。 |
| 22 | `principal_change_amount` | numeric(18,2) | 【说明】金额字段本金变动金额principal_after - principal_beforeETL 计算字段。 |
---
### dwd.dwd_member_balance_change_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `balance_change_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2957881605869253标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - id。 |
| 2 | `pay_site_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】朗朗桌球(名称字段,用于展示与辅助识别)。 【ODS来源】member_balance_changes - paySiteName。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - paySiteName。 |
| 3 | `register_site_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】朗朗桌球(名称字段,用于展示与辅助识别)。 【ODS来源】member_balance_changes - registerSiteName。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - registerSiteName。 |
| 4 | `refund_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】member_balance_changes - refund_amount。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - refund_amount。 |
| 5 | `operator_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790687322443013标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】member_balance_changes - operator_id。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - operator_id。 |
| 6 | `operator_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】收银员:郑丽珊(名称字段,用于展示与辅助识别)。 【ODS来源】member_balance_changes - operator_name。 【JSON字段】member_balance_changes.json - data.tenantMemberCardLogs - operator_name。 |
| 7 | `principal_data` | text | |
#### 🆕 拟新增字段
| # | 字段名 | 建议类型 | 来源 ODS 列 | 说明 |
|---|--------|---------|------------|------|
| 1 | `relate_id` | bigint | member_balance_changes.relate_id | 关联充值/订单 ID0=无关联) |
---
### dwd.dim_tenant_goods
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `tenant_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791925230096261标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - id。 |
| 2 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683160709957标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - tenant_id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - tenant_id。 |
| 3 | `supplier_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - supplier_id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - supplier_id。 |
| 4 | `category_name` | character varying(64) | 【说明】名称字段,用于展示与辅助识别。 【示例】饮料(名称字段,用于展示与辅助识别)。 【ODS来源】tenant_goods_master - categoryName。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - categoryName。 |
| 5 | `goods_category_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683528350539标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - goods_category_id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_category_id。 |
| 6 | `goods_second_category_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683528350540标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - goods_second_category_id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_second_category_id。 |
| 7 | `goods_name` | character varying(128) | 【说明】名称字段,用于展示与辅助识别。 【示例】东方树叶(名称字段,用于展示与辅助识别)。 【ODS来源】tenant_goods_master - goods_name。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_name。 |
| 8 | `goods_number` | character varying(64) | 【说明】数量/时长字段,用于统计与计量。 【示例】1数量/时长字段,用于统计与计量)。 【ODS来源】tenant_goods_master - goods_number。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_number。 |
| 9 | `unit` | character varying(16) | 【说明】维度字段,用于补充维度属性。 【示例】瓶(维度字段,用于补充维度属性)。 【ODS来源】tenant_goods_master - unit。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - unit。 |
| 10 | `market_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】8.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】tenant_goods_master - market_price。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - market_price。 |
| 11 | `goods_state` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - goods_state。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_state。 |
| 12 | `create_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-07-15 17:13:15时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】tenant_goods_master - create_time。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - create_time。 |
| 13 | `update_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】2025-10-29 23:51:38时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】tenant_goods_master - update_time。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - update_time。 |
| 14 | `is_delete` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】tenant_goods_master - is_delete。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - is_delete。 |
| 15 | `not_sale` | integer | |
| 16 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 17 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 18 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 19 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
---
### dwd.dim_tenant_goods_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `tenant_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791925230096261标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - id。 |
| 2 | `remark_name` | character varying(128) | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】tenant_goods_master - remark_name。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - remark_name。 |
| 3 | `pinyin_initial` | character varying(128) | 【说明】维度字段,用于补充维度属性。 【示例】DFSY,DFSX维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - pinyin_initial。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - pinyin_initial。 |
| 4 | `goods_cover` | character varying(512) | 【说明】维度字段,用于补充维度属性。 【示例】https://oss.ficoo.vip/admin/ZwS8fj_1753175129443.jpg维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - goods_cover。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_cover。 |
| 5 | `goods_bar_code` | character varying(64) | 【说明】维度字段,用于补充维度属性。 【示例】NULL维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - goods_bar_code。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - goods_bar_code。 |
| 6 | `commodity_code` | character varying(64) | 【说明】维度字段,用于补充维度属性。 【示例】10000028维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - commodity_code。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - commodity_code。 |
| 7 | `commodity_code_list` | character varying(256) | 【说明】维度字段,用于补充维度属性。 【示例】10000028维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - commodity_code。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - commodity_code。 |
| 8 | `min_discount_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】tenant_goods_master - min_discount_price。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - min_discount_price。 |
| 9 | `cost_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】tenant_goods_master - cost_price。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - cost_price。 |
| 10 | `cost_price_type` | integer | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】1金额字段用于计费/结算/核算等金额计算)。 【ODS来源】tenant_goods_master - cost_price_type。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - cost_price_type。 |
| 11 | `able_discount` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】1数量/时长字段,用于统计与计量)。 【ODS来源】tenant_goods_master - able_discount。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - able_discount。 |
| 12 | `sale_channel` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - sale_channel。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - sale_channel。 |
| 13 | `is_warehousing` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】1布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】tenant_goods_master - is_warehousing。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - is_warehousing。 |
| 14 | `is_in_site` | boolean | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】false布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】tenant_goods_master - isInSite派生BOOLEAN(isInSite))。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - isInSite派生BOOLEAN(isInSite))。 |
| 15 | `able_site_transfer` | integer | 【说明】维度字段,用于补充维度属性。 【示例】2维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - able_site_transfer。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - able_site_transfer。 |
| 16 | `common_sale_royalty` | integer | 【说明】维度字段,用于补充维度属性。 【示例】0维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - common_sale_royalty。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - common_sale_royalty。 |
| 17 | `point_sale_royalty` | integer | 【说明】维度字段,用于补充维度属性。 【示例】0维度字段用于补充维度属性。 【ODS来源】tenant_goods_master - point_sale_royalty。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - point_sale_royalty。 |
| 18 | `out_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】0标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】tenant_goods_master - out_goods_id。 【JSON字段】tenant_goods_master.json - data.tenantGoodsList - out_goods_id。 |
| 19 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 20 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 21 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 22 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】tenant_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
---
### dwd.dim_table
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `table_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791964216463493标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】site_tables_master - id。 【JSON字段】site_tables_master.json - data.siteTables - id。 |
| 2 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】site_tables_master - site_id。 【JSON字段】site_tables_master.json - data.siteTables - site_id。 |
| 3 | `table_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】A1名称字段用于展示与辅助识别。 【ODS来源】site_tables_master - table_name。 【JSON字段】site_tables_master.json - data.siteTables - table_name。 |
| 4 | `site_table_area_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791963794329671标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】site_tables_master - site_table_area_id。 【JSON字段】site_tables_master.json - data.siteTables - site_table_area_id。 |
| 5 | `site_table_area_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】A区名称字段用于展示与辅助识别。 【ODS来源】site_tables_master - areaName。 【JSON字段】site_tables_master.json - data.siteTables - areaName。 |
| 6 | `tenant_table_area_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791963794329671标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】site_tables_master - site_table_area_id。 【JSON字段】site_tables_master.json - data.siteTables - site_table_area_id。 |
| 7 | `table_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】site_tables_master - table_price。 【JSON字段】site_tables_master.json - data.siteTables - table_price。 |
| 8 | `order_id` | bigint | |
| 9 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 10 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 11 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 12 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
---
### dwd.dim_table_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `table_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791964216463493标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】site_tables_master - id。 【JSON字段】site_tables_master.json - data.siteTables - id。 |
| 2 | `show_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】site_tables_master - show_status。 【JSON字段】site_tables_master.json - data.siteTables - show_status。 |
| 3 | `is_online_reservation` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】2布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】site_tables_master - is_online_reservation。 【JSON字段】site_tables_master.json - data.siteTables - is_online_reservation。 |
| 4 | `table_cloth_use_time` | integer | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】1863727时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】site_tables_master - table_cloth_use_time。 【JSON字段】site_tables_master.json - data.siteTables - table_cloth_use_time。 |
| 5 | `table_cloth_use_cycle` | integer | 【说明】维度字段,用于补充维度属性。 【示例】0维度字段用于补充维度属性。 【ODS来源】site_tables_master - table_cloth_use_Cycle。 【JSON字段】site_tables_master.json - data.siteTables - table_cloth_use_Cycle。 |
| 6 | `table_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】site_tables_master - table_status。 【JSON字段】site_tables_master.json - data.siteTables - table_status。 |
| 7 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 8 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 9 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 10 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】site_tables_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
#### 🆕 拟新增字段
| # | 字段名 | 建议类型 | 来源 ODS 列 | 说明 |
|---|--------|---------|------------|------|
| 1 | `sitename` | text | site_tables_master.sitename | 门店名称快照 |
| 2 | `applet_qr_code_url` | text | site_tables_master.appletqrcodeurl | 小程序二维码 URL当前全 NULL |
| 3 | `audit_status` | integer | site_tables_master.audit_status | 审核状态枚举 |
| 4 | `charge_free` | integer | site_tables_master.charge_free | 是否免费0=否) |
| 5 | `create_time` | timestamptz | site_tables_master.create_time | 台桌创建时间 |
| 6 | `delay_lights_time` | integer | site_tables_master.delay_lights_time | 延迟关灯时间(秒) |
| 7 | `is_rest_area` | integer | site_tables_master.is_rest_area | 是否休息区0=否) |
| 8 | `light_status` | integer | site_tables_master.light_status | 灯控状态枚举 |
| 9 | `only_allow_groupon` | integer | site_tables_master.only_allow_groupon | 是否仅允许团购 |
| 10 | `order_delay_time` | integer | site_tables_master.order_delay_time | 订单延迟时间(秒) |
| 11 | `self_table` | integer | site_tables_master.self_table | 是否自助台桌 |
| 12 | `table_status_name` | text | site_tables_master.tablestatusname | 台桌状态名称(空闲中/使用中/暂停中) |
| 13 | `temporary_light_second` | integer | site_tables_master.temporary_light_second | 临时灯光秒数 |
| 14 | `virtual_table` | integer | site_tables_master.virtual_table | 是否虚拟台桌0=否) |
---
### dwd.dwd_recharge_order
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `recharge_order_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】recharge_settlements - id。 【JSON字段】recharge_settlements.json - $ - id。 |
| 2 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】recharge_settlements - tenantid。 【JSON字段】recharge_settlements.json - $ - tenantid。 |
| 3 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】recharge_settlements - siteid。 【JSON字段】recharge_settlements.json - $ - siteid。 |
| 4 | `member_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】recharge_settlements - memberid。 【JSON字段】recharge_settlements.json - $ - memberid。 |
| 5 | `member_name_snapshot` | text | 【说明】明细字段,用于记录事实取值。 【示例】NULL明细字段用于记录事实取值。 【ODS来源】recharge_settlements - membername。 【JSON字段】recharge_settlements.json - $ - membername。 |
| 6 | `member_phone_snapshot` | text | 【说明】明细字段,用于记录事实取值。 【示例】NULL明细字段用于记录事实取值。 【ODS来源】recharge_settlements - memberphone。 【JSON字段】recharge_settlements.json - $ - memberphone。 |
| 7 | `tenant_member_card_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】recharge_settlements - tenantmembercardid。 【JSON字段】recharge_settlements.json - $ - tenantmembercardid。 |
| 8 | `member_card_type_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】recharge_settlements - membercardtypename。 【JSON字段】recharge_settlements.json - $ - membercardtypename。 |
| 9 | `settle_relate_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】NULL标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】recharge_settlements - settlerelateid。 【JSON字段】recharge_settlements.json - $ - settlerelateid。 |
| 10 | `settle_type` | integer | 【说明】明细字段,用于记录事实取值。 【示例】NULL明细字段用于记录事实取值。 【ODS来源】recharge_settlements - settletype。 【JSON字段】recharge_settlements.json - $ - settletype。 |
| 11 | `settle_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】NULL名称字段用于展示与辅助识别。 【ODS来源】recharge_settlements - settlename。 【JSON字段】recharge_settlements.json - $ - settlename。 |
| 12 | `is_first` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】NULL布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】recharge_settlements - isfirst。 【JSON字段】recharge_settlements.json - $ - isfirst。 |
| 13 | `pay_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】NULL金额字段用于计费/结算/核算等金额计算)。 【ODS来源】recharge_settlements - payamount。 【JSON字段】recharge_settlements.json - $ - payamount。 |
| 14 | `refund_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】NULL金额字段用于计费/结算/核算等金额计算)。 【ODS来源】recharge_settlements - refundamount。 【JSON字段】recharge_settlements.json - $ - refundamount。 |
| 15 | `point_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】NULL金额字段用于计费/结算/核算等金额计算)。 【ODS来源】recharge_settlements - pointamount。 【JSON字段】recharge_settlements.json - $ - pointamount。 |
| 16 | `cash_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】NULL金额字段用于计费/结算/核算等金额计算)。 【ODS来源】recharge_settlements - cashamount。 【JSON字段】recharge_settlements.json - $ - cashamount。 |
| 17 | `payment_method` | integer | 【说明】明细字段,用于记录事实取值。 【示例】NULL明细字段用于记录事实取值。 【ODS来源】recharge_settlements - paymentmethod。 【JSON字段】recharge_settlements.json - $ - paymentmethod。 |
| 18 | `create_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】NULL时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】recharge_settlements - createtime。 【JSON字段】recharge_settlements.json - $ - createtime。 |
| 19 | `pay_time` | timestamp with time zone | 【说明】时间/日期字段,用于记录业务时间与统计口径对齐。 【示例】NULL时间/日期字段,用于记录业务时间与统计口径对齐)。 【ODS来源】recharge_settlements - paytime。 【JSON字段】recharge_settlements.json - $ - paytime。 |
| 20 | `pl_coupon_sale_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【ODS来源】recharge_settlements - plcouponsaleamount。 【JSON字段】recharge_settlements.json - $ - plcouponsaleamount。 |
| 21 | `mervou_sales_amount` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【ODS来源】recharge_settlements - mervousalesamount。 【JSON字段】recharge_settlements.json - $ - mervousalesamount。 |
| 22 | `electricity_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【ODS来源】recharge_settlements - electricitymoney。 【JSON字段】recharge_settlements.json - $ - electricitymoney。 |
| 23 | `real_electricity_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【ODS来源】recharge_settlements - realelectricitymoney。 【JSON字段】recharge_settlements.json - $ - realelectricitymoney。 |
| 24 | `electricity_adjust_money` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【ODS来源】recharge_settlements - electricityadjustmoney。 【JSON字段】recharge_settlements.json - $ - electricityadjustmoney。 |
#### 🔗 仅补 FACT_MAPPINGSDWD 列已存在)
| # | DWD 列 | ODS 列 | 说明 |
|---|--------|--------|------|
| 1 | `pl_coupon_sale_amount` | `plcouponsaleamount` | 平台券销售额 |
| 2 | `mervou_sales_amount` | `mervousalesamount` | 美团券销售额 |
| 3 | `electricity_money` | `electricitymoney` | 电费金额 |
| 4 | `real_electricity_money` | `realelectricitymoney` | 实际电费金额 |
| 5 | `electricity_adjust_money` | `electricityadjustmoney` | 电费调整金额 |
---
### dwd.dim_store_goods
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `site_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793025851560005标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - id。 【JSON字段】store_goods_master.json - data.orderGoodsList - id。 |
| 2 | `tenant_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790683160709957标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - tenant_id。 【JSON字段】store_goods_master.json - data.orderGoodsList - tenant_id。 |
| 3 | `site_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2790685415443269标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - site_id。 【JSON字段】store_goods_master.json - data.orderGoodsList - site_id。 |
| 4 | `tenant_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2792178593255301标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - tenant_goods_id。 【JSON字段】store_goods_master.json - data.orderGoodsList - tenant_goods_id。 |
| 5 | `goods_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】合味道泡面(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_master - goods_name。 【JSON字段】store_goods_master.json - data.orderGoodsList - goods_name。 |
| 6 | `goods_category_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2791941988405125标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - goods_category_id。 【JSON字段】store_goods_master.json - data.orderGoodsList - goods_category_id。 |
| 7 | `goods_second_category_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793236829620037标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - goods_second_category_id。 【JSON字段】store_goods_master.json - data.orderGoodsList - goods_second_category_id。 |
| 8 | `category_level1_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】零食(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_master - oneCategoryName。 【JSON字段】store_goods_master.json - data.orderGoodsList - oneCategoryName。 |
| 9 | `category_level2_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】面(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_master - twoCategoryName。 【JSON字段】store_goods_master.json - data.orderGoodsList - twoCategoryName。 |
| 10 | `batch_stock_qty` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】18数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - stock。 【JSON字段】store_goods_master.json - data.orderGoodsList - stock。 |
| 11 | `sale_qty` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】104数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - sale_num。 【JSON字段】store_goods_master.json - data.orderGoodsList - sale_num。 |
| 12 | `total_sales_qty` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】104数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - total_sales。 【JSON字段】store_goods_master.json - data.orderGoodsList - total_sales。 |
| 13 | `sale_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】12.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_master - sale_price。 【JSON字段】store_goods_master.json - data.orderGoodsList - sale_price。 |
| 14 | `created_at` | timestamp with time zone | 【说明】维度字段,用于补充维度属性。 【示例】2025-07-16 11:52:51维度字段用于补充维度属性。 【ODS来源】store_goods_master - create_time。 【JSON字段】store_goods_master.json - data.orderGoodsList - create_time。 |
| 15 | `updated_at` | timestamp with time zone | 【说明】维度字段,用于补充维度属性。 【示例】2025-11-09 07:23:47维度字段用于补充维度属性。 【ODS来源】store_goods_master - update_time。 【JSON字段】store_goods_master.json - data.orderGoodsList - update_time。 |
| 16 | `avg_monthly_sales` | numeric(18,4) | 【说明】维度字段,用于补充维度属性。 【示例】1.32(维度字段,用于补充维度属性)。 【ODS来源】store_goods_master - average_monthly_sales。 【JSON字段】store_goods_master.json - data.orderGoodsList - average_monthly_sales。 |
| 17 | `goods_state` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】store_goods_master - goods_state。 【JSON字段】store_goods_master.json - data.orderGoodsList - goods_state。 |
| 18 | `enable_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】store_goods_master - enable_status。 【JSON字段】store_goods_master.json - data.orderGoodsList - enable_status。 |
| 19 | `send_state` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】store_goods_master - send_state。 【JSON字段】store_goods_master.json - data.orderGoodsList - send_state。 |
| 20 | `is_delete` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】0布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】store_goods_master - is_delete。 【JSON字段】store_goods_master.json - data.orderGoodsList - is_delete。 |
| 21 | `commodity_code` | text | |
| 22 | `not_sale` | integer | |
| 23 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 24 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 25 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 26 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
---
### dwd.dim_store_goods_ex
#### 现有字段
| # | 字段名 | 数据类型 | 说明 |
|---|--------|---------|------|
| 1 | `site_goods_id` | bigint | 【说明】标识类 ID 字段,用于关联/定位相关实体。 【示例】2793025851560005标识类 ID 字段,用于关联/定位相关实体)。 【ODS来源】store_goods_master - id。 【JSON字段】store_goods_master.json - data.orderGoodsList - id。 |
| 2 | `site_name` | text | 【说明】名称字段,用于展示与辅助识别。 【示例】朗朗桌球(名称字段,用于展示与辅助识别)。 【ODS来源】store_goods_master - siteName。 【JSON字段】store_goods_master.json - data.orderGoodsList - siteName。 |
| 3 | `unit` | text | 【说明】维度字段,用于补充维度属性。 【示例】桶(维度字段,用于补充维度属性)。 【ODS来源】store_goods_master - unit。 【JSON字段】store_goods_master.json - data.orderGoodsList - unit。 |
| 4 | `goods_barcode` | text | 【说明】维度字段,用于补充维度属性。 【示例】NULL维度字段用于补充维度属性。 【ODS来源】store_goods_master - goods_bar_code。 【JSON字段】store_goods_master.json - data.orderGoodsList - goods_bar_code。 |
| 5 | `goods_cover_url` | text | 【说明】维度字段,用于补充维度属性。 【示例】https://oss.ficoo.vip/admin/8M1WM7_1753204221337.jpg维度字段用于补充维度属性。 【ODS来源】store_goods_master - goods_cover。 【JSON字段】store_goods_master.json - data.orderGoodsList - goods_cover。 |
| 6 | `pinyin_initial` | text | 【说明】维度字段,用于补充维度属性。 【示例】HWDPM,GWDPM维度字段用于补充维度属性。 【ODS来源】store_goods_master - pinyin_initial。 【JSON字段】store_goods_master.json - data.orderGoodsList - pinyin_initial。 |
| 7 | `stock_qty` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】18数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - stock。 【JSON字段】store_goods_master.json - data.orderGoodsList - stock。 |
| 8 | `stock_secondary_qty` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】0数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - stock_A。 【JSON字段】store_goods_master.json - data.orderGoodsList - stock_A。 |
| 9 | `safety_stock_qty` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】0数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - safe_stock。 【JSON字段】store_goods_master.json - data.orderGoodsList - safe_stock。 |
| 10 | `cost_price` | numeric(18,4) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_master - cost_price。 【JSON字段】store_goods_master.json - data.orderGoodsList - cost_price。 |
| 11 | `cost_price_type` | integer | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】1金额字段用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_master - cost_price_type。 【JSON字段】store_goods_master.json - data.orderGoodsList - cost_price_type。 |
| 12 | `provisional_total_cost` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_master - total_purchase_cost。 【JSON字段】store_goods_master.json - data.orderGoodsList - total_purchase_cost。 |
| 13 | `total_purchase_cost` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】0.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_master - total_purchase_cost。 【JSON字段】store_goods_master.json - data.orderGoodsList - total_purchase_cost。 |
| 14 | `min_discount_price` | numeric(18,2) | 【说明】金额字段,用于计费/结算/核算等金额计算。 【示例】7.0(金额字段,用于计费/结算/核算等金额计算)。 【ODS来源】store_goods_master - min_discount_price。 【JSON字段】store_goods_master.json - data.orderGoodsList - min_discount_price。 |
| 15 | `is_discountable` | integer | 【说明】数量/时长字段,用于统计与计量。 【示例】1数量/时长字段,用于统计与计量)。 【ODS来源】store_goods_master - able_discount。 【JSON字段】store_goods_master.json - data.orderGoodsList - able_discount。 |
| 16 | `days_on_shelf` | integer | 【说明】维度字段,用于补充维度属性。 【示例】13维度字段用于补充维度属性。 【ODS来源】store_goods_master - days_available。 【JSON字段】store_goods_master.json - data.orderGoodsList - days_available。 |
| 17 | `audit_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】2状态枚举字段用于标识业务状态。 【ODS来源】store_goods_master - audit_status。 【JSON字段】store_goods_master.json - data.orderGoodsList - audit_status。 |
| 18 | `sale_channel` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】store_goods_master - sale_channel。 【JSON字段】store_goods_master.json - data.orderGoodsList - sale_channel。 |
| 19 | `is_warehousing` | integer | 【说明】布尔/开关字段,用于表示是否/可用性等业务开关。 【示例】1布尔/开关字段,用于表示是否/可用性等业务开关)。 【ODS来源】store_goods_master - is_warehousing。 【JSON字段】store_goods_master.json - data.orderGoodsList - is_warehousing。 |
| 20 | `freeze_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】0状态枚举字段用于标识业务状态。 【ODS来源】store_goods_master - freeze。 【JSON字段】store_goods_master.json - data.orderGoodsList - freeze。 |
| 21 | `forbid_sell_status` | integer | 【说明】状态枚举字段,用于标识业务状态。 【示例】1状态枚举字段用于标识业务状态。 【ODS来源】store_goods_master - forbid_sell_status。 【JSON字段】store_goods_master.json - data.orderGoodsList - forbid_sell_status。 |
| 22 | `able_site_transfer` | integer | 【说明】维度字段,用于补充维度属性。 【示例】2维度字段用于补充维度属性。 【ODS来源】store_goods_master - able_site_transfer。 【JSON字段】store_goods_master.json - data.orderGoodsList - able_site_transfer。 |
| 23 | `custom_label_type` | integer | 【说明】维度字段,用于补充维度属性。 【示例】2维度字段用于补充维度属性。 【ODS来源】store_goods_master - custom_label_type。 【JSON字段】store_goods_master.json - data.orderGoodsList - custom_label_type。 |
| 24 | `option_required` | integer | 【说明】维度字段,用于补充维度属性。 【示例】1维度字段用于补充维度属性。 【ODS来源】store_goods_master - option_required。 【JSON字段】store_goods_master.json - data.orderGoodsList - option_required。 |
| 25 | `remark` | text | 【说明】维度字段,用于补充维度属性。 【示例】NULL维度字段用于补充维度属性。 【ODS来源】store_goods_master - remark。 【JSON字段】store_goods_master.json - data.orderGoodsList - remark。 |
| 26 | `sort_order` | integer | 【说明】维度字段,用于补充维度属性。 【示例】100维度字段用于补充维度属性。 【ODS来源】store_goods_master - sort。 【JSON字段】store_goods_master.json - data.orderGoodsList - sort。 |
| 27 | `scd2_start_time` | timestamp with time zone | 【说明】SCD2 开始时间(版本生效起点),用于维度慢变追踪。 【示例】2025-11-10T00:00:00+08:00SCD2 开始时间(版本生效起点),用于维度慢变追踪)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 28 | `scd2_end_time` | timestamp with time zone | 【说明】SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪。 【示例】9999-12-31T00:00:00+00:00SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 29 | `scd2_is_current` | integer | 【说明】SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录。 【示例】1SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
| 30 | `scd2_version` | integer | 【说明】SCD2 版本号(自增),用于与时间段一起避免版本重叠。 【示例】1SCD2 版本号(自增),用于与时间段一起避免版本重叠)。 【ODS来源】store_goods_master - 无DWD慢变元数据。 【JSON字段】无 - DWD慢变元数据 - 无。 |
#### 🆕 拟新增字段
| # | 字段名 | 建议类型 | 来源 ODS 列 | 说明 |
|---|--------|---------|------------|------|
| 1 | `batch_stock_quantity` | numeric | store_goods_master.batch_stock_quantity | 批次库存数量 |
---
## 第二部分:跳过的字段
| # | ODS 表 | ODS 列 | 跳过原因 |
|---|--------|--------|---------|
| 1 | store_goods_sales_records | `discount_price` | DWD 列名已被 discount_money 占用 |
| 2 | tenant_goods_master | `commoditycode` | 冗余字段DWD 已有 commodity_code + commodity_code_list |
| 3 | store_goods_master | `provisional_total_cost` | DWD 列名已被 total_purchase_cost 占用 |
| 4 | store_goods_master | `time_slot_sale` | ODS 列不存在,需确认 API |
---
## 第三部分C 类表(需新建 DWD 表)
### goods_stock_summary (→ 新建 dwd_goods_stock_summary)
| # | ODS 列名 |
|---|---------|
| 1 | `sitegoodsid` |
| 2 | `goodsname` |
| 3 | `goodsunit` |
| 4 | `goodscategoryid` |
| 5 | `goodscategorysecondid` |
| 6 | `categoryname` |
| 7 | `rangestartstock` |
| 8 | `rangeendstock` |
| 9 | `rangein` |
| 10 | `rangeout` |
| 11 | `rangesale` |
| 12 | `rangesalemoney` |
| 13 | `rangeinventory` |
| 14 | `currentstock` |
---
### goods_stock_movements (→ 新建 dwd_goods_stock_movement)
| # | ODS 列名 |
|---|---------|
| 1 | `sitegoodsstockid` |
| 2 | `tenantid` |
| 3 | `siteid` |
| 4 | `sitegoodsid` |
| 5 | `goodsname` |
| 6 | `goodscategoryid` |
| 7 | `goodssecondcategoryid` |
| 8 | `unit` |
| 9 | `price` |
| 10 | `stocktype` |
| 11 | `changenum` |
| 12 | `startnum` |
| 13 | `endnum` |
| 14 | `changenuma` |
| 15 | `startnuma` |
| 16 | `endnuma` |
| 17 | `remark` |
| 18 | `operatorname` |
| 19 | `createtime` |
---
### settlement_ticket_details (→ 新建 dwd_settlement_ticket + _ex)
| # | ODS 列名 |
|---|---------|
| 1 | `ordersettleid` |
| 2 | `actualpayment` |
| 3 | `adjustamount` |
| 4 | `consumemoney` |
| 5 | `deliveryaddress` |
| 6 | `deliveryfee` |
| 7 | `discountamount` |
| 8 | `memberid` |
| 9 | `membername` |
| 10 | `memberphone` |
| 11 | `memberprofile` |
| 12 | `orderbillno` |
| 13 | `orderid` |
| 14 | `orderitem` |
| 15 | `orderremark` |
| 16 | `payamount` |
| 17 | `paymentmethod` |
| 18 | `paytime` |
| 19 | `settleamount` |
| 20 | `settletype` |
| 21 | `siteaddress` |
| 22 | `sitebusinesstel` |
| 23 | `siteid` |
| 24 | `sitename` |
| 25 | `tenantid` |
| 26 | `tenantmembercardlogs` |
| 27 | `tenantname` |
| 28 | `ticketcustomcontent` |
| 29 | `ticketremark` |
| 30 | `totaldiscountamount` |
| 31 | `totalpayamount` |
| 32 | `totalsettleamount` |
| 33 | `vipamount` |
| 34 | `vipcardname` |
| 35 | `vipcardno` |
| 36 | `vippayamount` |
| 37 | `wipeoffamount` |
| 38 | `settlecount` |
---

View File

@@ -0,0 +1,265 @@
# 字段排查报告
> 生成时间2026-02-19 21:28:02
> 排查范围12 张表
## 汇总
| 指标 | 数量 |
|------|------|
| 排查字段总数 | 112 |
| 已映射(无需变更) | 3 |
| 映射遗漏(仅补 FACT_MAPPINGS | 0 |
| 确实缺失(需新增 DWD 列) | 29 |
| 无 DWD 表(需新建) | 74 |
| ODS 列不存在(需确认 API | 1 |
---
## assistant_accounts_masterA 类)
> 4 个 ODS→DWD 未映射
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `system_role_id` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 10 |
| 2 | `job_num` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | — |
| 3 | `cx_unit_price` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
| 4 | `pd_unit_price` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
---
## assistant_service_recordsA 类)
> 3 个 ODS→DWD 未映射site_assistant_id 可能已映射为 order_assistant_id
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `site_assistant_id` | ✅ | dwd_assistant_service_log.site_assistant_id | 自动映射(同名列) | 已映射(自动匹配) | **无需变更** | 2793500999454853, 2967523548220229, 2793528386048069 |
| 2 | `operator_id` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 2790687322443013 |
| 3 | `operator_name` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 收银员:郑丽珊 |
---
## assistant_cancellation_recordsA 类)
> 1 个 ODS→DWD 未映射,语义待确认
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `assistanton` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 99, 29, 4 |
---
## store_goods_sales_recordsA 类)
> 1 个 ODS→DWD 未映射(可能已映射为 discount_money
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `discount_price` | ✅ | dwd_store_goods_sale.discount_price | 自动映射(同名列) | 已映射(自动匹配) | **无需变更** | 60.00, 26.00, 24.00 |
---
## member_balance_changesA 类)
> 1 个 ODS→DWD 未映射
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `relate_id` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 2993181992014533, 3072754355946949, 2947505138716229 |
---
## tenant_goods_masterA 类)
> 1 个 ODS→DWD 未映射(可能已映射为 commodity_code_list
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `commoditycode` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | {1234530}, {1234321}, {10000028} |
---
## site_tables_masterA 类)
> 14 个 ODS→DWD 未映射
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `sitename` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 朗朗桌球 |
| 2 | `appletqrcodeurl` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | — |
| 3 | `audit_status` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 2 |
| 4 | `charge_free` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0 |
| 5 | `create_time` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 2025-07-16 11:30:20, 2025-07-16 11:50:56, 2025-07-16 11:30:02 |
| 6 | `delay_lights_time` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0 |
| 7 | `is_rest_area` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0 |
| 8 | `light_status` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 1, 2 |
| 9 | `only_allow_groupon` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 2 |
| 10 | `order_delay_time` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0 |
| 11 | `self_table` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 1 |
| 12 | `tablestatusname` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 空闲中, 使用中, 暂停中 |
| 13 | `temporary_light_second` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0 |
| 14 | `virtual_table` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0 |
---
## recharge_settlementsB 类)
> 5 个 ODS→DWD 未映射 + 5 个 DWD 无 ODS 源(驼峰/蛇形命名差异)
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `electricityadjustmoney` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
| 2 | `electricitymoney` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
| 3 | `mervousalesamount` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
| 4 | `plcouponsaleamount` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
| 5 | `realelectricitymoney` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 0.00 |
| 6 | `(DWD orphan) pl_coupon_sale_amount` | ❌ | — | | DWD 列存在但无 ODS 映射 | **需补充 FACT_MAPPINGS** | — |
| 7 | `(DWD orphan) mervou_sales_amount` | ❌ | — | | DWD 列存在但无 ODS 映射 | **需补充 FACT_MAPPINGS** | — |
| 8 | `(DWD orphan) electricity_money` | ❌ | — | | DWD 列存在但无 ODS 映射 | **需补充 FACT_MAPPINGS** | — |
| 9 | `(DWD orphan) real_electricity_money` | ❌ | — | | DWD 列存在但无 ODS 映射 | **需补充 FACT_MAPPINGS** | — |
| 10 | `(DWD orphan) electricity_adjust_money` | ❌ | — | | DWD 列存在但无 ODS 映射 | **需补充 FACT_MAPPINGS** | — |
---
## store_goods_masterB 类)
> 平层 + 嵌套展开 + ODS→DWD 补全
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `time_slot_sale` | ❌ | — | 未配置 | ODS 列不存在 | **需确认 API 是否返回该字段** | — |
| 2 | `batch_stock_quantity` | ✅ | — | 未配置 | 确实缺失 | **需新增 DWD 列 + FACT_MAPPINGS** | 35.00, 270.00, 8.00 |
| 3 | `provisional_total_cost` | ✅ | dim_store_goods_ex.provisional_total_cost | 自动映射(同名列) | 已映射(自动匹配) | **无需变更** | 0.10, 152.00, 420.00 |
---
## goods_stock_summaryC 类)
> 14 个 ODS 字段,无 DWD 目标表,需新建
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `sitegoodsid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2791953867886725, 2793025844727877, 2793025844908101 |
| 2 | `goodsname` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 鱼蛋, QQ糖, 哇哈哈矿泉水 |
| 3 | `goodsunit` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 根, 杯, 支 |
| 4 | `goodscategoryid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2790683528350535, 2793220945250117, 2791942087561093 |
| 5 | `goodscategorysecondid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2793236829620037, 2791948300259205, 2790683528350541 |
| 6 | `categoryname` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 香烟, 槟榔, 其他 |
| 7 | `rangestartstock` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 976.0000, 33.0000, 124.0000 |
| 8 | `rangeendstock` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 976.0000, 33.0000, 124.0000 |
| 9 | `rangein` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.0000 |
| 10 | `rangeout` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.0000 |
| 11 | `rangesale` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.0000 |
| 12 | `rangesalemoney` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 13 | `rangeinventory` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.0000 |
| 14 | `currentstock` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 976.0000, 33.0000, 124.0000 |
---
## goods_stock_movementsC 类)
> 19 个 ODS 字段,无 DWD 目标表,需新建
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `sitegoodsstockid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2796059480853701, 2796059480935621, 2796060185332933 |
| 2 | `tenantid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2790683160709957 |
| 3 | `siteid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2790685415443269 |
| 4 | `sitegoodsid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2793025862438981, 3069455725923269, 2793026180501573 |
| 5 | `goodsname` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | QQ糖, 鱼蛋, 哇哈哈矿泉水 |
| 6 | `goodscategoryid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2790683528350535, 2793220945250117, 2790683528350545 |
| 7 | `goodssecondcategoryid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2791948300259205, 2793236829620037, 2790683528350541 |
| 8 | `unit` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 根, 双, 支 |
| 9 | `price` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 418.0000, 26.0000, 24.0000 |
| 10 | `stocktype` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2, 4, 8 |
| 11 | `changenum` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 103.0000, 44.0000, -50.0000 |
| 12 | `startnum` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 204.0000, 3.0000, 14.0000 |
| 13 | `endnum` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 204.0000, 14.0000, 3.0000 |
| 14 | `changenuma` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 29.0000, -29.0000, 14.0000 |
| 15 | `startnuma` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 19.0000, 29.0000, 14.0000 |
| 16 | `endnuma` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 19.0000, 29.0000, 14.0000 |
| 17 | `remark` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 结账退货, 采购退货, 系统自动领用 |
| 18 | `operatorname` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 主管:黄月柳, 收银员:郑丽珍, 主管:孙仁洋 |
| 19 | `createtime` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2025-07-25 18:48:15, 2025-12-28 21:54:59, 2025-12-19 22:13:21 |
---
## settlement_ticket_detailsC 类)
> 38 个无 JSON 源 + 38 个 ODS→DWD 未映射,需排查映射错误
| # | ODS 列 | ODS 存在 | DWD 匹配 | FACT_MAPPINGS 状态 | 排查结论 | 建议操作 | 采样值 |
|---|--------|---------|---------|-------------------|---------|---------|--------|
| 1 | `actualpayment` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 13.00, 56.00, 14.00 |
| 2 | `adjustamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 102.15, 28.11, 120.00 |
| 3 | `assistantmanualdiscount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 4 | `balanceamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 5688.29, 199.10, 188.78 |
| 5 | `cashiername` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 收银员:郑丽珊 |
| 6 | `consumemoney` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 116.00, 1551.32, 44.85 |
| 7 | `couponamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 8 | `deliveryaddress` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | — |
| 9 | `deliveryfee` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 10 | `ledgeramount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 13.00, 56.00, 14.00 |
| 11 | `memberdeductamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 12 | `memberofferamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 253.02, 259.16, 151.98 |
| 13 | `memberprofile` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | {'memberName': '桂**', 'memberP, {'memberName': '羊**', 'memberP, {'memberName': '葛**', 'memberP |
| 14 | `onlinereturnamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 15 | `orderitem` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | [{'orderType': 1, 'siteOrderId, [{'orderType': 1, 'siteOrderId, [{'orderType': 1, 'siteOrderId |
| 16 | `orderremark` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | — |
| 17 | `ordersettleid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2956133986586309, 2956134869536453, 2956134925356549 |
| 18 | `ordersettlenumber` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0 |
| 19 | `payload` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | {'data': {'code': 0, 'data': {, {'data': {'code': 0, 'data': {, {'data': {'code': 0, 'data': { |
| 20 | `paymemberbalance` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 21 | `paymentmethod` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 4, 2 |
| 22 | `paytime` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2025-11-08 18:23:46, 2025-11-08 17:17:51, 2025-11-09 18:27:33 |
| 23 | `pointdiscountcost` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 24 | `pointdiscountprice` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 25 | `prepaymoney` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00, 48.00 |
| 26 | `refundamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 27 | `returngoodsamount` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
| 28 | `rewardname` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 激励 |
| 29 | `settletype` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | SiteOrder |
| 30 | `siteaddress` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 广东省广州市天河区天园街道朗朗桌球 |
| 31 | `sitebusinesstel` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 13316068642 |
| 32 | `siteid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2790685415443269 |
| 33 | `sitename` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 朗朗桌球 |
| 34 | `source_endpoint` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | — |
| 35 | `source_file` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | settlement_ticket_details.json |
| 36 | `tenantid` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 2790683160709957 |
| 37 | `tenantmembercardlogs` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | [], [{'id': 2956148647907205, 'aft, [{'id': 2956338848222725, 'aft |
| 38 | `tenantname` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 朗朗桌球 |
| 39 | `ticketcustomcontent` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | — |
| 40 | `ticketremark` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | — |
| 41 | `vouchermoney` | ✅ | — | 未配置 | 无 DWD 目标表 | **需新建 DWD 表** | 0.00 |
---
## TABLE_MAP 注册状态
| DWD 表 | ODS 源表 | 已注册 |
|--------|---------|--------|
| `dwd.dim_assistant` | `ods.assistant_accounts_master` | ✅ |
| `dwd.dim_assistant_ex` | `ods.assistant_accounts_master` | ✅ |
| `dwd.dwd_assistant_service_log` | `ods.assistant_service_records` | ✅ |
| `dwd.dwd_assistant_service_log_ex` | `ods.assistant_service_records` | ✅ |
| `dwd.dwd_assistant_trash_event` | `ods.assistant_cancellation_records` | ✅ |
| `dwd.dwd_assistant_trash_event_ex` | `ods.assistant_cancellation_records` | ✅ |
| `dwd.dwd_store_goods_sale` | `ods.store_goods_sales_records` | ✅ |
| `dwd.dwd_store_goods_sale_ex` | `ods.store_goods_sales_records` | ✅ |
| `dwd.dwd_member_balance_change` | `ods.member_balance_changes` | ✅ |
| `dwd.dwd_member_balance_change_ex` | `ods.member_balance_changes` | ✅ |
| `dwd.dim_tenant_goods` | `ods.tenant_goods_master` | ✅ |
| `dwd.dim_tenant_goods_ex` | `ods.tenant_goods_master` | ✅ |
| `dwd.dim_table` | `ods.site_tables_master` | ✅ |
| `dwd.dim_table_ex` | `ods.site_tables_master` | ✅ |
| `dwd.dwd_recharge_order` | `ods.recharge_settlements` | ✅ |
| `dwd.dwd_recharge_order_ex` | `ods.recharge_settlements` | ✅ |
| `dwd.dim_store_goods` | `ods.store_goods_master` | ✅ |
| `dwd.dim_store_goods_ex` | `ods.store_goods_master` | ✅ |
| (待新建) | `ods.goods_stock_summary` | ❌ 无 DWD 表 |
| (待新建) | `ods.goods_stock_movements` | ❌ 无 DWD 表 |
| (待新建) | `ods.settlement_ticket_details` | ❌ 无 DWD 表 |

View File

@@ -0,0 +1,523 @@
# 字段排查深度调查报告
> 调查时间2026-02-19
> 调查方式FACT_MAPPINGS 源码审阅 + DWD DDL 交叉验证 + 数据库实际列/数据查询
> 基于排查脚本报告 `export/SYSTEM/REPORTS/field_audit/field_audit_report.md` 的线索,逐字段深入调查
---
## 调查方法说明
对脚本标记为"缺失"或"对不齐"的每个字段,执行以下调查:
1. 查阅 `FACT_MAPPINGS` 源码(`dwd_load_task.py`),确认是否已以其他名称/表达式映射
2. 查阅 DWD 数据库实际列(`information_schema.columns`),确认是否已有同语义列
3. 查阅 ODS 数据库实际列,确认 ODS 列是否真实写入
4. 结合字段命名规律、上下文语义、业务逻辑进行推测
5. 必要时查询数据库实际数据(`SELECT DISTINCT` / 采样)辅助判断
---
## 1. assistant_accounts_master → dim_assistant_exA 类)
### 脚本结论4 个字段确实缺失,需新增 DWD 列
### 逐字段调查
#### 1.1 `system_role_id`
- **ODS 存在**:✅ `billiards_ods.assistant_accounts_master.system_role_id`BIGINT
- **DWD 现有列**:❌ `dim_assistant_ex` 中无 `system_role_id` 列(已通过 `information_schema` 确认)
- **FACT_MAPPINGS**:未配置任何映射
- **采样值**`10`(系统角色 ID用于关联角色权限
- **业务价值**:有。标识助教在系统中的角色(如普通助教、组长等),下游可用于权限分析
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 1.2 `job_num`
- **ODS 存在**:✅ `billiards_ods.assistant_accounts_master.job_num`TEXT
- **DWD 现有列**:❌ `dim_assistant_ex` 中无 `job_num`
- **FACT_MAPPINGS**:未配置
- **采样值**:全部为 NULL该门店未启用备用工号
- **业务价值**:低。当前门店未使用,但作为预留字段有完整性价值
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(保持数据完整性)
#### 1.3 `cx_unit_price`
- **ODS 存在**:✅ `billiards_ods.assistant_accounts_master.cx_unit_price`NUMERIC(18,2)
- **DWD 现有列**:❌ `dim_assistant_ex` 中无 `cx_unit_price`
- **FACT_MAPPINGS**:未配置
- **采样值**`0.00`(促销时段单价,本门店未在账号表层面设置)
- **业务价值**:中。虽然当前值为 0但多门店场景下可能有值且与助教计费相关
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 1.4 `pd_unit_price`
- **ODS 存在**:✅ `billiards_ods.assistant_accounts_master.pd_unit_price`NUMERIC(18,2)
- **DWD 现有列**:❌ `dim_assistant_ex` 中无 `pd_unit_price`
- **FACT_MAPPINGS**:未配置
- **采样值**`0.00`(普通时段单价,实际单价在助教商品或套餐配置中)
- **业务价值**:中。同 cx_unit_price多门店场景下可能有值
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| system_role_id | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| job_num | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| cx_unit_price | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| pd_unit_price | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
---
## 2. assistant_service_records → dwd_assistant_service_log / _exA 类)
### 脚本结论site_assistant_id 已自动映射operator_id/operator_name 缺失
### 逐字段调查
#### 2.1 `site_assistant_id`
- **ODS 存在**:✅ 两个列都存在:`site_assistant_id``order_assistant_id`
- **DWD 现有列**:✅ `dwd_assistant_service_log.site_assistant_id` 存在
- **FACT_MAPPINGS**`("site_assistant_id", "order_assistant_id", None)` — 即 DWD 的 `site_assistant_id` 实际映射自 ODS 的 `order_assistant_id`
- **数据库验证**DWD `site_assistant_id` 的值 = ODS `order_assistant_id` 的值(已通过 JOIN 查询确认)
- **⚠️ 关键发现**:脚本报告"自动映射(同名列)"是**不准确的**。实际上 DWD `site_assistant_id` 通过 FACT_MAPPINGS 映射自 ODS `order_assistant_id`,而非 ODS `site_assistant_id`。ODS 中的 `site_assistant_id`(助教档案 ID`order_assistant_id`(订单助教 ID是两个不同的字段。
- **业务语义**ODS `site_assistant_id` 是助教在门店的档案 ID`order_assistant_id` 是该笔服务记录的订单助教 ID。当前 DWD 存储的是 `order_assistant_id`
- **🟢 最终决策:无需变更**当前映射逻辑正确DWD `site_assistant_id` 存储的是订单维度的助教 ID符合事实表语义
#### 2.2 `operator_id`
- **ODS 存在**:✅ `billiards_ods.assistant_service_records.operator_id`BIGINT
- **DWD 现有列**:❌ `dwd_assistant_service_log_ex` 中无 `operator_id` 列(已通过 `information_schema` 确认)
- **FACT_MAPPINGS**:未配置
- **采样值**`2790687322443013`(操作员 ID如收银员
- **业务价值**:有。记录谁操作了该助教服务记录,用于操作审计
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(添加到 `dwd_assistant_service_log_ex`
#### 2.3 `operator_name`
- **ODS 存在**:✅ `billiards_ods.assistant_service_records.operator_name`TEXT
- **DWD 现有列**:❌ `dwd_assistant_service_log_ex` 中无 `operator_name`
- **FACT_MAPPINGS**:未配置
- **采样值**`收银员:郑丽珊`
- **业务价值**:有。操作员名称快照,配合 operator_id 使用
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(添加到 `dwd_assistant_service_log_ex`
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| site_assistant_id | 已通过 FACT_MAPPINGS 映射order_assistant_id → site_assistant_id | 无需变更 |
| operator_id | 确实缺失 | 新增 DWD 列_ex 表)+ FACT_MAPPINGS |
| operator_name | 确实缺失 | 新增 DWD 列_ex 表)+ FACT_MAPPINGS |
---
## 3. assistant_cancellation_records → dwd_assistant_trash_event_exA 类)
### 脚本结论assistanton 缺失,语义待确认
### 逐字段调查
#### 3.1 `assistanton`
- **ODS 存在**:✅ `billiards_ods.assistant_cancellation_records.assistanton`
- **DWD 现有列**:❌ `dwd_assistant_trash_event_ex` 中无 `assistanton`
- **FACT_MAPPINGS**:未配置
- **采样值**`99, 29, 4, 6, 15, 13, 37, 23, 18, 2`(整数值)
- **⚠️ 语义分析**:通过 JOIN 查询 `assistant_accounts_master`,确认 `assistanton` 的值与 `assistant_no`(助教编号)完全一致。例如 `assistanton=33` 对应 `assistant_no='33'`(王嘉琪),`assistanton=7` 对应 `assistant_no='7'`(郑美婷)。
- **结论**`assistanton``assistant_no` 的整数形式,即"被废除的助教编号"。
- **DWD 已有列**`dwd_assistant_trash_event.assistant_no` 已存在(映射自 `assistantname`,但这是助教昵称而非编号)
- **⚠️ 注意**:当前 FACT_MAPPINGS 中 `("assistant_no", "assistantname", None)` 将 ODS `assistantname`(助教昵称)映射到了 DWD `assistant_no`(助教编号),这可能是一个映射错误。`assistanton` 才是真正的助教编号。
- **业务价值**:有。记录被废除的助教编号,用于关联助教档案
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(建议列名 `assistant_no_int`,类型 INTEGER映射自 `assistanton`
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| assistanton | 确实缺失,语义为助教编号(整数形式) | 新增 DWD 列_ex 表)+ FACT_MAPPINGS |
---
## 4. store_goods_sales_records → dwd_store_goods_saleA 类)
### 脚本结论discount_price 已自动映射
### 逐字段调查
#### 4.1 `discount_price`
- **ODS 存在**:✅ `billiards_ods.store_goods_sales_records.discount_price`
- **DWD 现有列**:✅ `dwd_store_goods_sale.discount_price` 存在NUMERIC 类型)
- **FACT_MAPPINGS**`("discount_price", "discount_money", None)` — DWD `discount_price` 映射自 ODS `discount_money`
- **⚠️ 关键发现**:脚本报告"自动映射(同名列)"是**不准确的**。DWD `discount_price` 实际通过 FACT_MAPPINGS 映射自 ODS `discount_money`(折扣金额),而非 ODS `discount_price`(折后单价)。
- **ODS 中两个字段**`discount_price`(折后单价)和 `discount_money`(折扣金额)是不同字段
- **DWD 中**`dwd_store_goods_sale.discount_price` 存储的是 `discount_money` 的值
- **DWD `dwd_store_goods_sale_ex`**:已有 `discount_money` 列(自动映射自 ODS `discount_money`
- **结论**ODS `discount_price`(折后单价)确实未被映射到 DWD。但 DWD `discount_price` 列名已被占用(存储的是 discount_money 的值)。
- **🟡 最终决策:跳过**DWD `discount_price` 列名已被 `discount_money` 占用。ODS `discount_price` 的语义是"折后单价",可通过 `ledger_unit_price` 或计算得出。如需单独映射,需要新建列名如 `unit_discount_price`,但当前业务优先级不高)
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| discount_price | 列名已被占用(映射自 discount_moneyODS 原始折后单价未映射 | 跳过(可后续按需新增 `unit_discount_price` |
---
## 5. member_balance_changes → dwd_member_balance_change_exA 类)
### 脚本结论relate_id 缺失
### 逐字段调查
#### 5.1 `relate_id`
- **ODS 存在**:✅ `billiards_ods.member_balance_changes.relate_id`
- **DWD 现有列**:❌ `dwd_member_balance_change_ex` 中无 `relate_id` 列(已确认)
- **FACT_MAPPINGS**:未配置
- **采样值**`2993181992014533, 0, 2888539288521221`(关联 ID0 表示无关联)
- **业务价值**:有。关联充值记录或订单 ID用于追溯余额变动的业务来源
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(添加到 `dwd_member_balance_change_ex`
### 附加发现
- 脚本未报告,但调查发现 `dwd_member_balance_change_ex` 已有 `operator_id``operator_name` 列,且已有数据(自动映射自 ODS 同名列)。这说明 ODS `member_balance_changes``operator_id`/`operator_name` 已正确流转到 DWD。
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| relate_id | 确实缺失 | 新增 DWD 列_ex 表)+ FACT_MAPPINGS |
---
## 6. tenant_goods_master → dim_tenant_goods_exA 类)
### 脚本结论commoditycode 缺失
### 逐字段调查
#### 6.1 `commoditycode`
- **ODS 存在**:✅ `billiards_ods.tenant_goods_master` 中有两个相关列:`commoditycode``commodity_code`
- **DWD 现有列**:✅ `dim_tenant_goods_ex` 中有两个列:`commodity_code``commodity_code_list`
- **FACT_MAPPINGS**`("commodity_code_list", "commodity_code", None)` — DWD `commodity_code_list` 映射自 ODS `commodity_code`
- **采样值**ODS `commoditycode` = `{1234530}, {1234321}, {10000028}`花括号包裹的编码集合ODS `commodity_code` = `10000002, 100011`(单个编码)
- **⚠️ 关键发现**ODS 中 `commoditycode``commodity_code` 是两个不同字段。`commoditycode` 存储的是花括号包裹的编码集合(如 `{1234530}`),而 `commodity_code` 是单个商品编码。FACT_MAPPINGS 已将 `commodity_code` 映射到 DWD `commodity_code_list`
- **DWD `commodity_code` 列**`dim_tenant_goods_ex` 中已有 `commodity_code` 列,数据为 `1234571, 123321` 等(自动映射自 ODS `commodity_code`
- **结论**ODS `commoditycode`(花括号编码集合)确实未被映射到 DWD。DWD 已有 `commodity_code`(自动映射)和 `commodity_code_list`FACT_MAPPINGS 映射),但 `commoditycode` 是第三个不同的字段。
- **业务价值**:低。`commoditycode` 看起来是 `commodity_code` 的数组/集合形式,数据冗余度高
- **🟡 最终决策:跳过**`commoditycode``commodity_code` 的集合形式DWD 已有 `commodity_code``commodity_code_list` 两列覆盖该语义,无需再映射冗余字段)
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| commoditycode | 冗余字段DWD 已有 commodity_code + commodity_code_list 覆盖 | 跳过 |
---
## 7. site_tables_master → dim_table_exA 类)
### 脚本结论14 个字段全部缺失
### 逐字段调查
DWD `dim_table_ex` 当前仅有 6 个业务列:`table_id, show_status, is_online_reservation, table_cloth_use_time, table_cloth_use_cycle, table_status`+ 4 个 SCD2 列)。
#### 7.1 `sitename`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`朗朗桌球`(门店名称快照)
- **业务价值**:低。门店名称已在 `dim_site` 中维护,此处为冗余快照
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(保持数据完整性,便于台桌维度直接查询门店名)
#### 7.2 `appletqrcodeurl`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**:全部为 NULL
- **业务价值**:低。小程序二维码 URL当前无数据
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(保持完整性)
#### 7.3 `audit_status`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`2`(审核状态枚举)
- **业务价值**:中。台桌审核状态,可能影响台桌可用性
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.4 `charge_free`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`0`是否免费0=否)
- **业务价值**:高。标识台桌是否免费,直接影响计费逻辑
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.5 `create_time`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`2025-07-16 11:30:20`(台桌创建时间)
- **业务价值**:中。记录台桌何时创建
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.6 `delay_lights_time`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`0`(延迟关灯时间,秒)
- **业务价值**:中。灯控延迟配置
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.7 `is_rest_area`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`0`是否休息区0=否)
- **业务价值**:中。区分台桌是否为休息区
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.8 `light_status`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`1, 2`(灯控状态枚举)
- **业务价值**:中。台桌灯控状态
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.9 `only_allow_groupon`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`2`(是否仅允许团购)
- **业务价值**:中。影响台桌的销售策略
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.10 `order_delay_time`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`0`(订单延迟时间,秒)
- **业务价值**:中。订单延迟配置
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.11 `self_table`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`1`(是否自助台桌)
- **业务价值**:中。标识台桌是否支持自助模式
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.12 `tablestatusname`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`空闲中, 使用中, 暂停中`(台桌状态名称)
- **业务价值**:中。台桌状态的中文描述,配合 `table_status` 使用
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.13 `temporary_light_second`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`0`(临时灯光秒数)
- **业务价值**:低。灯控相关配置
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
#### 7.14 `virtual_table`
- **ODS 存在**:✅ | **DWD 现有列**:❌ | **FACT_MAPPINGS**:未配置
- **采样值**`0`是否虚拟台桌0=否)
- **业务价值**:中。标识是否为虚拟台桌(如用于测试或特殊场景)
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| sitename | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| appletqrcodeurl | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| audit_status | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| charge_free | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| create_time | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| delay_lights_time | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| is_rest_area | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| light_status | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| only_allow_groupon | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| order_delay_time | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| self_table | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| tablestatusname | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| temporary_light_second | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
| virtual_table | 确实缺失 | 新增 DWD 列 + FACT_MAPPINGS |
---
## 8. recharge_settlements → dwd_recharge_orderB 类)
### 脚本结论5 个 ODS→DWD 未映射 + 5 个 DWD 无 ODS 源
### 逐字段调查
#### 8.1-8.5 ODS 驼峰列 → DWD 蛇形列(命名差异导致的映射缺失)
| # | ODS 列(驼峰) | DWD 列(蛇形) | DWD 列存在 | FACT_MAPPINGS | 结论 |
|---|---------------|--------------|-----------|--------------|------|
| 1 | `plcouponsaleamount` | `pl_coupon_sale_amount` | ✅ 已存在于 `dwd_recharge_order` | ❌ 未配置 | 仅补 FACT_MAPPINGS |
| 2 | `mervousalesamount` | `mervou_sales_amount` | ✅ 已存在于 `dwd_recharge_order` | ❌ 未配置 | 仅补 FACT_MAPPINGS |
| 3 | `electricitymoney` | `electricity_money` | ✅ 已存在于 `dwd_recharge_order` | ❌ 未配置 | 仅补 FACT_MAPPINGS |
| 4 | `realelectricitymoney` | `real_electricity_money` | ✅ 已存在于 `dwd_recharge_order` | ❌ 未配置 | 仅补 FACT_MAPPINGS |
| 5 | `electricityadjustmoney` | `electricity_adjust_money` | ✅ 已存在于 `dwd_recharge_order` | ❌ 未配置 | 仅补 FACT_MAPPINGS |
**⚠️ 关键发现**
- DWD `dwd_recharge_order` 中这 5 个列**已经存在**DDL 已定义,数据库已创建)
- 但 FACT_MAPPINGS 中**未配置**这 5 个映射条目
- 数据库查询显示 `dwd_recharge_order` 有 485 行,其中 80 行有 `pl_coupon_sale_amount``electricity_money` 的值(非 NULL
- 但所有值均为 0.00(无非零值),说明这些列虽有数据但可能是自动映射的默认值
- **对比 `dwd_settlement_head`**:同样的 5 个字段在 `dwd_settlement_head` 的 FACT_MAPPINGS 中**已正确配置**(如 `("electricity_money", "electricitymoney", None)`
- **根因**`dwd_recharge_order` 的 FACT_MAPPINGS 遗漏了这 5 个条目,而 `dwd_settlement_head` 已正确配置
**脚本报告的"DWD orphan"#6-#10**:这 5 个"DWD 列存在但无 ODS 映射"实际上就是上面 5 个 ODS 列的蛇形命名形式。脚本将它们分别报告为两组问题,但实际上是同一组映射缺失。
- **🟠 最终决策:仅补 FACT_MAPPINGS**DWD 列已存在,无需 DDL 变更,只需在 `FACT_MAPPINGS["dwd.dwd_recharge_order"]` 中添加 5 个映射条目)
### 小结
| ODS 列 | DWD 列 | 最终决策 | 操作 |
|--------|--------|---------|------|
| plcouponsaleamount | pl_coupon_sale_amount | 映射遗漏 | 仅补 FACT_MAPPINGS |
| mervousalesamount | mervou_sales_amount | 映射遗漏 | 仅补 FACT_MAPPINGS |
| electricitymoney | electricity_money | 映射遗漏 | 仅补 FACT_MAPPINGS |
| realelectricitymoney | real_electricity_money | 映射遗漏 | 仅补 FACT_MAPPINGS |
| electricityadjustmoney | electricity_adjust_money | 映射遗漏 | 仅补 FACT_MAPPINGS |
---
## 9. store_goods_master → dim_store_goods_exB 类)
### 脚本结论time_slot_sale ODS 不存在batch_stock_quantity 缺失provisional_total_cost 已自动映射
### 逐字段调查
#### 9.1 `time_slot_sale`
- **ODS 存在**:❌ `billiards_ods.store_goods_master` 中无 `time_slot_sale` 列(已通过 `information_schema` 确认)
- **API 字段**:需确认 API 是否返回该字段。当前 ODS DDL 和数据库中均不存在此列。
- **🟡 最终决策:需确认 API**ODS 列不存在,需要先获取 API JSON 样本确认字段是否存在。如果 API 返回该字段,需先更新 ODS DDL 和 loader再映射到 DWD
#### 9.2 `batch_stock_quantity`
- **ODS 存在**:✅ `billiards_ods.store_goods_master.batch_stock_quantity`NUMERIC
- **DWD 现有列**:❌ `dim_store_goods_ex` 中无 `batch_stock_quantity` 列(已确认)
- **FACT_MAPPINGS**`dim_store_goods` 中有 `("batch_stock_qty", "stock", None)` — 但这是将 ODS `stock` 映射到 DWD `batch_stock_qty`,与 `batch_stock_quantity` 无关
- **采样值**`35.00, 270.00, 8.00`(批次库存数量)
- **业务价值**:有。批次库存数量,与 `stock`(当前库存)不同
- **🔵 最终决策:需新增 DWD 列 + FACT_MAPPINGS**(添加到 `dim_store_goods_ex`
#### 9.3 `provisional_total_cost`
- **ODS 存在**:✅ `billiards_ods.store_goods_master.provisional_total_cost`
- **DWD 现有列**:✅ `dim_store_goods_ex.provisional_total_cost` 存在NUMERIC 类型)
- **FACT_MAPPINGS**`dim_store_goods_ex` 中有 `("provisional_total_cost", "total_purchase_cost", None)` — DWD `provisional_total_cost` 映射自 ODS `total_purchase_cost`
- **⚠️ 关键发现**:脚本报告"自动映射(同名列)"是**不准确的**。DWD `provisional_total_cost` 实际通过 FACT_MAPPINGS 映射自 ODS `total_purchase_cost`(采购总成本),而非 ODS `provisional_total_cost`暂估总成本。ODS 中 `provisional_total_cost``total_purchase_cost` 是两个不同字段。
- **结论**ODS `provisional_total_cost`(暂估总成本)确实未被映射到 DWD。DWD `provisional_total_cost` 列名已被占用(存储的是 `total_purchase_cost` 的值)。
- **🟡 最终决策:跳过**DWD 列名已被占用。如需单独映射 ODS `provisional_total_cost`,需新建列名。当前业务优先级不高)
### 小结
| ODS 列 | 最终决策 | 操作 |
|--------|---------|------|
| time_slot_sale | ODS 列不存在 | 需确认 API 是否返回该字段 |
| batch_stock_quantity | 确实缺失 | 新增 DWD 列_ex 表)+ FACT_MAPPINGS |
| provisional_total_cost | DWD 列名已被占用(映射自 total_purchase_cost | 跳过 |
---
## 10. goods_stock_summaryC 类)
### 脚本结论14 个 ODS 字段,无 DWD 目标表,需新建
### 调查
- **DWD 表存在**:❌ `billiards_dwd` 中无任何 `goods_stock` 相关表(已通过 `information_schema.tables` 确认)
- **TABLE_MAP**:未注册
- **ODS 数据**14 个字段全部有数据(采样值已在脚本报告中列出)
- **业务价值**:有。库存汇总数据(期初/期末库存、出入库、销售额等),对库存分析和成本核算有价值
### 最终决策
- **🔵 需新建 DWD 表 `dwd_goods_stock_summary`**
- 需要DDL 创建表 + TABLE_MAP 注册 + FACT_MAPPINGS 配置 + 新建 loader/task 代码
- 14 个 ODS 列全部映射(驼峰 → 蛇形命名转换)
---
## 11. goods_stock_movementsC 类)
### 脚本结论19 个 ODS 字段,无 DWD 目标表,需新建
### 调查
- **DWD 表存在**:❌ `billiards_dwd` 中无任何 `goods_stock_movement` 相关表
- **TABLE_MAP**:未注册
- **ODS 数据**19 个字段全部有数据
- **业务价值**:有。库存变动明细(入库、出库、销售、退货等),对库存追踪和审计有价值
### 最终决策
- **🔵 需新建 DWD 表 `dwd_goods_stock_movement`**
- 需要DDL 创建表 + TABLE_MAP 注册 + FACT_MAPPINGS 配置 + 新建 loader/task 代码
- 19 个 ODS 列全部映射
---
## 12. settlement_ticket_detailsC 类)
### 脚本结论38+3 个字段(含 payload/source_file/source_endpoint/fetched_at/content_hash无 DWD 目标表
### 调查
- **DWD 表存在**:❌ `billiards_dwd` 中无 `settlement_ticket` 相关表
- **TABLE_MAP**:未注册
- **ODS 数据**:✅ 有 193 行数据(脚本报告中的"采样记录数为 0"可能是旧数据)
- **ODS 实际列**43 列(含 `ordersettleid, actualpayment, adjustamount, ...` 等 38 个业务列 + `payload, source_file, source_endpoint, fetched_at, content_hash` 5 个元数据列)
- **⚠️ 关键发现**
- 脚本报告"38 个无 JSON 源"是因为这些字段是从 API JSON 中解析出来的平层字段,而非直接的 JSON 键名
- ODS 表中有 `payload` 列(存储原始 JSON说明数据确实从 API 获取
- `memberprofile``orderitem``tenantmembercardlogs` 是嵌套 JSON 对象/数组,存储为 TEXT/JSONB
- 业务字段包括:结算金额、支付方式、会员信息、退款、配送等完整的结账小票信息
### 字段分类
| 类别 | 字段 | 数量 |
|------|------|------|
| 核心业务字段 | ordersettleid, actualpayment, consumemoney, payamount, paytime, settletype, paymentmethod 等 | ~25 |
| 门店/租户快照 | siteid, sitename, siteaddress, sitebusinesstel, tenantid, tenantname | 6 |
| 嵌套 JSON 字段 | memberprofile, orderitem, tenantmembercardlogs | 3 |
| 元数据字段 | payload, source_file, source_endpoint, fetched_at, content_hash | 5不映射到 DWD |
| 低价值/空值字段 | deliveryaddress, deliveryfee, ticketcustomcontent, ticketremark, orderremark | 5 |
### 最终决策
- **🔵 需新建 DWD 表**(建议 `dwd_settlement_ticket` + `dwd_settlement_ticket_ex`
- 核心业务字段映射到主表,门店快照和低价值字段映射到 _ex 表
- 嵌套 JSON 字段memberprofile, orderitem, tenantmembercardlogs暂不展开保留为 JSONB 类型
- 元数据字段payload, source_file 等)不映射到 DWD
- 需要DDL 创建表 + TABLE_MAP 注册 + FACT_MAPPINGS 配置
---
## 全局汇总
### 脚本结论 vs 调查结论对比
| 指标 | 脚本结论 | 调查修正后 | 差异说明 |
|------|---------|-----------|---------|
| 已映射(无需变更) | 3 | 3 | 一致(但 2 个"自动映射"实际是 FACT_MAPPINGS 映射) |
| 映射遗漏(仅补 FACT_MAPPINGS | 0 | **5** | recharge_settlements 的 5 个电费/券字段 |
| 确实缺失(需新增 DWD 列) | 29 | **24** | 减去discount_price(跳过)、commoditycode(跳过)、provisional_total_cost(跳过)、time_slot_sale(待确认API)、5个recharge改为仅补映射 |
| 无 DWD 表(需新建) | 74 | 74 | 一致 |
| ODS 列不存在(需确认 API | 1 | 1 | time_slot_sale |
### 脚本报告中的不准确之处
1. **site_assistant_idassistant_service_records**:脚本报告"自动映射(同名列)",实际是通过 FACT_MAPPINGS 映射自 `order_assistant_id`
2. **discount_pricestore_goods_sales_records**:脚本报告"自动映射(同名列)",实际是通过 FACT_MAPPINGS 映射自 `discount_money`
3. **provisional_total_coststore_goods_master**:脚本报告"自动映射(同名列)",实际是通过 FACT_MAPPINGS 映射自 `total_purchase_cost`
4. **recharge_settlements 10 个字段**:脚本将 5 个 ODS 列和 5 个 DWD orphan 分别报告,实际是同一组映射缺失(驼峰/蛇形命名差异)
5. **settlement_ticket_details 行数**:脚本可能基于旧数据报告"采样记录数为 0",实际有 193 行
### 操作汇总表
| 表 | 操作类型 | 字段数 | 具体操作 |
|----|---------|--------|---------|
| assistant_accounts_master | 新增 DWD 列 + FACT_MAPPINGS | 4 | system_role_id, job_num, cx_unit_price, pd_unit_price → dim_assistant_ex |
| assistant_service_records | 新增 DWD 列 + FACT_MAPPINGS | 2 | operator_id, operator_name → dwd_assistant_service_log_ex |
| assistant_cancellation_records | 新增 DWD 列 + FACT_MAPPINGS | 1 | assistanton → dwd_assistant_trash_event_ex列名 assistant_no_int |
| store_goods_sales_records | 跳过 | 0 | discount_price 列名已被占用 |
| member_balance_changes | 新增 DWD 列 + FACT_MAPPINGS | 1 | relate_id → dwd_member_balance_change_ex |
| tenant_goods_master | 跳过 | 0 | commoditycode 冗余 |
| site_tables_master | 新增 DWD 列 + FACT_MAPPINGS | 14 | 全部 14 个字段 → dim_table_ex |
| recharge_settlements | 仅补 FACT_MAPPINGS | 5 | 5 个电费/券字段DWD 列已存在) |
| store_goods_master | 新增 DWD 列 + 确认 API | 1+1 | batch_stock_quantity → dim_store_goods_extime_slot_sale 待确认 |
| goods_stock_summary | 新建 DWD 表 | 14 | 全部字段 |
| goods_stock_movements | 新建 DWD 表 | 19 | 全部字段 |
| settlement_ticket_details | 新建 DWD 表 | ~38 | 核心业务字段 + 快照字段 |
### 下一步行动
1. **立即可执行**(无需额外确认):
- A 类表 DDL + FACT_MAPPINGS 变更22 个字段)
- recharge_settlements 仅补 FACT_MAPPINGS5 个映射条目)
- store_goods_master 的 batch_stock_quantity 新增
2. **需确认后执行**
- store_goods_master 的 time_slot_sale需获取 API JSON 样本确认字段是否存在
3. **需设计后执行**
- goods_stock_summary 新建 DWD 表14 列)
- goods_stock_movements 新建 DWD 表19 列)
- settlement_ticket_details 新建 DWD 表(~38 列,含 main/ex 分表设计)

View File

@@ -0,0 +1,184 @@
# 字段差异逐章审核报告第一批1.1.1 ~ 1.1.9
> 生成时间2026-02-20
> 数据源test_etl_feiqiu开发/测试环境)
> 审核范围dataflow 报告中"上游存在、下游没有"的字段ODS→DWD 未映射)
---
## 1.1.1 assistant_accounts_master助教账号档案
ODS→DWD 未映射 4 个字段:`system_role_id`, `job_num`, `cx_unit_price`, `pd_unit_price`
### assistant_accounts_master — system_role_id
- 数据类型bigintnullable
- 采样值distinct`10`(仅 1 个值)
- NULL 率0/295 = 0%(全部非空)
- 业务含义推测:系统角色 ID关联上游 SaaS 的角色权限体系。当前所有助教均为同一角色(值=10可能是"助教"角色的固定编码。
- 建议:**需要映射** → `dim_assistant_ex.system_role_id`。虽然当前只有 1 个值,但该字段可用于区分不同角色(如未来新增"高级助教"角色),且 0% NULL 说明上游稳定输出。
### assistant_accounts_master — job_num
- 数据类型textnullable
- 采样值distinct全部 NULL
- NULL 率295/295 = 100%(全部为空)
- 业务含义推测:备用工号字段,上游 SaaS 预留但当前门店未启用。
- 建议:**需要映射** → `dim_assistant_ex.job_num`。虽然当前全 NULL但作为档案类维度字段应保持完整性未来门店可能启用工号管理。映射成本极低。
### assistant_accounts_master — cx_unit_price
- 数据类型numericnullable
- 采样值distinct`0.00`(仅 1 个值)
- NULL 率0/295 = 0%(全部非空)
- 业务含义推测:促销时段(超休时段)助教单价。当前全部为 0.00,说明门店未启用促销时段差异化定价。
- 建议:**需要映射** → `dim_assistant_ex.cx_unit_price`。该字段与工资计算直接相关DWS 层助教业绩/工资计算可能需要),即使当前为 0 也应保留,一旦门店启用促销定价即有数据。
### assistant_accounts_master — pd_unit_price
- 数据类型numericnullable
- 采样值distinct`0.00`(仅 1 个值)
- NULL 率0/295 = 0%(全部非空)
- 业务含义推测:普通时段助教单价。当前全部为 0.00,与 cx_unit_price 同理,门店未启用按时段定价。
- 建议:**需要映射** → `dim_assistant_ex.pd_unit_price`。理由同 cx_unit_price与工资计算直接相关应保持完整性。
---
## 1.1.3 table_fee_transactions
ODS→DWD 未映射 1 个字段:`siteprofile`
### table_fee_transactions — siteprofile
- 跳过jsonb 列,按规则跳过)
---
## 1.1.4 assistant_service_records助教服务流水
ODS→DWD 未映射 4 个字段:`siteprofile`(跳过), `site_assistant_id`, `operator_id`, `operator_name`
### assistant_service_records — siteprofile
- 跳过jsonb 列,按规则跳过)
### assistant_service_records — site_assistant_id
- 数据类型bigintnullable
- 采样值(前 5 个 distinct`2793361915547781`, `2793363001774149`, `2793399247179845`, `2793405307342917`, `2793483330310277`
- NULL 率0/10219 = 0%(全部非空)
- distinct 值数量63对比 order_assistant_id 的 5292 个 distinct 值)
- 业务含义推测:**门店助教档案 ID**,指向 `ods.assistant_accounts_master.id`,代表"哪个助教"。与 `order_assistant_id`(订单级助教分配 ID每次服务生成一个唯一 ID完全不同。
#### ⚠️ 关键发现DWD 映射错误已确认
| 验证项 | 结果 |
|--------|------|
| DWD `site_assistant_id` distinct 值数量 | 5276应为 ~63 |
| DWD `site_assistant_id` 匹配 ODS `order_assistant_id` | **10203/10203 = 100%** |
| DWD `site_assistant_id` 匹配 ODS `site_assistant_id` | **0/10203 = 0%** |
**结论**DWD `dwd_assistant_service_log.site_assistant_id` 当前实际映射自 ODS `order_assistant_id`,而非 ODS `site_assistant_id`。这是一个映射错误。
- 建议:**需要修复映射**。当前 DWD 的 `site_assistant_id` 列应改为映射自 ODS 的 `site_assistant_id`(助教档案 ID而非 `order_assistant_id`。此字段是关联 `dim_assistant` 维度表的关键外键,映射错误会导致助教维度 JOIN 失败或产生错误的业绩归属。修复优先级:**高**。
### assistant_service_records — operator_id
- 数据类型bigintnullable
- 采样值distinct`2790687322443013`(仅 1 个值)
- NULL 率0/10219 = 0%(全部非空)
- distinct 值数量1
- 业务含义推测:操作员 ID即执行该服务记录录入的收银员/操作人员。当前只有 1 个操作员(与 operator_name 一致)。
- 建议:**需要映射** → `dwd_assistant_service_log_ex.operator_id`。虽然当前只有 1 个操作员,但多门店/多收银员场景下会有多个值。与 operator_name 配对使用,便于追溯操作责任。
### assistant_service_records — operator_name
- 数据类型textnullable
- 采样值distinct`收银员:郑丽珊`(仅 1 个值)
- NULL 率0/10219 = 0%(全部非空)
- distinct 值数量1
- 业务含义推测:操作员名称,格式为"角色:姓名"。
- 建议:**需要映射** → `dwd_assistant_service_log_ex.operator_name`。理由同 operator_id配对映射。
---
## 1.1.5 assistant_cancellation_records助教废除记录
ODS→DWD 未映射 2 个字段:`siteprofile`(跳过), `assistanton`
### assistant_cancellation_records — siteprofile
- 跳过jsonb 列,按规则跳过)
### assistant_cancellation_records — assistanton
- 数据类型integernullable
- 采样值(前 10 个 distinct`1, 2, 4, 5, 6, 7, 8, 9, 10, 11`
- 值域范围min=1, max=99, avg=16.93
- NULL 率0/100 = 0%(全部非空)
- distinct 值数量22
- 分布top 5`15→15次, 6→12次, 4→8次, 9→8次, 11→6次`
- 业务含义推测:**助教编号**(整数编号),代表该助教在门店内的编号。与 `assistantname`(助教昵称)一一对应,例如 assistanton=1 对应"小燕"assistanton=2 对应"佳怡"。
#### ⚠️ 注意DWD 现有 `assistant_no` 列实际映射自 `assistantname`(昵称),而非 `assistanton`(编号)
- 建议:**需要映射** → `dwd_assistant_trash_event.assistant_on`(保留原始字段名语义)。该字段是助教的整数编号,可用于与其他系统的助教编号关联。当前 DWD 主表的 `assistant_no` 实际存储的是昵称(映射自 `assistantname`)。
---
## 1.1.6 store_goods_sales_records门店商品销售流水
ODS→DWD 未映射 1 个字段:`discount_price`
### store_goods_sales_records — discount_price
- 数据类型numericnullable
- 采样值(前 10 个 distinct`0.00, 1.00, 2.00, 3.00, 3.50, 4.00, 5.00, 6.00, 7.00, 8.00`
- NULL 率0/17563 = 0%(全部非空)
- distinct 值数量48
- 分布top 5`5.00→5008次, 8.00→3284次, 6.00→1365次, 2.00→1291次, 10.00→1174次`
-`ledger_unit_price` 的关系16287/17563 相同92.7%1276 条不同
- 业务含义推测:**折后单价**,即商品经过折扣后的实际销售单价。与 `ledger_unit_price`(台账单价/原价)在大多数情况下相同,但有 7.3% 的记录存在差异(即发生了折扣)。
#### ⚠️ DWD 列名冲突
| 验证项 | 结果 |
|--------|------|
| DWD `discount_price` 匹配 ODS `discount_money` | **17563/17563 = 100%** |
| DWD `discount_price` 匹配 ODS `discount_price` | 111/17563 = 0.6%(巧合) |
**结论**DWD `dwd_store_goods_sale.discount_price` 当前实际映射自 ODS `discount_money`(折扣金额),而非 ODS `discount_price`折后单价。列名存在语义误导。需要进行修正DWD字段名称应与ODS相符
---
## 1.1.7 payment_transactions
ODS→DWD 未映射 1 个字段:`siteprofile`
### payment_transactions — siteprofile
- 跳过jsonb 列,按规则跳过)
---
## 1.1.8 refund_transactions
ODS→DWD 未映射 1 个字段:`siteprofile`
### refund_transactions — siteprofile
- 跳过jsonb 列,按规则跳过)
---
## 1.1.9 platform_coupon_redemption_records
ODS→DWD 未映射 1 个字段:`siteprofile`
### platform_coupon_redemption_records — siteprofile
- 跳过jsonb 列,按规则跳过)
---

View File

@@ -0,0 +1,608 @@
# 字段差异审核报告(第二批)— 1.1.12 ~ 1.1.17
> 数据源test_etl_feiqiu开发/测试环境)
> 审核时间2026-02-20
> 审核范围ODS→DWD 未映射字段 + API→ODS 未映射(平层)字段
---
## 1.1.12 member_balance_changes
### member_balance_changes — relate_id
- 数据类型bigint
- 采样值(前 10 个 distinct`2993181992014533`, `3072754355946949`, `2947505138716229`, `2992745472101061`, `2929262226949893`, `2913844390610501`, `3062602498559493`, `2839291793787205`, `2995833615503621`, `2986287611251333`
- NULL 率0/9684 = 0%(全部非空)
- distinct 值数量3904
- 关联验证:与 `ods.recharge_settlements.id` 交集 867 条(约 9.0%),说明部分余额变动关联充值结算单,其余可能关联订单、退款等其他业务单据
- 业务含义推测:关联业务单据 ID标识触发本次余额变动的源单据充值单、消费订单、退款单等。是余额变动的溯源字段可用于反查具体业务操作
- 建议:**需要映射** — 该字段 100% 非空,是余额变动溯源的关键外键。映射到 DWD 后可支持"余额变动 → 源单据"的关联分析。建议 DWD 列名 `relate_id`bigint
---
## 1.1.13 recharge_settlements
> 重点对比ODS 5 个字段在 DWD 中已有对应列,但 FACT_MAPPINGS 可能缺失
### ODS 侧统计
| 字段 | 数据类型 | 总行数 | 非零行数 |
|------|---------|--------|---------|
| plcouponsaleamount | numeric | 3333 | 0 |
| mervousalesamount | numeric | 3333 | 0 |
| electricitymoney | numeric | 3333 | 0 |
| realelectricitymoney | numeric | 3333 | 0 |
| electricityadjustmoney | numeric | 3333 | 0 |
### DWD 侧统计dwd.dwd_recharge_order
| 字段 | 数据类型 | 总行数 | 非零行数 |
|------|---------|--------|---------|
| pl_coupon_sale_amount | numeric | 485 | 0 |
| mervou_sales_amount | numeric | 485 | 0 |
| electricity_money | numeric | 485 | 0 |
| real_electricity_money | numeric | 485 | 0 |
| electricity_adjust_money | numeric | 485 | 0 |
### 对比结论
ODS 和 DWD 两侧这 5 个字段**全部为 0**无任何非零值。DWD 已建好对应列(命名规范化),但由于上游业务未产生相关数据,无法通过数据对比验证映射是否生效。
### 逐字段分析
#### recharge_settlements — plcouponsaleamount
- 数据类型numeric
- 采样值:全部为 0
- NULL 率0%
- 业务含义推测:平台优惠券销售金额(团购/平台券抵扣部分)
- 建议:**需要补充 FACT_MAPPINGS** — DWD 列 `pl_coupon_sale_amount` 已存在,应确认 FACT_MAPPINGS 中是否有 `plcouponsaleamount → pl_coupon_sale_amount` 的映射条目。当前数据全为 0 不影响映射正确性,业务启用后即可自动流转
#### recharge_settlements — mervousalesamount
- 数据类型numeric
- 采样值:全部为 0
- NULL 率0%
- 业务含义推测:美团/大众点评等第三方平台销售金额
- 建议:**需要补充 FACT_MAPPINGS** — 对应 DWD 列 `mervou_sales_amount`,理由同上
#### recharge_settlements — electricitymoney
- 数据类型numeric
- 采样值:全部为 0
- NULL 率0%
- 业务含义推测:电费金额(台桌灯控计费)
- 建议:**需要补充 FACT_MAPPINGS** — 对应 DWD 列 `electricity_money`
#### recharge_settlements — realelectricitymoney
- 数据类型numeric
- 采样值:全部为 0
- NULL 率0%
- 业务含义推测:实际电费金额(扣除优惠后)
- 建议:**需要补充 FACT_MAPPINGS** — 对应 DWD 列 `real_electricity_money`
#### recharge_settlements — electricityadjustmoney
- 数据类型numeric
- 采样值:全部为 0
- NULL 率0%
- 业务含义推测:电费调整金额
- 建议:**需要补充 FACT_MAPPINGS** — 对应 DWD 列 `electricity_adjust_money`
### 1.1.13 总结
5 个字段在 DWD 中均已有对应列数据类型一致numeric。当前 ODS/DWD 两侧数据全为 0说明该门店尚未启用相关业务功能。**应检查并补全 FACT_MAPPINGS 配置**,确保映射通道畅通,待业务启用后数据可自动流转。优先级:低(数据全为零,不影响现有报表)。
---
## 1.1.14 group_buy_packages
### group_buy_packages — tenantTableAreaIdList[]API 字段)
- ODS 对应列:`tenant_table_area_id_list`jsonb
- 实际存储类型jsonb`jsonb_typeof()` 返回 `string`(即存储的是字符串形式的单个 ID而非数组
- 采样值:`"2791960001957765"`, `"2791960521691013"`, `"2791962314215301"`
- NULL 率51/70 = 72.9%(大部分为空)
- distinct 值数量:约 3-5 个(对应不同区域 ID
- 业务含义推测:租户级台桌区域 ID 列表标识团购套餐适用的台桌区域。API 返回数组ODS 已落地为 jsonb 列
- 建议:**跳过** — 该字段已在 ODS 中以 jsonb 列存储(非"平层未映射"),且 72.9% 为 NULL。API→ODS 映射已完成DWD 层团购套餐表如需区域关联可从此列提取
### group_buy_packages — tableAreaNameList[]API 字段)
- ODS 对应列:`table_area_id_list`jsonb— 注意ODS 列名为 `table_area_id_list`,但 API 字段名为 `tableAreaNameList`
- ODS 列值:全部为 NULL70/70 = 100%
- payload 中的值:存在于 `payload->'tableAreaNameList'` 中,采样值为 `["A区"]`, `["B区"]`, `["麻将房"]`
- 业务含义推测:台桌区域名称列表,是 `tenantTableAreaIdList` 的可读名称版本
- 建议:**跳过(但需记录问题)** — `table_area_id_list` 列全为 NULL而 payload 中 `tableAreaNameList` 有值,说明 ODS 平层化时可能存在字段名映射错误(`table_area_id_list` 应映射 `tableAreaIdList` 而非 `tableAreaNameList`,或需新增 `table_area_name_list` 列)。建议后续修复 ODS 平层化映射,但不阻塞当前 DWD 流程
---
## 1.1.15 goods_stock_summary无 DWD 表)
> 14 个字段全部无 DWD 映射,原因:尚未建立对应的 DWD 表
### 整体统计
| 指标 | 值 |
|------|-----|
| 总行数 | 1,088 |
| distinct 商品数 | 173 |
| distinct 商品名 | 173 |
| distinct 单位 | 13 |
| distinct 一级分类 | 9 |
| distinct 二级分类 | 14 |
| distinct 分类名 | 9 |
| NULL 率 | 所有 14 个字段均 0% NULL |
### 逐字段分析
#### goods_stock_summary — sitegoodsid
- 数据类型bigint推测
- 采样值173 个 distinct 值(商品级 ID
- NULL 率0/1088 = 0%
- 业务含义推测:门店商品 ID标识具体商品在门店的唯一身份
- 建议:若建 DWD 表则为主键/业务键
#### goods_stock_summary — goodsname
- 数据类型text
- 采样值:`酱香爆珠槟榔`, `乌龙茶香槟榔`, `金银花凉茶`, `大瓶蓝妹`, `一次性湿巾`
- NULL 率0/1088 = 0%
- distinct 值数量173
- 业务含义推测:商品名称
- 建议:若建 DWD 表则为维度属性
#### goods_stock_summary — goodsunit
- 数据类型text
- 采样值:`包`, `瓶`, `张`, `盒`, `杯`, `个`, `份`, `双`, `支`, `根`, `桶`, `盘`, `罐`(共 13 种)
- NULL 率0/1088 = 0%
- 业务含义推测:商品计量单位
- 建议:若建 DWD 表则为维度属性
#### goods_stock_summary — goodscategoryid
- 数据类型bigint推测
- distinct 值数量9
- NULL 率0/1088 = 0%
- 业务含义推测:商品一级分类 ID
- 建议:若建 DWD 表则为维度外键
#### goods_stock_summary — goodscategorysecondid
- 数据类型bigint推测
- distinct 值数量14
- 采样值:对应分类名如 `香烟`, `酒水`, `雪糕`, `槟榔`, `小吃`, `果盘`, `麻将房`, `其他`, `器材`, `零食`
- NULL 率0/1088 = 0%
- 业务含义推测:商品二级分类 ID
- 建议:若建 DWD 表则为维度外键
#### goods_stock_summary — categoryname
- 数据类型text
- 采样值:`槟榔`, `酒水`, `其他`, `香烟`, `雪糕`, `小吃`, `果盘`, `器材`, `零食`(共 9 种)
- NULL 率0/1088 = 0%
- 业务含义推测:一级分类名称(冗余字段,与 goodscategoryid 对应)
- 建议:若建 DWD 表可保留为冗余维度属性,避免额外 JOIN
#### goods_stock_summary — rangestartstock
- 数据类型numeric
- 值域0.0000 ~ 976.0000
- NULL 率0/1088 = 0%
- 业务含义推测:查询时间范围内的期初库存
- 建议:若建 DWD 表则为度量字段
#### goods_stock_summary — rangeendstock
- 数据类型numeric
- 值域0.0000 ~ 976.0000
- NULL 率0/1088 = 0%
- 业务含义推测:查询时间范围内的期末库存
- 建议:若建 DWD 表则为度量字段
#### goods_stock_summary — rangein
- 数据类型numeric
- 值域:全部为 0.0000
- NULL 率0/1088 = 0%
- 业务含义推测:时间范围内入库数量
- 建议:当前全为 0可能该门店未使用入库功能或查询范围无入库记录
#### goods_stock_summary — rangeout
- 数据类型numeric
- 值域:全部为 0.0000
- NULL 率0/1088 = 0%
- 业务含义推测:时间范围内出库数量
- 建议:同上,当前全为 0
#### goods_stock_summary — rangesale
- 数据类型numeric
- 值域:全部为 0.0000
- NULL 率0/1088 = 0%
- 业务含义推测:时间范围内销售数量
- 建议:同上,当前全为 0
#### goods_stock_summary — rangesalemoney
- 数据类型numeric
- 值域:全部为 0.00
- NULL 率0/1088 = 0%
- 业务含义推测:时间范围内销售金额
- 建议:同上,当前全为 0
#### goods_stock_summary — rangeinventory
- 数据类型numeric
- 值域:全部为 0.0000
- NULL 率0/1088 = 0%
- 业务含义推测:时间范围内盘点数量
- 建议:同上,当前全为 0
#### goods_stock_summary — currentstock
- 数据类型numeric
- 值域0.0000 ~ 976.0000
- NULL 率0/1088 = 0%
- 业务含义推测:当前库存数量(最新快照)
- 建议:若建 DWD 表则为核心度量字段
### 1.1.15 总结
goods_stock_summary 是**库存汇总快照表**记录每个商品在特定时间范围内的库存变动摘要。1,088 行覆盖 173 种商品,所有字段 0% NULL数据质量良好。
**是否需要新建 DWD 表:建议暂缓**
- 理由range 系列字段rangein/rangeout/rangesale/rangesalemoney/rangeinventory全部为 0说明该表的时间范围汇总功能未被有效利用
- 有价值的数据仅为 `currentstock`(当前库存)和商品维度信息,而这些信息可从 `goods_stock_movements`(库存流水)推算
- 建议优先建设 `goods_stock_movements` 的 DWD 表(见 1.1.16),库存汇总可作为 DWS 层聚合产出
- 优先级:低
---
## 1.1.16 goods_stock_movements无 DWD 表)
> 19 个字段全部无 DWD 映射,原因:尚未建立对应的 DWD 表
### 整体统计
| 指标 | 值 |
|------|-----|
| 总行数 | 35,606 |
| distinct 流水 ID | 34,961 |
| distinct 租户 | 1 |
| distinct 门店 | 1 |
| distinct 商品 | 165 |
| distinct 商品名 | 170 |
| distinct 一级分类 | 9 |
| distinct 二级分类 | 14 |
| distinct 单位 | 13个/份/包/双/张/支/杯/根/桶/瓶/盒/盘/罐) |
| distinct 库存类型 | 61/2/4/7/8/9 |
| distinct 操作人 | 8 |
| 价格范围 | 2.00 ~ 11,360.00 |
| 变动数量范围 | -66 ~ 1,000 |
| 时间范围 | 2025-07-18 ~ 2026-02-14 |
### NULL 率汇总
| 字段 | NULL 数 | NULL 率 |
|------|---------|---------|
| sitegoodsstockid | 0 | 0% |
| tenantid | 0 | 0% |
| siteid | 0 | 0% |
| sitegoodsid | 0 | 0% |
| goodsname | 0 | 0% |
| goodscategoryid | 0 | 0% |
| goodssecondcategoryid | 0 | 0% |
| unit | 0 | 0% |
| price | 0 | 0% |
| stocktype | 0 | 0% |
| changenum | 0 | 0% |
| startnum | 0 | 0% |
| endnum | 0 | 0% |
| changenuma | 0 | 0% |
| startnuma | 0 | 0% |
| endnuma | 0 | 0% |
| remark | 34,315 | 96.4% |
| operatorname | 0 | 0% |
| createtime | 0 | 0% |
### 逐字段分析
#### goods_stock_movements — sitegoodsstockid
- 数据类型bigint
- distinct 值数量34,961接近总行数 35,606近似唯一
- NULL 率0%
- 业务含义推测:库存流水记录主键 ID
- 建议:若建 DWD 表则为业务键
#### goods_stock_movements — tenantid
- 数据类型bigint
- distinct 值数量1
- NULL 率0%
- 业务含义推测:租户 ID当前单租户
- 建议:若建 DWD 表保留,用于多租户扩展
#### goods_stock_movements — siteid
- 数据类型bigint
- distinct 值数量1
- NULL 率0%
- 业务含义推测:门店 ID当前单门店
- 建议:若建 DWD 表保留,用于 RLS 隔离
#### goods_stock_movements — sitegoodsid
- 数据类型bigint
- distinct 值数量165
- NULL 率0%
- 业务含义推测:门店商品 ID关联商品维度
- 建议:若建 DWD 表则为维度外键
#### goods_stock_movements — goodsname
- 数据类型text
- 采样值:`可乐`, `脉动`, `哇米诺豆奶`, `哇哈哈矿泉水`, `钻石荷花`
- distinct 值数量170
- NULL 率0%
- 业务含义推测:商品名称(冗余)
- 建议:若建 DWD 表保留为冗余维度
#### goods_stock_movements — goodscategoryid
- 数据类型bigint
- distinct 值数量9
- NULL 率0%
- 业务含义推测:商品一级分类 ID
- 建议:若建 DWD 表则为维度外键
#### goods_stock_movements — goodssecondcategoryid
- 数据类型bigint
- distinct 值数量14
- NULL 率0%
- 业务含义推测:商品二级分类 ID
- 建议:若建 DWD 表则为维度外键
#### goods_stock_movements — unit
- 数据类型text
- 采样值:`个`, `份`, `包`, `双`, `张`, `支`, `杯`, `根`, `桶`, `瓶`, `盒`, `盘`, `罐`(共 13 种)
- NULL 率0%
- 业务含义推测:商品计量单位
- 建议:若建 DWD 表保留
#### goods_stock_movements — price
- 数据类型numeric
- 值域2.0000 ~ 11,360.0000
- NULL 率0%
- 业务含义推测:商品单价
- 建议:若建 DWD 表则为度量字段
#### goods_stock_movements — stocktype
- 数据类型integer
- 枚举值:`1`(销售出库), `2`(采购入库), `4`(盘点调整), `7`?, `8`(领用确认/退回), `9`?
- NULL 率0%
- 业务含义推测:库存变动类型枚举
- 建议:若建 DWD 表则为维度字段,需建立枚举映射表
#### goods_stock_movements — changenum
- 数据类型numeric
- 值域:-66.0000 ~ 1,000.0000(负数=出库,正数=入库)
- NULL 率0%
- 业务含义推测:主计量单位变动数量
- 建议:若建 DWD 表则为核心度量字段
#### goods_stock_movements — startnum
- 数据类型numeric
- NULL 率0%
- 业务含义推测:变动前库存数量(主计量单位)
- 建议:若建 DWD 表保留,用于库存校验
#### goods_stock_movements — endnum
- 数据类型numeric
- NULL 率0%
- 业务含义推测:变动后库存数量(主计量单位)
- 建议:若建 DWD 表保留
#### goods_stock_movements — changenuma
- 数据类型numeric
- 非零行数2,326/35,606 = 6.5%
- NULL 率0%
- 采样值(非零时):与 changenum 互补,当 changenum=0 时 changenuma 有值反之亦然。典型场景stocktype=2采购入库时 changenuma 有值stocktype=8领用确认时 changenuma 为负
- 业务含义推测:**辅助计量单位变动数量**(如"箱"vs"瓶"的双单位管理)
- 建议:若建 DWD 表保留,支持双单位库存管理
#### goods_stock_movements — startnuma
- 数据类型numeric
- 非零行数1,256/35,606 = 3.5%
- NULL 率0%
- 业务含义推测:变动前库存数量(辅助计量单位)
- 建议:若建 DWD 表保留
#### goods_stock_movements — endnuma
- 数据类型numeric
- 非零行数1,070/35,606 = 3.0%
- NULL 率0%
- 业务含义推测:变动后库存数量(辅助计量单位)
- 建议:若建 DWD 表保留
#### goods_stock_movements — remark
- 数据类型text
- 采样值:`结账退货`, `采购退货`, `系统自动领用`, `系统自动领用退回`
- NULL 率34,315/35,606 = 96.4%
- distinct 值数量:约 4 种
- 业务含义推测:库存变动备注,仅在特殊操作时填写
- 建议:若建 DWD 表保留(可为 nullable
#### goods_stock_movements — operatorname
- 数据类型text
- 采样值:`收银员:郑丽珊` 等(共 8 个 distinct
- NULL 率0%
- 业务含义推测:操作人姓名(含角色前缀)
- 建议:若建 DWD 表保留
#### goods_stock_movements — createtime
- 数据类型timestamp
- 值域2025-07-18 15:18:49 ~ 2026-02-14 00:21:21
- NULL 率0%
- 业务含义推测:库存变动发生时间
- 建议:若建 DWD 表则为时间维度键
### 1.1.16 总结
goods_stock_movements 是**库存流水明细表**记录每一笔库存变动销售、采购、盘点、领用等。35,606 行数据,时间跨度约 7 个月,数据质量优秀(除 remark 外所有字段 0% NULL
**是否需要新建 DWD 表:建议需要,优先级中**
- 理由:
1. 数据量大3.5 万行)且持续增长,是库存管理的核心流水数据
2. 支持双单位管理changenum/changenuma业务复杂度较高
3. 可支撑 DWS 层库存分析(库存周转率、损耗率、采购频次等)
4. 与 goods_stock_summary 相比,流水数据更有分析价值
- 建议 DWD 表名:`dwd.dwd_goods_stock_movement`
- 建议处理方式:事实表,按 createtime 增量加载
---
## 1.1.17 site_tables_master台桌维度扩展属性
> 14 个字段无 DWD 映射,当前 DWD dim_table_ex 只有少量列
### 整体统计
| 指标 | 值 |
|------|-----|
| 总行数 | 1,074 |
| distinct 门店名 | 1朗朗桌球 |
### NULL 率汇总
| 字段 | NULL 数 | NULL 率 |
|------|---------|---------|
| sitename | 0 | 0% |
| appletQrCodeUrl | 0 | 0% |
| audit_status | 0 | 0% |
| charge_free | 0 | 0% |
| create_time | 0 | 0% |
| delay_lights_time | 0 | 0% |
| is_rest_area | 0 | 0% |
| light_status | 0 | 0% |
| only_allow_groupon | 0 | 0% |
| order_delay_time | 0 | 0% |
| self_table | 0 | 0% |
| tablestatusname | 0 | 0% |
| temporary_light_second | 0 | 0% |
| virtual_table | 0 | 0% |
### 逐字段分析
#### site_tables_master — sitename
- 数据类型text
- 采样值:`朗朗桌球`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测:门店名称(冗余字段,所有台桌属于同一门店)
- 建议:**跳过** — 单值冗余字段,门店信息已在其他维度表中
#### site_tables_master — appletQrCodeUrl
- 数据类型text
- 采样值:`https://pc-we.ficoo.vip/rootwww/prodwx38a48dd2bc3c1642?env=prod&type=1&id=...&siteId=...`
- NULL 率0%
- 业务含义推测:小程序扫码开台的二维码 URL每张台桌一个唯一 URL
- 建议:**跳过** — 运营/展示用途,非分析字段。且包含环境参数,不适合进入 DWD
#### site_tables_master — audit_status
- 数据类型integer
- 采样值:`2`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测审核状态2 可能表示"已审核通过"
- 建议:**跳过** — 单值字段,所有台桌审核状态相同,无分析价值
#### site_tables_master — charge_free
- 数据类型integer
- 采样值:`0`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测是否免费0=收费)
- 建议:**跳过** — 单值字段,所有台桌均为收费模式
#### site_tables_master — create_time
- 数据类型timestamp
- 值域2025-07-15 17:52:54 ~ 2025-12-12 21:52:21
- NULL 率0%
- 业务含义推测:台桌创建时间
- 建议:**需要映射** — 有实际业务含义,可用于分析台桌上线时间线。建议映射到 dim_table_ex
#### site_tables_master — delay_lights_time
- 数据类型integer推测
- 采样值:`0`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测:延迟关灯时间(分钟/秒0 表示不延迟
- 建议:**跳过** — 单值字段,当前未启用延迟关灯功能
#### site_tables_master — is_rest_area
- 数据类型integer
- 采样值:`0`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测是否为休息区0=否)
- 建议:**跳过** — 单值字段,无休息区台桌
#### site_tables_master — light_status
- 数据类型integer
- 采样值:`1`, `2`2 个 distinct
- NULL 率0%
- 业务含义推测灯光状态1=开灯, 2=关灯,或类似枚举)
- 建议:**可选映射** — 有 2 个值可反映台桌当前灯光状态。但这是实时状态字段SCD2 维度表中意义有限(频繁变化)。如需灯控分析建议走事件流而非维度快照。优先级:低
#### site_tables_master — only_allow_groupon
- 数据类型integer
- 采样值:`2`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测是否仅允许团购开台2 可能表示"否/不限制"
- 建议:**跳过** — 单值字段
#### site_tables_master — order_delay_time
- 数据类型integer
- 采样值:`0`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测订单延迟时间分钟0 表示不延迟
- 建议:**跳过** — 单值字段
#### site_tables_master — self_table
- 数据类型integer
- 采样值:`1`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测是否为自有台桌1=是)
- 建议:**跳过** — 单值字段
#### site_tables_master — tablestatusname
- 数据类型text
- 采样值:`空闲中`, `使用中`, `暂停中`3 个 distinct
- NULL 率0%
- 业务含义推测:台桌当前状态名称
- 建议:**可选映射** — 有 3 个有意义的状态值,但同 light_status 一样是实时状态字段。如果 dim_table_ex 采用 SCD2此字段会导致频繁版本变更。建议仅在需要台桌状态分析时映射。优先级
#### site_tables_master — temporary_light_second
- 数据类型integer推测
- 采样值:`0`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测:临时亮灯秒数
- 建议:**跳过** — 单值字段,未启用临时亮灯功能
#### site_tables_master — virtual_table
- 数据类型integer
- 采样值:`0`(仅 1 个 distinct
- NULL 率0%
- 业务含义推测是否为虚拟台桌0=否,实体台桌)
- 建议:**跳过** — 单值字段
### 1.1.17 总结
14 个字段中:
- **需要映射**1 个(`create_time`
- **可选映射**2 个(`light_status`, `tablestatusname`)— 实时状态字段SCD2 维度表中价值有限
- **跳过**11 个 — 其中 10 个为单值字段当前门店配置统一1 个为运营 URL
大部分字段为单值(所有台桌配置相同),说明该门店的台桌配置较为统一。如果未来扩展到多门店,这些字段可能出现差异化,届时可重新评估映射需求。
---
## 总结与行动建议
### 需要立即处理
| 章节 | 字段 | 行动 |
|------|------|------|
| 1.1.12 | relate_id | 添加到 DWD 映射(余额变动溯源外键) |
| 1.1.13 | 5 个金额字段 | 检查并补全 FACT_MAPPINGS 配置DWD 列已存在) |
### 建议后续处理
| 章节 | 行动 | 优先级 |
|------|------|--------|
| 1.1.14 | 修复 ODS 平层化映射table_area_id_list vs tableAreaNameList 错位) | 低 |
| 1.1.16 | 新建 `dwd.dwd_goods_stock_movement` 事实表 | 中 |
| 1.1.17 | 映射 `create_time` 到 dim_table_ex | 低 |
### 暂不处理
| 章节 | 原因 |
|------|------|
| 1.1.15 goods_stock_summary | range 系列字段全为 0库存汇总可由流水表推算建议作为 DWS 层产出 |
| 1.1.17 大部分字段 | 11/14 为单值字段,无分析价值 |

View File

@@ -0,0 +1,138 @@
# 字段差异审核报告 — 第三批1.1.18 ~ 1.1.21
> 生成时间2025-07-18
> 数据源test_etl_feiqiu开发/测试环境)
> 审核范围stock_goods_category_tree / store_goods_master / table_fee_discount_records / tenant_goods_master
---
## 1.1.18 stock_goods_category_tree
### ODS→DWD 未映射1 个)
### [stock_goods_category_tree] — categoryboxes
- 数据类型jsonb
- 采样值(前 5 个 distinct
- `[{"id": 2790683528350534, "pid": 2790683528350533, "category_name": "槟榔", "business_name": "槟榔", ...}]`
- `[{"id": 2790683528350540, ...}, {"id": 2790683528350541, ...}, ...]`(多子分类数组,如"饮料/酒水/茶水/咖啡/加料/洋酒"
- `[{"id": 2790683528350536, ...}, ...]`"皮头/球杆/其他"
- `[{"id": 2792050275864453, ...}]`"果盘"
- `[{"id": 2791948300259205, ...}, ...]`"零食/面"
- NULL 率0/18 = 0%(全部非空)
- distinct 值数量9
- 业务含义推测:商品分类树的子分类列表(嵌套 JSON 数组)。每个元素包含子分类 ID、父 ID、分类名、业务名、排序、是否入库、是否开放销售员等属性。本质上是分类树的"子节点展开"。
- 建议:**跳过**。理由:
1. 这是 jsonb 嵌套结构,包含子分类的完整树形数据
2. 子分类信息已通过 `stock_goods_category_tree` 表本身的行级记录(每行一个分类节点)表达,`categoryboxes` 是冗余的嵌套视图
3. 如需子分类关系,应通过 `pid` 父子关系在 DWD 层重建,而非展开 jsonb
---
## 1.1.19 store_goods_master
### API→ODS 未映射平层1 个)
### [store_goods_master] — time_slot_sale
- ODS 列存在性:**不存在**`information_schema.columns` 查询返回空)
- payload 中存在性:有值,但覆盖率低
- 有值记录数346 / 1744 = 19.8%
- distinct 值数量1唯一值为 `"2"`
- 业务含义推测:时段销售标记。值 `2` 可能表示"不启用时段限售"或某种枚举状态。仅约 20% 的记录在 payload 中携带此字段,且值完全单一。
- 建议:**跳过**。理由:
1. ODS 表中无此列API 返回率低(~20%
2. 仅有单一值 `"2"`,无实际区分度
3. 如未来 API 开始返回多样化值,可再评估是否需要新增 ODS 列并映射
---
### ODS→DWD 未映射2 个)
### [store_goods_master] — batch_stock_quantity
- 数据类型numeric
- 采样值(前 10 个 distinct0.00, 1.00, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00, 9.00(连续整数居多,最大值需进一步查询)
- NULL 率0/1744 = 0%(全部非空)
- distinct 值数量96
- DWD 现有映射情况DWD `dim_store_goods.batch_stock_qty` 映射自 ODS `stock`(当前库存),**不是** `batch_stock_quantity`
- 业务含义推测:批次库存数量,与 `stock`(当前库存)含义不同。`stock` 是实时库存余量,`batch_stock_quantity` 是按批次入库的数量。
- 建议:**需要映射**。理由:
1. 100% 非空96 个 distinct 值,数据质量好
2. 与已映射的 `stock`(→ `batch_stock_qty`)含义不同,是独立的库存维度
3. 已有规划映射到 `dim_store_goods_ex`(见 `export_dwd_field_review.py` 中的规划)
4. 建议 DWD 列名:`batch_stock_quantity`,目标表:`dim_store_goods_ex`
### [store_goods_master] — provisional_total_cost
- 数据类型numeric
- 采样值(全部 5 个 distinct0.00, 0.10, 8.00, 152.00, 420.00
- NULL 率0/1744 = 0%(全部非空)
- distinct 值数量5
- DWD 列名冲突验证:
- DWD `dim_store_goods`**无** `provisional_total_cost`
- DWD 映射代码中:`("provisional_total_cost", "total_purchase_cost", None)` — 即 DWD 的 `provisional_total_cost` 列名映射自 ODS 的 `total_purchase_cost`
- **但实际 DWD 表中该列不存在**`information_schema` 查询返回空),说明该映射可能尚未部署或已被移除
- ODS `total_purchase_cost` vs `provisional_total_cost` 对比:
- `total_purchase_cost`1744 条非空17 个 distinct 值(实际采购总成本)
- `provisional_total_cost`1744 条非空5 个 distinct 值(暂估总成本)
- 两者值不同(如 total_purchase_cost=0.23 vs provisional_total_cost=0.00),是独立字段
- 业务含义推测:暂估总成本(暂估入库时的预估成本),与 `total_purchase_cost`(实际采购总成本)不同。暂估成本通常在货物到达但发票未到时使用。
- 建议:**需要映射**(但需解决列名冲突)。理由:
1. 100% 非空,与 `total_purchase_cost` 是不同的成本维度
2. 当前 DWD 映射代码中 `provisional_total_cost` 列名已被 `total_purchase_cost` 占用
3. 建议方案ODS `provisional_total_cost` 映射到 DWD 时使用新列名(如 `provisional_cost`),避免与现有映射冲突
4. 目标表建议:`dim_store_goods_ex`
---
## 1.1.20 table_fee_discount_records
### ODS→DWD 未映射2 个)
### [table_fee_discount_records] — siteprofile
- **跳过**jsonb 嵌套列,按规则跳过。
### [table_fee_discount_records] — tableprofile
- **跳过**jsonb 嵌套列,按规则跳过。
---
## 1.1.21 tenant_goods_master
### ODS→DWD 未映射1 个)
### [tenant_goods_master] — commoditycode
- 数据类型text
- 采样值(前 10 个 distinct`{1234530}`, `{1234321}`, `{10000028}`, `{112233}`, `{1234531}`, `{1234577}`, `{1234533}`, `{1234569}`, `{1234529}`, `{120000000}`
- NULL 率0/353 = 0%(全部非空)
- distinct 值数量134
- 冗余性验证:
- ODS 同时存在 `commodity_code`text`commoditycode`text
- `commoditycode` = `'{' + commodity_code + '}'`(花括号包裹格式)
- 353/353 条记录完全符合此规律,**零例外**
- DWD `dim_tenant_goods`**无** `commodity_code``commoditycode` 列(已确认列清单)
- 业务含义推测:商品编码的数组格式表示(`{value}` 是 PostgreSQL text[] 的文本表示)。`commodity_code` 是纯值,`commoditycode` 是带花括号的数组序列化形式,两者完全冗余。
- 建议:**跳过**。理由:
1. `commoditycode` = `'{' + commodity_code + '}'`100% 冗余,无独立信息
2. 如需在 DWD 中使用商品编码,应映射 `commodity_code`(纯值),而非 `commoditycode`(带花括号)
3. 注意DWD `dim_tenant_goods` 当前也没有 `commodity_code` 列,如有需要应单独评估是否新增
---
## 汇总
| 章节 | 表名 | 字段 | 差异类型 | 建议 |
|------|------|------|----------|------|
| 1.1.18 | stock_goods_category_tree | categoryboxes | ODS→DWD 未映射 | ⏭️ 跳过jsonb 嵌套,子分类已有行级表达) |
| 1.1.19 | store_goods_master | time_slot_sale | API→ODS 未映射 | ⏭️ 跳过ODS 无列payload 单一值,无区分度) |
| 1.1.19 | store_goods_master | batch_stock_quantity | ODS→DWD 未映射 | ✅ 需要映射(→ dim_store_goods_ex |
| 1.1.19 | store_goods_master | provisional_total_cost | ODS→DWD 未映射 | ✅ 需要映射(需解决列名冲突,→ dim_store_goods_ex |
| 1.1.20 | table_fee_discount_records | siteprofile | ODS→DWD 未映射 | ⏭️ 跳过jsonb 嵌套列) |
| 1.1.20 | table_fee_discount_records | tableprofile | ODS→DWD 未映射 | ⏭️ 跳过jsonb 嵌套列) |
| 1.1.21 | tenant_goods_master | commoditycode | ODS→DWD 未映射 | ⏭️ 跳过(与 commodity_code 100% 冗余) |
**需要映射2 个** | **跳过5 个**

View File

@@ -0,0 +1,357 @@
# 字段补全复核文档ODS + DWD 全量对照)
> 初始生成2026-02-20 00:09
> 二次审核2026-02-20基于 dataflow 报告 + 数据库实际值验证)
> 用途:供人工复核字段排查结论,确认后再执行代码变更
> 数据源test_etl_feiqiu开发/测试环境)
---
## 全局汇总
| 指标 | 数量 |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 涉及 ODS 表 | 12 |
| 待新增/补映射字段 | 40 |
| 需修复映射错误 | 4① assistant_service_records site_assistant_id② store_goods_sales_records discount_price 列名误导;③ store_goods_master batch_stock_qty 映射自错误源列;④ store_goods_master provisional_total_cost 映射自错误源列) |
| 跳过字段 | 6 |
| 新建 DWD 表 | 2goods_stock_movement 中优先级、settlement_ticket 待定) |
| 需修改 ODS 配置 | 1goods_stock_summary`requires_window` 改 True + 添加 `time_fields`,重新采集后可正常建 DWD 表) |
### 分类说明
- **A 类**:现有 DWD 表新增列 + FACT_MAPPINGS
- **B 类**DWD 列已存在,仅补 FACT_MAPPINGS
- **C 类**:需新建 DWD 表
- **🔴 修复类**:现有映射错误,需修正
---
## 🔴 映射错误修复(高优先级)
### assistant_service_records — site_assistant_id 映射错误
| 验证项 | 结果 |
| --------------------------------------------------------- | ---------------------------------------------------- |
| ODS `order_assistant_id` distinct 值 | 5,292订单级 ID每次服务生成一个 |
| ODS `site_assistant_id` distinct 值 | 63助教档案 ID对应 assistant_accounts_master.id |
| 10,219 条记录中两者相等的 | **0 条**(完全不同的字段) |
| 两者值域交集 | **无交集** |
| DWD `site_assistant_id` 匹配 ODS `order_assistant_id` | **100%** |
| DWD `site_assistant_id` 匹配 ODS `site_assistant_id` | **0%** |
**问题**DWD `dwd_assistant_service_log.site_assistant_id` 当前实际映射自 ODS `order_assistant_id`(订单级助教分配 ID而非 ODS `site_assistant_id`(助教档案 ID
**影响**:助教维度 JOIN 失败或产生错误的业绩归属。DWD 中有 5,276 个 distinct 值(应为 ~63 个)。
**修复方案**
1. FACT_MAPPINGS 中将 DWD `site_assistant_id` 的 ODS 源从 `order_assistant_id` 改为 `site_assistant_id`
2. 新增 DWD 列 `order_assistant_id`bigint到 dwd_assistant_service_log映射 ODS `order_assistant_id`
3. 重新加载历史数据
---
## 1. assistant_accounts_master助教账号档案— A 类
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| ------------------ | ------------- | ---------------- | -------------------------------------------------------------------------------------------- | --------------------------- |
| `system_role_id` | bigint | dim_assistant_ex | 系统角色 ID。采样值: 仅 `10`1 个 distinct0% NULL。当前所有助教同一角色未来可能扩展 | 新增 DWD 列 + FACT_MAPPINGS |
| `job_num` | text | dim_assistant_ex | 备用工号。采样值: 全部 NULL100% NULL门店未启用。保持完整性 | 新增 DWD 列 + FACT_MAPPINGS |
| `cx_unit_price` | numeric(18,2) | dim_assistant_ex | 促销时段单价。采样值: 全部 `0.00`(未启用差异化定价)。与工资计算相关 | 新增 DWD 列 + FACT_MAPPINGS |
| `pd_unit_price` | numeric(18,2) | dim_assistant_ex | 普通时段单价。采样值: 全部 `0.00`。与工资计算相关 | 新增 DWD 列 + FACT_MAPPINGS |
### ⏭️ 跳过字段
---
## 2. assistant_service_records助教服务流水— A 类
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| ----------------- | ------ | ---------------------------- | ---------------------------------------------------------------- | --------------------------- |
| `operator_id` | bigint | dwd_assistant_service_log_ex | 操作员 ID。采样值:`2790687322443013`1 个 distinct0% NULL | 新增 DWD 列 + FACT_MAPPINGS |
| `operator_name` | text | dwd_assistant_service_log_ex | 操作员名称。采样值:`收银员:郑丽珊`1 个 distinct0% NULL | 新增 DWD 列 + FACT_MAPPINGS |
### ⏭️ 跳过字段
| ODS 列 | 跳过原因 |
| --------------- | ----------------------------------------------------- |
| `siteprofile` | jsonb 嵌套列,存储门店信息快照,不适合直接映射 DWD 列 |
### 🔴 需修复
见上方「映射错误修复」章节。`site_assistant_id` 当前错误映射自 `order_assistant_id`,需修正。
---
## 3. assistant_cancellation_records助教废除记录— A 类
### ✅ 待新增 / 更新补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| ------------------------------- | ------- | ------------------------- | ----------------------------------------------------------- | ------------------- |
| `assistanton → assistant_no` | integer | dwd_assistant_trash_event | 更新字段,助教编号。采样值: 1~9922 个 distinct0% NULL。 | 更新 FACT_MAPPINGS |
### ⏭️ 跳过字段
| ODS 列 | 跳过原因 |
| --------------- | ------------ |
| `siteprofile` | jsonb 嵌套列 |
---
## 4. store_goods_sales_records门店商品销售流水
### 🔴 映射错误(需修正)
| 问题 | 说明 |
| ---------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| DWD 列 `discount_price` 命名误导 | 当前映射自 ODS `discount_money`(折扣金额),而非 ODS `discount_price`折后单价。DWD 字段名应与 ODS 源字段一致 |
验证数据:
| 验证项 | 结果 |
| ----------------------------------------------- | ------------------------ |
| DWD `discount_price` = ODS `discount_money` | 17563/17563 = 100% ✅ |
| DWD `discount_price` = ODS `discount_price` | 111/17563 = 0.6%(巧合) |
修正方案:将 DWD 列名 `discount_price` 重命名为 `discount_money`,使其与 ODS 源字段名一致。
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| ---------------------------------------- | ------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `discount_price``discount_price` | numeric | dwd_store_goods_sale | 折后单价。48 个 distinct0% NULL。与 `ledger_unit_price`(台账单价/原价92.7% 相同7.3% 存在差异(即发生了折扣)。采样值: 0.00, 1.00, 2.00, 3.00, 3.50, 5.00, 8.00 等。分布 top 5: 5.00→5008次, 8.00→3284次, 6.00→1365次, 2.00→1291次, 10.00→1174次 | 先完成上述列名修正,释放 `discount_price` 名称后,新增 DWD 列 + FACT_MAPPINGS |
---
## 5. member_balance_changes会员余额变动— A 类
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| ---------------- | ------ | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------- |
| `relate_id` | bigint | dwd_member_balance_change_ex | 关联业务单据 ID充值单/消费订单/退款单)。采样值: 3904 个 distinct0% NULL。约 9% 关联 recharge_settlements其余关联订单/退款等。余额变动溯源的关键外键 | 新增 DWD 列 + FACT_MAPPINGS |
### ⏭️ 跳过字段
---
## 6. tenant_goods_master租户商品档案
### ✅ 待新增 / 补映射字段
### ⏭️ 跳过字段
| ODS 列 | 跳过原因 |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `commoditycode` | 与 `commodity_code` 100% 冗余353/353 条验证:`commoditycode` = `'{' + `commodity_code ` + '}'`花括号包裹格式。DWD 如需商品编码应映射 `commodity_code`(纯值) |
---
## 7. site_tables_master台桌档案— A 类
> 二次审核结论:原方案 14 个字段,经数据库验证后分为 3 个有多值 + 11 个单值。
> 用户要求全部纳入待新增映射。单值字段当前门店配置统一,未来多门店扩展后可能出现差异。
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| -------------------------- | ----------- | ------------ | ------------------------------------------------------------------------------ | --------------------------- |
| `create_time` | timestamptz | dim_table_ex | 台桌创建时间。值域: 2025-07-15 ~ 2025-12-120% NULL。可用于分析台桌上线时间线 | 新增 DWD 列 + FACT_MAPPINGS |
| `light_status` | integer | dim_table_ex | 灯光状态。2 个 distinct1/2。实时状态字段SCD2 中会频繁变更 | 新增 DWD 列 + FACT_MAPPINGS |
| `tablestatusname` | text | dim_table_ex | 台桌状态名。3 个 distinct空闲中/使用中/暂停中)。实时状态字段 | 新增 DWD 列 + FACT_MAPPINGS |
| `sitename` | text | dim_table_ex | 门店名称。当前单值(`朗朗桌球`),多门店扩展后有区分度 | 新增 DWD 列 + FACT_MAPPINGS |
| `appletQrCodeUrl` | text | dim_table_ex | 小程序二维码 URL。运营/展示用途,含环境参数 | 新增 DWD 列 + FACT_MAPPINGS |
| `audit_status` | integer | dim_table_ex | 审核状态。当前单值(全部为 `2`,已审核通过) | 新增 DWD 列 + FACT_MAPPINGS |
| `charge_free` | integer | dim_table_ex | 收费模式。当前单值(全部为 `0`,收费) | 新增 DWD 列 + FACT_MAPPINGS |
| `delay_lights_time` | integer | dim_table_ex | 延迟关灯时间。当前单值(全部为 `0`,未启用) | 新增 DWD 列 + FACT_MAPPINGS |
| `is_rest_area` | integer | dim_table_ex | 是否休息区。当前单值(全部为 `0` | 新增 DWD 列 + FACT_MAPPINGS |
| `only_allow_groupon` | integer | dim_table_ex | 仅允许团购。当前单值(全部为 `2` | 新增 DWD 列 + FACT_MAPPINGS |
| `order_delay_time` | integer | dim_table_ex | 订单延迟时间。当前单值(全部为 `0` | 新增 DWD 列 + FACT_MAPPINGS |
| `self_table` | integer | dim_table_ex | 自助台桌标记。当前单值(全部为 `1` | 新增 DWD 列 + FACT_MAPPINGS |
| `temporary_light_second` | integer | dim_table_ex | 临时亮灯秒数。当前单值(全部为 `0`,未启用) | 新增 DWD 列 + FACT_MAPPINGS |
| `virtual_table` | integer | dim_table_ex | 虚拟台桌标记。当前单值(全部为 `0` | 新增 DWD 列 + FACT_MAPPINGS |
---
## 8. recharge_settlements充值结算单— B 类
> 二次审核结论5 个字段在 ODS 和 DWD 两侧数据全为 0业务未启用DWD 列已存在,仅需补 FACT_MAPPINGS。
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| ------------------------------------------------------ | ------------- | ------------------ | ------------------------------------------------ | ------------------ |
| `plcouponsaleamount → pl_coupon_sale_amount` | numeric(18,2) | dwd_recharge_order | 平台券销售金额。ODS/DWD 两侧全为 0业务未启用 | 仅补 FACT_MAPPINGS |
| `mervousalesamount → mervou_sales_amount` | numeric(18,2) | dwd_recharge_order | 美团/大众点评等平台销售金额。全为 0 | 仅补 FACT_MAPPINGS |
| `electricitymoney → electricity_money` | numeric(18,2) | dwd_recharge_order | 电费金额。全为 0 | 仅补 FACT_MAPPINGS |
| `realelectricitymoney → real_electricity_money` | numeric(18,2) | dwd_recharge_order | 实际电费金额。全为 0 | 仅补 FACT_MAPPINGS |
| `electricityadjustmoney → electricity_adjust_money` | numeric(18,2) | dwd_recharge_order | 电费调整金额。全为 0 | 仅补 FACT_MAPPINGS |
### ⏭️ 跳过字段
---
## 9. store_goods_master门店商品档案
🔴 映射错误(需修正)
| # | DWD 列 | 当前映射 ODS 列 | 正确 ODS 列 | 验证 |
| - | --------------------------------------------- | --------------------------------------- | -------------------------------------- | ---------------------------------------------------------------------------------------- |
| 1 | dim_store_goods.`batch_stock_qty` | `stock`(当前库存) | `batch_stock_quantity`(批次库存) | 1744 行中仅 127 行相等7.3%),两者 distinct 分别为 96 vs 240语义完全不同 |
| 2 | dim_store_goods_ex.`provisional_total_cost` | `total_purchase_cost`(实际采购成本) | `provisional_total_cost`(暂估成本) | 1744 行中 1631 行相等93.5%),但 113 行不同distinct 分别为 5 vs 17是不同的成本维度 |
修正方案:
1. `batch_stock_qty` 的 FACT_MAPPINGS 从 `stock` 改为 `batch_stock_quantity`
2. `provisional_total_cost` 的 FACT_MAPPINGS 从 `total_purchase_cost` 改为 `provisional_total_cost`
### ✅ 待新增 / 补映射字段
以下 ODS 字段当前未出现在任何 DWD 表中(既不在 FACT_MAPPINGS 中,也无法同名自动映射):
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| -------------------------- | ------------- | --------------- | ------------------------------------------------------------------------------------ | -------------------------- |
| `batch_stock_quantity` | numeric(18,2) | dim_store_goods | 批次库存数量。96 个 distinct0% NULL。修正 `batch_stock_qty` 映射后此字段自动覆盖 | 修正 FACT_MAPPINGS见上 |
| `provisional_total_cost` | numeric(18,2) | dim_store_goods | 暂估总成本。5 个 distinct0% NULL。修正映射后此字段自动覆盖 | 修正 FACT_MAPPINGS见上 |
### ⏭️ 跳过字段
| ODS 列 | 跳过原因 |
| ------------------ | --------------------------------------------------------------------------- |
| `time_slot_sale` | ODS 列不存在。payload 中仅 19.8% 记录有值,且全部为单一值 `"2"`,无区分度 |
---
## 10. goods_stock_summary库存汇总— C 类(需修改 ODS 任务配置后重新采集)
> 三次审核结论API 实测验证):
> - 原结论"range 系列全为 0、建议暂缓"已推翻
> - 实测发现:该 API 支持 `startTime`/`endTime` 参数,传入日期范围后 range 字段返回真实汇总数据
> - 当前 range 全为 0 的原因ODS 任务配置 `requires_window=False`,从未向 API 传递日期参数
> - 该表本质是**报表型 API**(带时间范围聚合能力),不是纯维表
### API 实测结果
| 测试场景 | 参数 | range 字段结果 |
| -------- | ---- | -------------- |
| ① 无日期参数(当前行为) | 无 | 全部为 0 |
| ② `startTime`/`endTime`30 天) | `startTime=2026-01-20, endTime=2026-02-19` | **有真实数据**rangeIn=24, rangeOut=-3, rangeSale=3, rangeSaleMoney=24.0 等) |
| ③ `rangeStartTime`/`rangeEndTime` | 同上日期 | 全部为 0API 不识别此参数名) |
结论API 仅识别 `startTime`/`endTime` 参数名。
### ODS 任务配置现状
```python
# apps/etl/connectors/feiqiu/tasks/ods/ods_tasks.py
OdsTaskSpec(
code="ODS_INVENTORY_STOCK",
table_name="ods.goods_stock_summary",
endpoint="/TenantGoods/GetGoodsStockReport",
requires_window=False, # ← 问题根因:从不传日期参数
...
)
```
### 修复方案
1.`requires_window` 改为 `True`
2. 添加 `time_fields=("startTime", "endTime")`,使调度器按窗口传入日期范围
3. 重新采集历史数据(按时间窗口分批)
4. 采集完成后range 字段将有真实汇总数据,可正常建设 DWD 表
### 数据概况(当前,修复前)
| 指标 | 值 |
| -------------------------------------------------------- | ------------------ |
| 总行数 | 1,088 |
| distinct 商品数 | 173 |
| 所有字段 NULL 率 | 0% |
| rangein/rangeout/rangesale/rangesalemoney/rangeinventory | 全部为 0因未传日期参数 |
| currentstock 值域 | 0 ~ 976 |
| rangestartstock/rangeendstock 值域 | 0 ~ 976 |
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| --------------------- | ---- | ------------------------------- | -------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `全部 14 个 ODS 列` | | dwd_goods_stock_summary新建 | 修改 ODS 任务配置(`requires_window=True` + `time_fields`并重新采集后range 字段将有真实数据,可正常建设 DWD 表 | 修改 ODS 配置 → 重新采集 → 新建 DWD 表 |
### ⏭️ 跳过字段
---
## 11. goods_stock_movements库存变动明细— C 类(建议优先级:中)
> 二次审核结论35,606 行流水数据,时间跨度 7 个月,数据质量优秀(除 remark 外所有字段 0% NULL
> 支持双单位管理changenum/changenuma是库存管理的核心流水数据。
### 数据概况
| 指标 | 值 |
| ----------------- | --------------------------------------------------- |
| 总行数 | 35,606 |
| distinct 流水 ID | 34,961 |
| distinct 商品 | 165 |
| distinct 库存类型 | 61=销售出库, 2=采购入库, 4=盘点调整, 7/8/9=其他) |
| distinct 操作人 | 8 |
| 价格范围 | 2.00 ~ 11,360.00 |
| 变动数量范围 | -66 ~ 1,000 |
| 时间范围 | 2025-07-18 ~ 2026-02-14 |
| remark NULL 率 | 96.4%(仅特殊操作时填写) |
| 其他字段 NULL 率 | 全部 0% |
### ✅ 待新增 / 补映射字段
| ODS 列 → DWD 列 | 类型 | 目标表 | 说明 | 操作 |
| --------------------- | ---- | -------------------------------- | ------------------------------------------------ | ----------------------------------------------------- |
| `全部 19 个 ODS 列` | | dwd_goods_stock_movement新建 | 事实表,按 createtime 增量加载。驼峰 → 蛇形命名 | 新建 DWD 表 + TABLE_MAP + FACT_MAPPINGS + loader/task |
### ⏭️ 跳过字段
---
## 附录:其他表(无字段新增需求,仅记录跳过项)
### payment_transactions / refund_transactions / platform_coupon_redemption_records / table_fee_transactions / table_fee_discount_records
这些表的 ODS→DWD 未映射字段均为 `siteprofile` 和/或 `tableprofile`jsonb 嵌套列),全部跳过。
### stock_goods_category_tree
`categoryboxes`jsonb跳过——子分类信息已通过表本身的行级记录每行一个分类节点 + pid 父子关系表达categoryboxes 是冗余的嵌套视图。
### group_buy_packages
API→ODS 未映射平层2 个数组字段:
- `tenantTableAreaIdList[]`ODS 已有 `tenant_table_area_id_list`jsonb72.9% NULL
- `tableAreaNameList[]`ODS `table_area_id_list` 全为 NULL但 payload 中有值(`["A区"]`, `["B区"]` 等)。存在字段名映射错位,建议后续修复 ODS 平层化映射
---
## 详细审核报告(分批)
完整的逐字段数据库验证结果见:
- `field_review_batch1_1.1.1-1.1.9.md` — 第一批(助教/商品/支付/退款/券核销)
- `field_review_batch2_1.1.12-1.1.17.md` — 第二批(余额变动/充值结算/团购/库存/台桌)
- `field_review_batch3_1.1.18-1.1.21.md` — 第三批(分类树/门店商品/台费折扣/租户商品)