Files
Neo-ZQYY/export/dataflow_analysis/dataflow_2026-02-16_203935.md

2674 lines
178 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 飞球连接器 — 数据流结构分析报告
> 生成时间2026-02-16 20:39:35 CST
> 分析范围飞球feiqiu连接器共 23 张 ODS 表
> 数据来源API JSON 采样 + PostgreSQL ODS/DWD 表结构 + DDL COMMENT 注释
## 1. 总览
| # | ODS 表名 | 业务描述 | 采样记录数 | ODS 列数 | DWD 目标表 | DWD 总列数 |
|---|---------|---------|-----------|---------|-----------|-----------|
| 1 | `assistant_accounts_master` | 助教账号档案 | 69 | 67 | dim_assistant, dim_assistant_ex | 67 |
| 2 | `settlement_records` | 结账记录 | 200 | 71 | dwd_settlement_head, dwd_settlement_head_ex | 67 |
| 3 | `table_fee_transactions` | 台费计费流水 | 200 | 47 | dim_site, dim_site_ex, dwd_table_fee_log, dwd_table_fee_log_ex | 84 |
| 4 | `assistant_service_records` | 助教服务流水 | 200 | 71 | dwd_assistant_service_log, dwd_assistant_service_log_ex | 64 |
| 5 | `assistant_cancellation_records` | 助教废除记录 | 79 | 19 | dwd_assistant_trash_event, dwd_assistant_trash_event_ex | 14 |
| 6 | `store_goods_sales_records` | 门店商品销售流水 | 200 | 56 | dwd_store_goods_sale, dwd_store_goods_sale_ex | 52 |
| 7 | `payment_transactions` | 支付流水 | 200 | 17 | dwd_payment | 12 |
| 8 | `refund_transactions` | 退款流水 | 36 | 37 | dwd_refund | 12 |
| 9 | `platform_coupon_redemption_records` | 平台/团购券核销 | 200 | 31 | dwd_platform_coupon_redemption, dwd_platform_coupon_redemption_ex | 26 |
| 10 | `member_profiles` | 会员档案 | 200 | 25 | dim_member, dim_member_ex | 30 |
| 11 | `member_stored_value_cards` | 会员储值卡 | 200 | 80 | dim_member_card_account, dim_member_card_account_ex | 84 |
| 12 | `member_balance_changes` | 会员余额变动 | 200 | 33 | dwd_member_balance_change, dwd_member_balance_change_ex | 29 |
| 13 | `recharge_settlements` | 充值结算 | 200 | 71 | dwd_recharge_order, dwd_recharge_order_ex | 67 |
| 14 | `group_buy_packages` | 团购套餐定义 | 18 | 43 | dim_groupbuy_package, dim_groupbuy_package_ex | 47 |
| 15 | `group_buy_redemption_records` | 团购套餐核销 | 200 | 57 | dwd_groupbuy_redemption, dwd_groupbuy_redemption_ex | 53 |
| 16 | `goods_stock_summary` | 库存汇总 | 173 | 19 | — | 0 |
| 17 | `goods_stock_movements` | 库存变化记录 | 200 | 24 | — | 0 |
| 18 | `site_tables_master` | 台桌维表 | 74 | 31 | dim_table, dim_table_ex | 22 |
| 19 | `stock_goods_category_tree` | 库存商品分类树 | 9 | 16 | dim_goods_category | 16 |
| 20 | `store_goods_master` | 门店商品档案 | 173 | 52 | dim_store_goods, dim_store_goods_ex | 56 |
| 21 | `table_fee_discount_records` | 台费折扣/调账 | 200 | 33 | dwd_table_fee_adjust, dwd_table_fee_adjust_ex | 29 |
| 22 | `tenant_goods_master` | 租户商品档案 | 174 | 37 | dim_tenant_goods, dim_tenant_goods_ex | 41 |
| 23 | `settlement_ticket_details` | 结账小票详情 | 0 | 43 | — | 0 |
| | **合计** | | **3405** | **980** | | **872** |
## 2. 全局统计
### 2.1 JSON→ODS 映射覆盖
- JSON 字段总数1067
- 已映射到 ODS 列84479.1%
- 仅存于 payload22320.9%
### 2.2 ODS→DWD 映射覆盖
- DWD 直接映射列745
- DWD 派生/计算列59
- DWD SCD2 版本控制列68
- DWD 列总数872
### 2.3 各表 JSON→ODS 映射覆盖率
| ODS 表名 | JSON 字段数 | 已映射 | 仅 payload | 覆盖率 |
|---------|-----------|-------|-----------|-------|
| `assistant_accounts_master` | 62 | 62 | 0 | 100.0% |
| `store_goods_sales_records` | 51 | 51 | 0 | 100.0% |
| `member_profiles` | 20 | 20 | 0 | 100.0% |
| `member_stored_value_cards` | 71 | 71 | 0 | 100.0% |
| `member_balance_changes` | 28 | 28 | 0 | 100.0% |
| `group_buy_redemption_records` | 52 | 52 | 0 | 100.0% |
| `goods_stock_summary` | 14 | 14 | 0 | 100.0% |
| `goods_stock_movements` | 19 | 19 | 0 | 100.0% |
| `site_tables_master` | 26 | 26 | 0 | 100.0% |
| `stock_goods_category_tree` | 20 | 20 | 0 | 100.0% |
| `tenant_goods_master` | 32 | 32 | 0 | 100.0% |
| `group_buy_packages` | 40 | 39 | 1 | 97.5% |
| `store_goods_master` | 53 | 48 | 5 | 90.6% |
| `settlement_records` | 92 | 68 | 24 | 73.9% |
| `recharge_settlements` | 92 | 68 | 24 | 73.9% |
| `assistant_service_records` | 91 | 67 | 24 | 73.6% |
| `table_fee_transactions` | 67 | 43 | 24 | 64.2% |
| `refund_transactions` | 57 | 33 | 24 | 57.9% |
| `table_fee_discount_records` | 55 | 30 | 25 | 54.5% |
| `platform_coupon_redemption_records` | 51 | 27 | 24 | 52.9% |
| `assistant_cancellation_records` | 38 | 14 | 24 | 36.8% |
| `payment_transactions` | 36 | 12 | 24 | 33.3% |
| `settlement_ticket_details` | 0 | 0 | 0 | — |
## 3. 逐表详情
### 3.1 assistant_accounts_master助教账号档案
- 任务代码:`ODS_ASSISTANT_ACCOUNT`
- 采样记录数69
- ODS 列数67
- DWD 目标表dim_assistant, dim_assistant_ex
#### JSON→ODS 映射(已映射 62/62覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `job_num` | `job_num` | string | 100.0% |
| `shop_name` | `shop_name` | string | 100.0% |
| `group_id` | `group_id` | integer | 100.0% |
| `group_name` | `group_name` | string | 100.0% |
| `staff_profile_id` | `staff_profile_id` | integer | 100.0% |
| `ding_talk_synced` | `ding_talk_synced` | integer | 100.0% |
| `entry_type` | `entry_type` | integer | 100.0% |
| `team_name` | `team_name` | string | 100.0% |
| `entry_sign_status` | `entry_sign_status` | integer | 100.0% |
| `resign_sign_status` | `resign_sign_status` | integer | 100.0% |
| `system_role_id` | `system_role_id` | integer | 100.0% |
| `criticism_status` | `criticism_status` | integer | 100.0% |
| `salary_grant_enabled` | `salary_grant_enabled` | integer | 100.0% |
| `leave_status` | `leave_status` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `allow_cx` | `allow_cx` | integer | 100.0% |
| `assistant_no` | `assistant_no` | string | 100.0% |
| `assistant_status` | `assistant_status` | integer | 100.0% |
| `avatar` | `avatar` | string | 100.0% |
| `birth_date` | `birth_date` | string | 100.0% |
| `charge_way` | `charge_way` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `cx_unit_price` | `cx_unit_price` | number | 100.0% |
| `end_time` | `end_time` | string | 95.7% |
| `entry_time` | `entry_time` | string | 100.0% |
| `gender` | `gender` | integer | 100.0% |
| `height` | `height` | number | 100.0% |
| `introduce` | `introduce` | string | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_guaranteed` | `is_guaranteed` | integer | 100.0% |
| `is_team_leader` | `is_team_leader` | integer | 100.0% |
| `last_table_id` | `last_table_id` | integer | 100.0% |
| `last_table_name` | `last_table_name` | string | 100.0% |
| `last_update_name` | `last_update_name` | string | 62.3% |
| `level` | `level` | integer | 100.0% |
| `light_equipment_id` | `light_equipment_id` | string | 100.0% |
| `light_status` | `light_status` | integer | 100.0% |
| `mobile` | `mobile` | string | 100.0% |
| `nickname` | `nickname` | string | 100.0% |
| `online_status` | `online_status` | integer | 100.0% |
| `order_trade_no` | `order_trade_no` | integer | 100.0% |
| `pd_unit_price` | `pd_unit_price` | number | 100.0% |
| `person_org_id` | `person_org_id` | integer | 100.0% |
| `real_name` | `real_name` | string | 100.0% |
| `resign_time` | `resign_time` | string | 100.0% |
| `serial_number` | `serial_number` | integer | 100.0% |
| `show_sort` | `show_sort` | integer | 100.0% |
| `show_status` | `show_status` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `site_light_cfg_id` | `site_light_cfg_id` | integer | 100.0% |
| `staff_id` | `staff_id` | integer | 100.0% |
| `start_time` | `start_time` | string | 95.7% |
| `team_id` | `team_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `update_time` | `update_time` | string | 100.0% |
| `user_id` | `user_id` | integer | 100.0% |
| `video_introduction_url` | `video_introduction_url` | string | 100.0% |
| `weight` | `weight` | number | 100.0% |
| `work_status` | `work_status` | integer | 100.0% |
| `assistant_grade` | `assistant_grade` | number | 100.0% |
| `sum_grade` | `sum_grade` | number | 100.0% |
| `get_grade_times` | `get_grade_times` | integer | 100.0% |
#### ODS→DWD`dim_assistant`(直接 15 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `assistant_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `user_id` | BIGINT | 直接 | `staff_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `assistant_no` | TEXT | 直接 | `assistant_no` | 维度字段,用于补充维度属性 |
| `real_name` | TEXT | 直接 | `real_name` | 名称字段,用于展示与辅助识别 |
| `nickname` | TEXT | 直接 | `nickname` | 名称字段,用于展示与辅助识别 |
| `mobile` | TEXT | 直接 | `mobile` | 维度字段,用于补充维度属性 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `team_id` | BIGINT | 直接 | `team_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `team_name` | TEXT | 直接 | `team_name` | 名称字段,用于展示与辅助识别 |
| `level` | INTEGER | 直接 | `level` | 维度字段,用于补充维度属性 |
| `entry_time` | TIMESTAMPTZ | 直接 | `entry_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `resign_time` | TIMESTAMPTZ | 直接 | `resign_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `leave_status` | INTEGER | 直接 | `leave_status` | 状态枚举字段,用于标识业务状态 |
| `assistant_status` | INTEGER | 直接 | `assistant_status` | 状态枚举字段,用于标识业务状态 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_assistant_ex`(直接 44 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `assistant_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `gender` | INTEGER | 直接 | `gender` | 维度字段,用于补充维度属性 |
| `birth_date` | TIMESTAMPTZ | 直接 | `birth_date` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `avatar` | TEXT | 直接 | `avatar` | 维度字段,用于补充维度属性 |
| `introduce` | TEXT | 直接 | `introduce` | 维度字段,用于补充维度属性 |
| `video_introduction_url` | TEXT | 直接 | `video_introduction_url` | 维度字段,用于补充维度属性 |
| `height` | NUMERIC(5,2) | 直接 | `height` | 维度字段,用于补充维度属性 |
| `weight` | NUMERIC(5,2) | 直接 | `weight` | 维度字段,用于补充维度属性 |
| `shop_name` | TEXT | 直接 | `shop_name` | 名称字段,用于展示与辅助识别 |
| `group_id` | BIGINT | 直接 | `group_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `group_name` | TEXT | 直接 | `group_name` | 名称字段,用于展示与辅助识别 |
| `person_org_id` | BIGINT | 直接 | `person_org_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `staff_id` | BIGINT | 直接 | `staff_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `staff_profile_id` | BIGINT | 直接 | `staff_profile_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `assistant_grade` | DOUBLE | 直接 | `assistant_grade` | 维度字段,用于补充维度属性 |
| `sum_grade` | DOUBLE | 直接 | `sum_grade` | 维度字段,用于补充维度属性 |
| `get_grade_times` | INTEGER | 直接 | `get_grade_times` | 维度字段,用于补充维度属性 |
| `charge_way` | INTEGER | 直接 | `charge_way` | 维度字段,用于补充维度属性 |
| `allow_cx` | INTEGER | 直接 | `allow_cx` | 维度字段,用于补充维度属性 |
| `is_guaranteed` | INTEGER | 直接 | `is_guaranteed` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `salary_grant_enabled` | INTEGER | 直接 | `salary_grant_enabled` | 维度字段,用于补充维度属性 |
| `entry_type` | INTEGER | 直接 | `entry_type` | 维度字段,用于补充维度属性 |
| `entry_sign_status` | INTEGER | 直接 | `entry_sign_status` | 状态枚举字段,用于标识业务状态 |
| `resign_sign_status` | INTEGER | 直接 | `resign_sign_status` | 状态枚举字段,用于标识业务状态 |
| `work_status` | INTEGER | 直接 | `work_status` | 状态枚举字段,用于标识业务状态 |
| `show_status` | INTEGER | 直接 | `show_status` | 状态枚举字段,用于标识业务状态 |
| `show_sort` | INTEGER | 直接 | `show_sort` | 维度字段,用于补充维度属性 |
| `online_status` | INTEGER | 直接 | `online_status` | 状态枚举字段,用于标识业务状态 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `criticism_status` | INTEGER | 直接 | `criticism_status` | 状态枚举字段,用于标识业务状态 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `update_time` | TIMESTAMPTZ | 直接 | `update_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `start_time` | TIMESTAMPTZ | 直接 | `start_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `end_time` | TIMESTAMPTZ | 直接 | `end_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `last_table_id` | BIGINT | 直接 | `last_table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `last_table_name` | TEXT | 直接 | `last_table_name` | 名称字段,用于展示与辅助识别 |
| `last_update_name` | TEXT | 直接 | `last_update_name` | 名称字段,用于展示与辅助识别 |
| `order_trade_no` | BIGINT | 直接 | `order_trade_no` | 维度字段,用于补充维度属性 |
| `ding_talk_synced` | INTEGER | 直接 | `ding_talk_synced` | 维度字段,用于补充维度属性 |
| `site_light_cfg_id` | BIGINT | 直接 | `site_light_cfg_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `light_equipment_id` | TEXT | 直接 | `light_equipment_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `light_status` | INTEGER | 直接 | `light_status` | 状态枚举字段,用于标识业务状态 |
| `is_team_leader` | INTEGER | 直接 | `is_team_leader` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `serial_number` | BIGINT | 直接 | `serial_number` | 数量/时长字段,用于统计与计量 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.2 settlement_records结账记录
- 任务代码:`ODS_SETTLEMENT_RECORDS`
- 采样记录数200
- ODS 列数71
- DWD 目标表dwd_settlement_head, dwd_settlement_head_ex
#### JSON→ODS 映射(已映射 68/92覆盖率 73.9%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenantid` | integer | 100.0% |
| `settleList.id` | `id` | integer | 100.0% |
| `settleList.tenantId` | `tenantid` | integer | 100.0% |
| `settleList.siteId` | `siteid` | integer | 100.0% |
| `settleList.siteName` | `sitename` | string | 100.0% |
| `settleList.balanceAmount` | `balanceamount` | number | 100.0% |
| `settleList.cardAmount` | `cardamount` | number | 100.0% |
| `settleList.cashAmount` | `cashamount` | number | 100.0% |
| `settleList.couponAmount` | `couponamount` | number | 100.0% |
| `settleList.createTime` | `createtime` | string | 100.0% |
| `settleList.memberId` | `memberid` | integer | 100.0% |
| `settleList.memberName` | `membername` | string | 100.0% |
| `settleList.tenantMemberCardId` | `tenantmembercardid` | integer | 100.0% |
| `settleList.memberCardTypeName` | `membercardtypename` | string | 100.0% |
| `settleList.memberPhone` | `memberphone` | string | 100.0% |
| `settleList.tableId` | `tableid` | integer | 100.0% |
| `settleList.consumeMoney` | `consumemoney` | number | 100.0% |
| `settleList.onlineAmount` | `onlineamount` | number | 100.0% |
| `settleList.operatorId` | `operatorid` | integer | 100.0% |
| `settleList.operatorName` | `operatorname` | string | 100.0% |
| `settleList.revokeOrderId` | `revokeorderid` | integer | 100.0% |
| `settleList.revokeOrderName` | `revokeordername` | string | 100.0% |
| `settleList.revokeTime` | `revoketime` | string | 100.0% |
| `settleList.payAmount` | `payamount` | number | 100.0% |
| `settleList.pointAmount` | `pointamount` | number | 100.0% |
| `settleList.refundAmount` | `refundamount` | number | 100.0% |
| `settleList.settleName` | `settlename` | string | 100.0% |
| `settleList.settleRelateId` | `settlerelateid` | integer | 100.0% |
| `settleList.settleStatus` | `settlestatus` | integer | 100.0% |
| `settleList.settleType` | `settletype` | integer | 100.0% |
| `settleList.payTime` | `paytime` | string | 100.0% |
| `settleList.roundingAmount` | `roundingamount` | number | 100.0% |
| `settleList.paymentMethod` | `paymentmethod` | integer | 100.0% |
| `settleList.adjustAmount` | `adjustamount` | number | 100.0% |
| `settleList.assistantCxMoney` | `assistantcxmoney` | number | 100.0% |
| `settleList.assistantPdMoney` | `assistantpdmoney` | number | 100.0% |
| `settleList.couponSaleAmount` | `couponsaleamount` | number | 100.0% |
| `settleList.plCouponSaleAmount` | `plcouponsaleamount` | number | 100.0% |
| `settleList.merVouSalesAmount` | `mervousalesamount` | number | 100.0% |
| `settleList.memberDiscountAmount` | `memberdiscountamount` | number | 100.0% |
| `settleList.tableChargeMoney` | `tablechargemoney` | number | 100.0% |
| `settleList.goodsMoney` | `goodsmoney` | number | 100.0% |
| `settleList.realGoodsMoney` | `realgoodsmoney` | number | 100.0% |
| `settleList.serviceMoney` | `servicemoney` | number | 100.0% |
| `settleList.prepayMoney` | `prepaymoney` | number | 100.0% |
| `settleList.salesManName` | `salesmanname` | string | 100.0% |
| `settleList.orderRemark` | `orderremark` | string | 100.0% |
| `settleList.salesManUserId` | `salesmanuserid` | integer | 100.0% |
| `settleList.canBeRevoked` | `canberevoked` | boolean | 100.0% |
| `settleList.pointDiscountPrice` | `pointdiscountprice` | number | 100.0% |
| `settleList.pointDiscountCost` | `pointdiscountcost` | number | 100.0% |
| `settleList.activityDiscount` | `activitydiscount` | number | 100.0% |
| `settleList.serialNumber` | `serialnumber` | integer | 100.0% |
| `settleList.assistantManualDiscount` | `assistantmanualdiscount` | number | 100.0% |
| `settleList.allCouponDiscount` | `allcoupondiscount` | number | 100.0% |
| `settleList.goodsPromotionMoney` | `goodspromotionmoney` | number | 100.0% |
| `settleList.assistantPromotionMoney` | `assistantpromotionmoney` | number | 100.0% |
| `settleList.isUseCoupon` | `isusecoupon` | boolean | 100.0% |
| `settleList.isUseDiscount` | `isusediscount` | boolean | 100.0% |
| `settleList.isActivity` | `isactivity` | boolean | 100.0% |
| `settleList.isBindMember` | `isbindmember` | boolean | 100.0% |
| `settleList.isFirst` | `isfirst` | integer | 100.0% |
| `settleList.rechargeCardAmount` | `rechargecardamount` | integer | 100.0% |
| `settleList.giftCardAmount` | `giftcardamount` | integer | 100.0% |
| `settleList.electricityMoney` | `electricitymoney` | number | 100.0% |
| `settleList.realElectricityMoney` | `realelectricitymoney` | number | 100.0% |
| `settleList.electricityAdjustMoney` | `electricityadjustmoney` | number | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_settlement_head`(直接 32 / 派生 5 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `order_settle_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenantid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `siteid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name` | VARCHAR(100) | 直接 | `sitename` | 名称字段,用于展示与辅助识别 |
| `table_id` | BIGINT | 直接 | `tableid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `settle_name` | VARCHAR(100) | 直接 | `settlename` | 名称字段,用于展示与辅助识别 |
| `order_trade_no` | BIGINT | 直接 | `settlerelateid` | 明细字段,用于记录事实取值 |
| `create_time` | TIMESTAMPTZ | 直接 | `createtime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `pay_time` | TIMESTAMPTZ | 直接 | `paytime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `settle_type` | INTEGER | 直接 | `settletype` | 明细字段,用于记录事实取值 |
| `revoke_order_id` | BIGINT | 直接 | `revokeorderid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_id` | BIGINT | 直接 | `memberid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_name` | VARCHAR(100) | 直接 | `membername` | 名称字段,用于展示与辅助识别 |
| `member_phone` | VARCHAR(50) | 直接 | `memberphone` | 明细字段,用于记录事实取值 |
| `member_card_account_id` | BIGINT | 直接 | `tenantmembercardid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_card_type_name` | VARCHAR(100) | 直接 | `membercardtypename` | 名称字段,用于展示与辅助识别 |
| `is_bind_member` | BOOLEAN | 直接 | `isbindmember` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `member_discount_amount` | NUMERIC(18,2) | 直接 | `memberdiscountamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `consume_money` | NUMERIC(18,2) | 直接 | `consumemoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `table_charge_money` | NUMERIC(18,2) | 直接 | `tablechargemoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `goods_money` | NUMERIC(18,2) | 直接 | `goodsmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `real_goods_money` | NUMERIC(18,2) | 直接 | `realgoodsmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_pd_money` | NUMERIC(18,2) | 直接 | `assistantpdmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_cx_money` | NUMERIC(18,2) | 直接 | `assistantcxmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `adjust_amount` | NUMERIC(18,2) | 直接 | `adjustamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `pay_amount` | NUMERIC(18,2) | 直接 | `payamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `balance_amount` | NUMERIC(18,2) | 直接 | `balanceamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `recharge_card_amount` | NUMERIC(18,2) | 直接 | `rechargecardamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `gift_card_amount` | NUMERIC(18,2) | 直接 | `giftcardamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_amount` | NUMERIC(18,2) | 直接 | `couponamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `rounding_amount` | NUMERIC(18,2) | 直接 | `roundingamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_amount` | NUMERIC(18,2) | 直接 | `pointamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `electricity_money` | NUMERIC(18,2) | 派生 | `—` | |
| `real_electricity_money` | NUMERIC(18,2) | 派生 | `—` | |
| `electricity_adjust_money` | NUMERIC(18,2) | 派生 | `—` | |
| `pl_coupon_sale_amount` | NUMERIC(18,2) | 派生 | `—` | |
| `mervou_sales_amount` | NUMERIC(18,2) | 派生 | `—` | |
#### ODS→DWD`dwd_settlement_head_ex`(直接 25 / 派生 5 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `order_settle_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `serial_number` | INTEGER | 直接 | `serialnumber` | 数量/时长字段,用于统计与计量 |
| `settle_status` | INTEGER | 直接 | `settlestatus` | 状态枚举字段,用于标识业务状态 |
| `can_be_revoked` | BOOLEAN | 派生 | `canberevoked派生BOOLEAN(canberevoked)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `revoke_order_name` | VARCHAR(100) | 直接 | `revokeordername` | 名称字段,用于展示与辅助识别 |
| `revoke_time` | TIMESTAMPTZ | 直接 | `revoketime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `is_first_order` | BOOLEAN | 派生 | `isfirst派生BOOLEAN(isfirst)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `service_money` | NUMERIC(18,2) | 直接 | `servicemoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `cash_amount` | NUMERIC(18,2) | 直接 | `cashamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `card_amount` | NUMERIC(18,2) | 直接 | `cardamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `online_amount` | NUMERIC(18,2) | 直接 | `onlineamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `refund_amount` | NUMERIC(18,2) | 直接 | `refundamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `prepay_money` | NUMERIC(18,2) | 直接 | `prepaymoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `payment_method` | INTEGER | 直接 | `paymentmethod` | 明细字段,用于记录事实取值 |
| `coupon_sale_amount` | NUMERIC(18,2) | 直接 | `couponsaleamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `all_coupon_discount` | NUMERIC(18,2) | 直接 | `allcoupondiscount` | 数量/时长字段,用于统计与计量 |
| `goods_promotion_money` | NUMERIC(18,2) | 直接 | `goodspromotionmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_promotion_money` | NUMERIC(18,2) | 直接 | `assistantpromotionmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `activity_discount` | NUMERIC(18,2) | 直接 | `activitydiscount` | 数量/时长字段,用于统计与计量 |
| `assistant_manual_discount` | NUMERIC(18,2) | 直接 | `assistantmanualdiscount` | 数量/时长字段,用于统计与计量 |
| `point_discount_price` | NUMERIC(18,2) | 直接 | `pointdiscountprice` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_discount_cost` | NUMERIC(18,2) | 直接 | `pointdiscountcost` | 金额字段,用于计费/结算/核算等金额计算 |
| `is_use_coupon` | BOOLEAN | 派生 | `isusecoupon派生BOOLEAN(isusecoupon)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_use_discount` | BOOLEAN | 派生 | `isusediscount派生BOOLEAN(isusediscount)` | 数量/时长字段,用于统计与计量 |
| `is_activity` | BOOLEAN | 派生 | `isactivity派生BOOLEAN(isactivity)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `operator_name` | VARCHAR(100) | 直接 | `operatorname` | 名称字段,用于展示与辅助识别 |
| `salesman_name` | VARCHAR(100) | 直接 | `salesmanname` | 名称字段,用于展示与辅助识别 |
| `order_remark` | VARCHAR(255) | 直接 | `orderremark` | 明细字段,用于记录事实取值 |
| `operator_id` | BIGINT | 直接 | `operatorid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_user_id` | BIGINT | 直接 | `salesmanuserid` | 标识类 ID 字段,用于关联/定位相关实体 |
---
### 3.3 table_fee_transactions台费计费流水
- 任务代码:`ODS_TABLE_USE`
- 采样记录数200
- ODS 列数47
- DWD 目标表dim_site, dim_site_ex, dwd_table_fee_log, dwd_table_fee_log_ex
#### JSON→ODS 映射(已映射 43/67覆盖率 64.2%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `add_clock_seconds` | `add_clock_seconds` | integer | 100.0% |
| `activity_discount_amount` | `activity_discount_amount` | number | 100.0% |
| `adjust_amount` | `adjust_amount` | number | 100.0% |
| `coupon_promotion_amount` | `coupon_promotion_amount` | number | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `fee_total` | `fee_total` | number | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_single_order` | `is_single_order` | integer | 100.0% |
| `last_use_time` | `last_use_time` | string | 100.0% |
| `ledger_amount` | `ledger_amount` | number | 100.0% |
| `ledger_count` | `ledger_count` | integer | 100.0% |
| `ledger_end_time` | `ledger_end_time` | string | 100.0% |
| `ledger_name` | `ledger_name` | string | 100.0% |
| `ledger_start_time` | `ledger_start_time` | string | 100.0% |
| `ledger_status` | `ledger_status` | integer | 100.0% |
| `ledger_unit_price` | `ledger_unit_price` | number | 100.0% |
| `member_discount_amount` | `member_discount_amount` | number | 100.0% |
| `member_id` | `member_id` | integer | 100.0% |
| `mgmt_fee` | `mgmt_fee` | number | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `order_consumption_type` | `order_consumption_type` | integer | 100.0% |
| `order_pay_id` | `order_pay_id` | integer | 100.0% |
| `order_settle_id` | `order_settle_id` | integer | 100.0% |
| `order_trade_no` | `order_trade_no` | integer | 100.0% |
| `real_table_charge_money` | `real_table_charge_money` | number | 100.0% |
| `real_table_use_seconds` | `real_table_use_seconds` | integer | 100.0% |
| `real_service_money` | `real_service_money` | number | 100.0% |
| `salesman_name` | `salesman_name` | string | 100.0% |
| `salesman_org_id` | `salesman_org_id` | integer | 100.0% |
| `salesman_user_id` | `salesman_user_id` | integer | 100.0% |
| `service_money` | `service_money` | number | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `site_table_area_id` | `site_table_area_id` | integer | 100.0% |
| `site_table_area_name` | `site_table_area_name` | string | 100.0% |
| `site_table_id` | `site_table_id` | integer | 100.0% |
| `start_use_time` | `start_use_time` | string | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `tenant_table_area_id` | `tenant_table_area_id` | integer | 100.0% |
| `used_card_amount` | `used_card_amount` | number | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dim_site`(直接 1 / 派生 12 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `org_id` | BIGINT | 派生 | `siteProfile.org_id` | 组织/机构 ID用于组织维度归属 |
| `tenant_id` | BIGINT | 派生 | `siteProfile.tenant_id` | 租户/品牌 ID用于商户维度过滤与关联 |
| `shop_name` | TEXT | 派生 | `siteProfile.shop_name` | 门店名称,用于展示与查询 |
| `site_label` | TEXT | 派生 | `siteProfile.site_label` | 门店标签(如 A/B 店),用于展示与分组 |
| `full_address` | TEXT | 派生 | `siteProfile.full_address` | 门店详细地址,用于展示与地理信息 |
| `address` | TEXT | 派生 | `siteProfile.address` | 门店地址简称/快照,用于展示 |
| `longitude` | NUMERIC(10,6) | 派生 | `siteProfile.longitude` | 经度,用于定位与地图展示 |
| `latitude` | NUMERIC(10,6) | 派生 | `siteProfile.latitude` | 纬度,用于定位与地图展示 |
| `tenant_site_region_id` | BIGINT | 派生 | `siteProfile.tenant_site_region_id` | 租户下门店区域 ID用于区域维度分析 |
| `business_tel` | TEXT | 派生 | `siteProfile.business_tel` | 门店电话,用于联系信息展示 |
| `site_type` | INTEGER | 派生 | `siteProfile.site_type` | 门店类型枚举,用于门店分类 |
| `shop_status` | INTEGER | 派生 | `siteProfile.shop_status` | 门店状态枚举,用于营业状态标识 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_site_ex`(直接 1 / 派生 20 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `avatar` | TEXT | 派生 | `siteProfile.avatar` | 门店头像/图片 URL用于展示 |
| `address` | TEXT | 派生 | `siteProfile.address` | 门店地址简称/快照,用于展示 |
| `longitude` | NUMERIC(9,6) | 派生 | `siteProfile.longitude` | 经度,用于定位与地图展示 |
| `latitude` | NUMERIC(9,6) | 派生 | `siteProfile.latitude` | 纬度,用于定位与地图展示 |
| `tenant_site_region_id` | BIGINT | 派生 | `siteProfile.tenant_site_region_id` | 租户下门店区域 ID用于区域维度分析 |
| `auto_light` | INTEGER | 派生 | `siteProfile.auto_light` | 是否启用自动灯控配置,用于门店设备策略 |
| `light_status` | INTEGER | 派生 | `siteProfile.light_status` | 灯控状态/开关,用于灯控设备管理 |
| `light_type` | INTEGER | 派生 | `siteProfile.light_type` | 灯控类型,用于设备类型区分 |
| `light_token` | TEXT | 派生 | `siteProfile.light_token` | 灯控控制令牌,用于对接灯控服务 |
| `site_type` | INTEGER | 派生 | `siteProfile.site_type` | 门店类型枚举,用于门店分类 |
| `site_label` | TEXT | 派生 | `siteProfile.site_label` | 门店标签(如 A/B 店),用于展示与分组 |
| `attendance_enabled` | INTEGER | 派生 | `siteProfile.attendance_enabled` | 是否启用考勤功能,用于门店考勤配置 |
| `attendance_distance` | INTEGER | 派生 | `siteProfile.attendance_distance` | 考勤允许距离(米),用于考勤打卡限制 |
| `customer_service_qrcode` | TEXT | 派生 | `siteProfile.customer_service_qrcode` | 客服二维码 URL用于引导联系 |
| `customer_service_wechat` | TEXT | 派生 | `siteProfile.customer_service_wechat` | 客服微信号,用于引导联系 |
| `fixed_pay_qrcode` | TEXT | 派生 | `siteProfile.fixed_pay_qrCode` | 固定收款码二维码URL用于收款引导 |
| `prod_env` | TEXT | 派生 | `siteProfile.prod_env` | 环境标识(生产/测试),用于区分配置环境 |
| `shop_status` | INTEGER | 派生 | `siteProfile.shop_status` | 门店状态枚举,用于营业状态标识 |
| `create_time` | TIMESTAMPTZ | 派生 | `siteProfile.create_time` | 门店创建时间(快照字段) |
| `update_time` | TIMESTAMPTZ | 派生 | `siteProfile.update_time` | 门店更新时间(快照字段) |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dwd_table_fee_log`(直接 29 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `table_fee_log_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_trade_no` | BIGINT | 直接 | `order_trade_no` | 明细字段,用于记录事实取值 |
| `order_settle_id` | BIGINT | 直接 | `order_settle_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_pay_id` | BIGINT | 直接 | `order_pay_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_table_id` | BIGINT | 直接 | `site_table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_table_area_id` | BIGINT | 直接 | `site_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_table_area_name` | VARCHAR(64) | 直接 | `site_table_area_name` | 名称字段,用于展示与辅助识别 |
| `tenant_table_area_id` | BIGINT | 直接 | `tenant_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_id` | BIGINT | 直接 | `member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `ledger_name` | VARCHAR(64) | 直接 | `ledger_name` | 名称字段,用于展示与辅助识别 |
| `ledger_unit_price` | NUMERIC(18,2) | 直接 | `ledger_unit_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_count` | INTEGER | 直接 | `ledger_count` | 数量/时长字段,用于统计与计量 |
| `ledger_amount` | NUMERIC(18,2) | 直接 | `ledger_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `real_table_charge_money` | NUMERIC(18,2) | 直接 | `real_table_charge_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_promotion_amount` | NUMERIC(18,2) | 直接 | `coupon_promotion_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `member_discount_amount` | NUMERIC(18,2) | 直接 | `member_discount_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `adjust_amount` | NUMERIC(18,2) | 直接 | `adjust_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `real_table_use_seconds` | INTEGER | 直接 | `real_table_use_seconds` | 数量/时长字段,用于统计与计量 |
| `add_clock_seconds` | INTEGER | 直接 | `add_clock_seconds` | 数量/时长字段,用于统计与计量 |
| `start_use_time` | TIMESTAMPTZ | 直接 | `start_use_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `ledger_end_time` | TIMESTAMPTZ | 直接 | `ledger_end_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `ledger_status` | INTEGER | 直接 | `ledger_status` | 状态枚举字段,用于标识业务状态 |
| `is_single_order` | INTEGER | 直接 | `is_single_order` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `activity_discount_amount` | NUMERIC(18,2) | 直接 | `activity_discount_amount` | |
| `real_service_money` | NUMERIC(18,2) | 直接 | `real_service_money` | |
#### ODS→DWD`dwd_table_fee_log_ex`(直接 13 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `table_fee_log_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `operator_name` | VARCHAR(64) | 直接 | `operator_name` | 名称字段,用于展示与辅助识别 |
| `salesman_name` | VARCHAR(64) | 直接 | `salesman_name` | 名称字段,用于展示与辅助识别 |
| `used_card_amount` | NUMERIC(18,2) | 直接 | `used_card_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `service_money` | NUMERIC(18,2) | 直接 | `service_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `mgmt_fee` | NUMERIC(18,2) | 直接 | `mgmt_fee` | 金额字段,用于计费/结算/核算等金额计算 |
| `fee_total` | NUMERIC(18,2) | 直接 | `fee_total` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_start_time` | TIMESTAMPTZ | 直接 | `ledger_start_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `last_use_time` | TIMESTAMPTZ | 直接 | `last_use_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `operator_id` | BIGINT | 直接 | `operator_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_user_id` | BIGINT | 直接 | `salesman_user_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_org_id` | BIGINT | 直接 | `salesman_org_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_consumption_type` | INTEGER | 直接 | `order_consumption_type` | |
---
### 3.4 assistant_service_records助教服务流水
- 任务代码:`ODS_ASSISTANT_LEDGER`
- 采样记录数200
- ODS 列数71
- DWD 目标表dwd_assistant_service_log, dwd_assistant_service_log_ex
#### JSON→ODS 映射(已映射 67/91覆盖率 73.6%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `assistantNo` | `assistantno` | string | 100.0% |
| `nickname` | `nickname` | string | 100.0% |
| `levelName` | `levelname` | string | 100.0% |
| `assistantTeamName` | `assistantteamname` | string | 100.0% |
| `assistantName` | `assistantname` | string | 100.0% |
| `tableName` | `tablename` | string | 100.0% |
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `skillName` | `skillname` | string | 100.0% |
| `id` | `id` | integer | 100.0% |
| `order_trade_no` | `order_trade_no` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `order_settle_id` | `order_settle_id` | integer | 100.0% |
| `ledger_name` | `ledger_name` | string | 100.0% |
| `ledger_group_name` | `ledger_group_name` | string | 100.0% |
| `ledger_unit_price` | `ledger_unit_price` | number | 100.0% |
| `ledger_count` | `ledger_count` | integer | 100.0% |
| `ledger_amount` | `ledger_amount` | number | 100.0% |
| `order_pay_id` | `order_pay_id` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `assistant_team_id` | `assistant_team_id` | integer | 100.0% |
| `assistant_level` | `assistant_level` | integer | 100.0% |
| `ledger_start_time` | `ledger_start_time` | string | 100.0% |
| `ledger_end_time` | `ledger_end_time` | string | 100.0% |
| `is_single_order` | `is_single_order` | integer | 100.0% |
| `order_assistant_id` | `order_assistant_id` | integer | 100.0% |
| `site_assistant_id` | `site_assistant_id` | integer | 100.0% |
| `order_assistant_type` | `order_assistant_type` | integer | 100.0% |
| `ledger_status` | `ledger_status` | integer | 100.0% |
| `site_table_id` | `site_table_id` | integer | 100.0% |
| `projected_income` | `projected_income` | number | 100.0% |
| `is_not_responding` | `is_not_responding` | integer | 100.0% |
| `income_seconds` | `income_seconds` | integer | 100.0% |
| `user_id` | `user_id` | integer | 100.0% |
| `trash_applicant_id` | `trash_applicant_id` | integer | 100.0% |
| `trash_applicant_name` | `trash_applicant_name` | string | 100.0% |
| `is_trash` | `is_trash` | integer | 100.0% |
| `trash_reason` | `trash_reason` | string | 100.0% |
| `real_use_seconds` | `real_use_seconds` | integer | 100.0% |
| `real_service_money` | `real_service_money` | number | 100.0% |
| `add_clock` | `add_clock` | integer | 100.0% |
| `returns_clock` | `returns_clock` | integer | 100.0% |
| `is_confirm` | `is_confirm` | integer | 100.0% |
| `member_discount_amount` | `member_discount_amount` | number | 100.0% |
| `manual_discount_amount` | `manual_discount_amount` | number | 100.0% |
| `service_money` | `service_money` | number | 100.0% |
| `person_org_id` | `person_org_id` | integer | 100.0% |
| `last_use_time` | `last_use_time` | string | 100.0% |
| `salesman_name` | `salesman_name` | string | 100.0% |
| `salesman_user_id` | `salesman_user_id` | integer | 100.0% |
| `salesman_org_id` | `salesman_org_id` | integer | 100.0% |
| `coupon_deduct_money` | `coupon_deduct_money` | number | 100.0% |
| `skill_id` | `skill_id` | integer | 100.0% |
| `start_use_time` | `start_use_time` | string | 100.0% |
| `tenant_member_id` | `tenant_member_id` | integer | 100.0% |
| `system_member_id` | `system_member_id` | integer | 100.0% |
| `skill_grade` | `skill_grade` | integer | 100.0% |
| `service_grade` | `service_grade` | integer | 100.0% |
| `composite_grade` | `composite_grade` | number | 100.0% |
| `sum_grade` | `sum_grade` | number | 100.0% |
| `get_grade_times` | `get_grade_times` | integer | 100.0% |
| `grade_status` | `grade_status` | integer | 100.0% |
| `composite_grade_time` | `composite_grade_time` | string | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_assistant_service_log`(直接 33 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `assistant_service_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_trade_no` | BIGINT | 直接 | `order_trade_no` | 明细字段,用于记录事实取值 |
| `order_settle_id` | BIGINT | 直接 | `order_settle_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_pay_id` | BIGINT | 直接 | `order_pay_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_assistant_id` | BIGINT | 直接 | `order_assistant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_assistant_type` | INTEGER | 直接 | `order_assistant_type` | 明细字段,用于记录事实取值 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_table_id` | BIGINT | 直接 | `site_table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_member_id` | BIGINT | 直接 | `tenant_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `system_member_id` | BIGINT | 直接 | `system_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `assistant_no` | VARCHAR(64) | 直接 | `assistantno` | 明细字段,用于记录事实取值 |
| `nickname` | VARCHAR(64) | 直接 | `nickname` | 名称字段,用于展示与辅助识别 |
| `site_assistant_id` | BIGINT | 直接 | `order_assistant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `user_id` | BIGINT | 直接 | `user_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `assistant_team_id` | BIGINT | 直接 | `assistant_team_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `person_org_id` | BIGINT | 直接 | `person_org_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `assistant_level` | INTEGER | 直接 | `assistant_level` | 明细字段,用于记录事实取值 |
| `level_name` | VARCHAR(64) | 直接 | `levelname` | 名称字段,用于展示与辅助识别 |
| `skill_id` | BIGINT | 直接 | `skill_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `skill_name` | VARCHAR(64) | 直接 | `skillname` | 名称字段,用于展示与辅助识别 |
| `ledger_unit_price` | NUMERIC(10,2) | 直接 | `ledger_unit_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_amount` | NUMERIC(10,2) | 直接 | `ledger_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `projected_income` | NUMERIC(10,2) | 直接 | `projected_income` | 明细字段,用于记录事实取值 |
| `coupon_deduct_money` | NUMERIC(10,2) | 直接 | `coupon_deduct_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `income_seconds` | INTEGER | 直接 | `income_seconds` | 数量/时长字段,用于统计与计量 |
| `real_use_seconds` | INTEGER | 直接 | `real_use_seconds` | 数量/时长字段,用于统计与计量 |
| `add_clock` | INTEGER | 直接 | `add_clock` | 明细字段,用于记录事实取值 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `start_use_time` | TIMESTAMPTZ | 直接 | `start_use_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `last_use_time` | TIMESTAMPTZ | 直接 | `last_use_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `real_service_money` | NUMERIC(18,2) | 直接 | `real_service_money` | |
#### ODS→DWD`dwd_assistant_service_log_ex`(直接 30 / 派生 1 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `assistant_service_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_name` | VARCHAR(64) | 直接 | `tablename` | 名称字段,用于展示与辅助识别 |
| `assistant_name` | VARCHAR(64) | 直接 | `assistantname` | 名称字段,用于展示与辅助识别 |
| `ledger_name` | VARCHAR(128) | 直接 | `ledger_name` | 名称字段,用于展示与辅助识别 |
| `ledger_group_name` | VARCHAR(128) | 直接 | `ledger_group_name` | 名称字段,用于展示与辅助识别 |
| `ledger_count` | INTEGER | 直接 | `ledger_count` | 数量/时长字段,用于统计与计量 |
| `member_discount_amount` | NUMERIC(10,2) | 直接 | `member_discount_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `manual_discount_amount` | NUMERIC(10,2) | 直接 | `manual_discount_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `service_money` | NUMERIC(10,2) | 直接 | `service_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `returns_clock` | INTEGER | 直接 | `returns_clock` | 明细字段,用于记录事实取值 |
| `ledger_start_time` | TIMESTAMPTZ | 直接 | `ledger_start_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `ledger_end_time` | TIMESTAMPTZ | 直接 | `ledger_end_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `ledger_status` | INTEGER | 直接 | `ledger_status` | 状态枚举字段,用于标识业务状态 |
| `is_confirm` | INTEGER | 直接 | `is_confirm` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_single_order` | INTEGER | 直接 | `is_single_order` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_not_responding` | INTEGER | 直接 | `is_not_responding` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_trash` | INTEGER | 直接 | `is_trash` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `trash_applicant_id` | BIGINT | 直接 | `trash_applicant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `trash_applicant_name` | VARCHAR(64) | 直接 | `trash_applicant_name` | 名称字段,用于展示与辅助识别 |
| `trash_reason` | VARCHAR(255) | 直接 | `trash_reason` | 明细字段,用于记录事实取值 |
| `salesman_user_id` | BIGINT | 直接 | `salesman_user_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_name` | VARCHAR(64) | 直接 | `salesman_name` | 名称字段,用于展示与辅助识别 |
| `salesman_org_id` | BIGINT | 直接 | `salesman_org_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `skill_grade` | INTEGER | 直接 | `skill_grade` | 明细字段,用于记录事实取值 |
| `service_grade` | INTEGER | 直接 | `service_grade` | 明细字段,用于记录事实取值 |
| `composite_grade` | NUMERIC(5,2) | 直接 | `composite_grade` | 明细字段,用于记录事实取值 |
| `sum_grade` | NUMERIC(10,2) | 直接 | `sum_grade` | 明细字段,用于记录事实取值 |
| `get_grade_times` | INTEGER | 直接 | `get_grade_times` | 明细字段,用于记录事实取值 |
| `grade_status` | INTEGER | 直接 | `grade_status` | 状态枚举字段,用于标识业务状态 |
| `composite_grade_time` | TIMESTAMPTZ | 直接 | `composite_grade_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `assistant_team_name` | TEXT | 派生 | `—` | |
---
### 3.5 assistant_cancellation_records助教废除记录
- 任务代码:`ODS_ASSISTANT_ABOLISH`
- 采样记录数79
- ODS 列数19
- DWD 目标表dwd_assistant_trash_event, dwd_assistant_trash_event_ex
#### JSON→ODS 映射(已映射 14/38覆盖率 36.8%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `createTime` | `createtime` | string | 100.0% |
| `id` | `id` | integer | 100.0% |
| `siteId` | `siteid` | integer | 100.0% |
| `tableAreaId` | `tableareaid` | integer | 100.0% |
| `tableId` | `tableid` | integer | 100.0% |
| `tableArea` | `tablearea` | string | 100.0% |
| `tableName` | `tablename` | string | 100.0% |
| `assistantOn` | `assistanton` | string | 100.0% |
| `assistantName` | `assistantname` | string | 100.0% |
| `pdChargeMinutes` | `pdchargeminutes` | integer | 100.0% |
| `assistantAbolishAmount` | `assistantabolishamount` | number | 100.0% |
| `trashReason` | `trashreason` | string | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_assistant_trash_event`(直接 11 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `assistant_trash_event_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `siteid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_id` | BIGINT | 直接 | `tableid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_area_id` | BIGINT | 直接 | `tableareaid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `assistant_no` | VARCHAR(32) | 直接 | `assistantname` | 明细字段,用于记录事实取值 |
| `assistant_name` | VARCHAR(64) | 直接 | `assistantname` | 名称字段,用于展示与辅助识别 |
| `charge_minutes_raw` | INTEGER | 直接 | `pdchargeminutes` | 明细字段,用于记录事实取值 |
| `abolish_amount` | NUMERIC(18,2) | 直接 | `assistantabolishamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `trash_reason` | VARCHAR(255) | 直接 | `trashreason` | 明细字段,用于记录事实取值 |
| `create_time` | TIMESTAMPTZ | 直接 | `createtime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | |
#### ODS→DWD`dwd_assistant_trash_event_ex`(直接 3 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `assistant_trash_event_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_name` | VARCHAR(64) | 直接 | `tablename` | 名称字段,用于展示与辅助识别 |
| `table_area_name` | VARCHAR(64) | 直接 | `tablearea` | 名称字段,用于展示与辅助识别 |
---
### 3.6 store_goods_sales_records门店商品销售流水
- 任务代码:`ODS_STORE_GOODS_SALES`
- 采样记录数200
- ODS 列数56
- DWD 目标表dwd_store_goods_sale, dwd_store_goods_sale_ex
#### JSON→ODS 映射(已映射 51/51覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteId` | `siteid` | integer | 100.0% |
| `siteName` | `sitename` | string | 100.0% |
| `orderGoodsId` | `ordergoodsid` | integer | 100.0% |
| `openSalesman` | `opensalesman` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `cost_money` | `cost_money` | number | 100.0% |
| `coupon_deduct_money` | `coupon_deduct_money` | number | 100.0% |
| `coupon_share_money` | `coupon_share_money` | number | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `discount_money` | `discount_money` | number | 100.0% |
| `discount_price` | `discount_price` | number | 100.0% |
| `goods_remark` | `goods_remark` | string | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_single_order` | `is_single_order` | integer | 100.0% |
| `ledger_amount` | `ledger_amount` | number | 100.0% |
| `ledger_count` | `ledger_count` | integer | 100.0% |
| `ledger_group_name` | `ledger_group_name` | string | 100.0% |
| `ledger_name` | `ledger_name` | string | 100.0% |
| `ledger_status` | `ledger_status` | integer | 100.0% |
| `ledger_unit_price` | `ledger_unit_price` | number | 100.0% |
| `member_coupon_id` | `member_coupon_id` | integer | 100.0% |
| `member_discount_amount` | `member_discount_amount` | number | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `option_coupon_deduct_money` | `option_coupon_deduct_money` | number | 100.0% |
| `option_member_discount_money` | `option_member_discount_money` | number | 100.0% |
| `option_price` | `option_price` | number | 100.0% |
| `option_value_name` | `option_value_name` | string | 100.0% |
| `order_coupon_id` | `order_coupon_id` | integer | 100.0% |
| `order_goods_id` | `order_goods_id` | integer | 100.0% |
| `order_pay_id` | `order_pay_id` | integer | 100.0% |
| `order_settle_id` | `order_settle_id` | integer | 100.0% |
| `order_trade_no` | `order_trade_no` | integer | 100.0% |
| `package_coupon_id` | `package_coupon_id` | integer | 100.0% |
| `point_discount_money` | `point_discount_money` | number | 100.0% |
| `point_discount_money_cost` | `point_discount_money_cost` | number | 100.0% |
| `push_money` | `push_money` | number | 100.0% |
| `real_goods_money` | `real_goods_money` | number | 100.0% |
| `returns_number` | `returns_number` | integer | 100.0% |
| `sales_man_org_id` | `sales_man_org_id` | integer | 100.0% |
| `sales_type` | `sales_type` | integer | 100.0% |
| `salesman_name` | `salesman_name` | string | 100.0% |
| `salesman_role_id` | `salesman_role_id` | integer | 100.0% |
| `salesman_user_id` | `salesman_user_id` | integer | 100.0% |
| `site_goods_id` | `site_goods_id` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `site_table_id` | `site_table_id` | integer | 100.0% |
| `tenant_goods_business_id` | `tenant_goods_business_id` | integer | 100.0% |
| `tenant_goods_category_id` | `tenant_goods_category_id` | integer | 100.0% |
| `tenant_goods_id` | `tenant_goods_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
#### ODS→DWD`dwd_store_goods_sale`(直接 24 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `store_goods_sale_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_trade_no` | BIGINT | 直接 | `order_trade_no` | 明细字段,用于记录事实取值 |
| `order_settle_id` | BIGINT | 直接 | `order_settle_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_pay_id` | BIGINT | 直接 | `order_pay_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_goods_id` | BIGINT | 直接 | `order_goods_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_goods_id` | BIGINT | 直接 | `site_goods_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_goods_id` | BIGINT | 直接 | `tenant_goods_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_goods_category_id` | BIGINT | 直接 | `tenant_goods_category_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_goods_business_id` | BIGINT | 直接 | `tenant_goods_business_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_table_id` | BIGINT | 直接 | `site_table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `ledger_name` | VARCHAR(200) | 直接 | `ledger_name` | 名称字段,用于展示与辅助识别 |
| `ledger_group_name` | VARCHAR(100) | 直接 | `ledger_group_name` | 名称字段,用于展示与辅助识别 |
| `ledger_unit_price` | NUMERIC(18,2) | 直接 | `ledger_unit_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_count` | INTEGER | 直接 | `ledger_count` | 数量/时长字段,用于统计与计量 |
| `ledger_amount` | NUMERIC(18,2) | 直接 | `ledger_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `discount_price` | NUMERIC(18,2) | 直接 | `discount_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `real_goods_money` | NUMERIC(18,2) | 直接 | `real_goods_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `cost_money` | NUMERIC(18,2) | 直接 | `cost_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_status` | INTEGER | 直接 | `ledger_status` | 状态枚举字段,用于标识业务状态 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `coupon_share_money` | NUMERIC(18,2) | 直接 | `coupon_share_money` | |
#### ODS→DWD`dwd_store_goods_sale_ex`(直接 28 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `store_goods_sale_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `legacy_order_goods_id` | BIGINT | 直接 | `order_goods_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name` | TEXT | 直接 | `sitename` | 名称字段,用于展示与辅助识别 |
| `legacy_site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `goods_remark` | TEXT | 直接 | `goods_remark` | 明细字段,用于记录事实取值 |
| `option_value_name` | TEXT | 直接 | `option_value_name` | 名称字段,用于展示与辅助识别 |
| `operator_name` | TEXT | 直接 | `operator_name` | 名称字段,用于展示与辅助识别 |
| `open_salesman_flag` | INTEGER | 直接 | `opensalesman` | 明细字段,用于记录事实取值 |
| `salesman_user_id` | BIGINT | 直接 | `salesman_user_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_name` | TEXT | 直接 | `salesman_name` | 名称字段,用于展示与辅助识别 |
| `salesman_role_id` | BIGINT | 直接 | `salesman_role_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_org_id` | BIGINT | 直接 | `sales_man_org_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `discount_money` | NUMERIC(18,2) | 直接 | `discount_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `returns_number` | INTEGER | 直接 | `returns_number` | 数量/时长字段,用于统计与计量 |
| `coupon_deduct_money` | NUMERIC(18,2) | 直接 | `coupon_deduct_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `member_discount_amount` | NUMERIC(18,2) | 直接 | `member_discount_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_discount_money` | NUMERIC(18,2) | 直接 | `point_discount_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_discount_money_cost` | NUMERIC(18,2) | 直接 | `point_discount_money_cost` | 金额字段,用于计费/结算/核算等金额计算 |
| `package_coupon_id` | BIGINT | 直接 | `package_coupon_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_coupon_id` | BIGINT | 直接 | `order_coupon_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_coupon_id` | BIGINT | 直接 | `member_coupon_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `option_price` | NUMERIC(18,2) | 直接 | `option_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `option_member_discount_money` | NUMERIC(18,2) | 直接 | `option_member_discount_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `option_coupon_deduct_money` | NUMERIC(18,2) | 直接 | `option_coupon_deduct_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `push_money` | NUMERIC(18,2) | 直接 | `push_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `is_single_order` | INTEGER | 直接 | `is_single_order` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `sales_type` | INTEGER | 直接 | `sales_type` | 明细字段,用于记录事实取值 |
| `operator_id` | BIGINT | 直接 | `operator_id` | 标识类 ID 字段,用于关联/定位相关实体 |
---
### 3.7 payment_transactions支付流水
- 任务代码:`ODS_PAYMENT`
- 采样记录数200
- ODS 列数17
- DWD 目标表dwd_payment
#### JSON→ODS 映射(已映射 12/36覆盖率 33.3%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `pay_amount` | `pay_amount` | number | 100.0% |
| `pay_status` | `pay_status` | integer | 100.0% |
| `pay_time` | `pay_time` | string | 100.0% |
| `online_pay_channel` | `online_pay_channel` | integer | 100.0% |
| `relate_type` | `relate_type` | integer | 100.0% |
| `relate_id` | `relate_id` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `payment_method` | `payment_method` | integer | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_payment`(直接 11 / 派生 1 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `payment_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `relate_type` | INTEGER | 直接 | `relate_type` | 明细字段,用于记录事实取值 |
| `relate_id` | BIGINT | 直接 | `relate_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `pay_amount` | NUMERIC(18,2) | 直接 | `pay_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `pay_status` | INTEGER | 直接 | `pay_status` | 状态枚举字段,用于标识业务状态 |
| `payment_method` | INTEGER | 直接 | `payment_method` | 明细字段,用于记录事实取值 |
| `online_pay_channel` | INTEGER | 直接 | `online_pay_channel` | 明细字段,用于记录事实取值 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `pay_time` | TIMESTAMPTZ | 直接 | `pay_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `pay_date` | DATE | 派生 | `pay_time派生DATE(pay_time)` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | |
---
### 3.8 refund_transactions退款流水
- 任务代码:`ODS_REFUND`
- 采样记录数36
- ODS 列数37
- DWD 目标表dwd_refund
#### JSON→ODS 映射(已映射 33/57覆盖率 57.9%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `tenantName` | `tenantname` | string | 100.0% |
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `pay_sn` | `pay_sn` | integer | 100.0% |
| `pay_amount` | `pay_amount` | number | 100.0% |
| `pay_status` | `pay_status` | integer | 100.0% |
| `pay_time` | `pay_time` | string | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `relate_type` | `relate_type` | integer | 100.0% |
| `relate_id` | `relate_id` | integer | 100.0% |
| `is_revoke` | `is_revoke` | integer | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `online_pay_channel` | `online_pay_channel` | integer | 100.0% |
| `payment_method` | `payment_method` | integer | 100.0% |
| `balance_frozen_amount` | `balance_frozen_amount` | number | 100.0% |
| `card_frozen_amount` | `card_frozen_amount` | number | 100.0% |
| `member_id` | `member_id` | integer | 100.0% |
| `member_card_id` | `member_card_id` | integer | 100.0% |
| `round_amount` | `round_amount` | number | 100.0% |
| `online_pay_type` | `online_pay_type` | integer | 100.0% |
| `action_type` | `action_type` | integer | 100.0% |
| `refund_amount` | `refund_amount` | number | 100.0% |
| `cashier_point_id` | `cashier_point_id` | integer | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `pay_terminal` | `pay_terminal` | integer | 100.0% |
| `pay_config_id` | `pay_config_id` | integer | 100.0% |
| `channel_payer_id` | `channel_payer_id` | string | 100.0% |
| `channel_pay_no` | `channel_pay_no` | string | 100.0% |
| `check_status` | `check_status` | integer | 100.0% |
| `channel_fee` | `channel_fee` | number | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_refund`(直接 12 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `refund_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `relate_type` | INTEGER | 直接 | `relate_type` | 明细字段,用于记录事实取值 |
| `relate_id` | BIGINT | 直接 | `relate_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `pay_amount` | NUMERIC(18,2) | 直接 | `pay_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `channel_fee` | NUMERIC(18,2) | 直接 | `channel_fee` | 金额字段,用于计费/结算/核算等金额计算 |
| `pay_time` | TIMESTAMPTZ | 直接 | `pay_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `payment_method` | INTEGER | 直接 | `payment_method` | 明细字段,用于记录事实取值 |
| `member_id` | BIGINT | 直接 | `member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_card_id` | BIGINT | 直接 | `member_card_id` | 标识类 ID 字段,用于关联/定位相关实体 |
---
### 3.9 platform_coupon_redemption_records平台/团购券核销)
- 任务代码:`ODS_PLATFORM_COUPON`
- 采样记录数200
- ODS 列数31
- DWD 目标表dwd_platform_coupon_redemption, dwd_platform_coupon_redemption_ex
#### JSON→ODS 映射(已映射 27/51覆盖率 52.9%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `sale_price` | `sale_price` | number | 100.0% |
| `coupon_code` | `coupon_code` | string | 100.0% |
| `coupon_channel` | `coupon_channel` | integer | 100.0% |
| `site_order_id` | `site_order_id` | integer | 100.0% |
| `coupon_free_time` | `coupon_free_time` | integer | 100.0% |
| `use_status` | `use_status` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `coupon_name` | `coupon_name` | string | 100.0% |
| `coupon_cover` | `coupon_cover` | string | 100.0% |
| `coupon_remark` | `coupon_remark` | string | 100.0% |
| `channel_deal_id` | `channel_deal_id` | integer | 100.0% |
| `group_package_id` | `group_package_id` | integer | 100.0% |
| `consume_time` | `consume_time` | string | 100.0% |
| `groupon_type` | `groupon_type` | integer | 100.0% |
| `coupon_money` | `coupon_money` | number | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `table_id` | `table_id` | integer | 100.0% |
| `certificate_id` | `certificate_id` | string | 100.0% |
| `verify_id` | `verify_id` | string | 100.0% |
| `deal_id` | `deal_id` | integer | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_platform_coupon_redemption`(直接 20 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `platform_coupon_redemption_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `coupon_code` | VARCHAR(64) | 直接 | `coupon_code` | 明细字段,用于记录事实取值 |
| `coupon_channel` | INTEGER | 直接 | `coupon_channel` | 明细字段,用于记录事实取值 |
| `coupon_name` | VARCHAR(200) | 直接 | `coupon_name` | 名称字段,用于展示与辅助识别 |
| `sale_price` | NUMERIC(10,2) | 直接 | `sale_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_money` | NUMERIC(10,2) | 直接 | `coupon_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_free_time` | INTEGER | 直接 | `coupon_free_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `channel_deal_id` | BIGINT | 直接 | `channel_deal_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `deal_id` | BIGINT | 直接 | `deal_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `group_package_id` | BIGINT | 直接 | `group_package_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_order_id` | BIGINT | 直接 | `site_order_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_id` | BIGINT | 直接 | `table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `certificate_id` | VARCHAR(64) | 直接 | `certificate_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `verify_id` | VARCHAR(64) | 直接 | `verify_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `use_status` | INTEGER | 直接 | `use_status` | 状态枚举字段,用于标识业务状态 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `consume_time` | TIMESTAMPTZ | 直接 | `consume_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
#### ODS→DWD`dwd_platform_coupon_redemption_ex`(直接 6 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `platform_coupon_redemption_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `coupon_cover` | VARCHAR(255) | 直接 | `coupon_cover` | 明细字段,用于记录事实取值 |
| `coupon_remark` | VARCHAR(255) | 直接 | `coupon_remark` | 明细字段,用于记录事实取值 |
| `groupon_type` | INTEGER | 直接 | `groupon_type` | 明细字段,用于记录事实取值 |
| `operator_id` | BIGINT | 直接 | `operator_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `operator_name` | VARCHAR(50) | 直接 | `operator_name` | 名称字段,用于展示与辅助识别 |
---
### 3.10 member_profiles会员档案
- 任务代码:`ODS_MEMBER`
- 采样记录数200
- ODS 列数25
- DWD 目标表dim_member, dim_member_ex
#### JSON→ODS 映射(已映射 20/20覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `id` | `id` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `member_card_grade_code` | `member_card_grade_code` | integer | 100.0% |
| `mobile` | `mobile` | string | 100.0% |
| `nickname` | `nickname` | string | 100.0% |
| `register_site_id` | `register_site_id` | integer | 100.0% |
| `site_name` | `site_name` | string | 100.0% |
| `member_card_grade_name` | `member_card_grade_name` | string | 100.0% |
| `system_member_id` | `system_member_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `referrer_member_id` | `referrer_member_id` | integer | 100.0% |
| `point` | `point` | number | 100.0% |
| `user_status` | `user_status` | integer | 100.0% |
| `status` | `status` | integer | 100.0% |
| `growth_value` | `growth_value` | number | 100.0% |
| `person_tenant_org_id` | `person_tenant_org_id` | integer | 100.0% |
| `person_tenant_org_name` | `person_tenant_org_name` | string | 100.0% |
| `register_source` | `register_source` | integer | 100.0% |
| `recharge_money_sum` | `recharge_money_sum` | number | 100.0% |
| `pay_money_sum` | `pay_money_sum` | number | 100.0% |
#### ODS→DWD`dim_member`(直接 11 / 派生 1 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `member_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `system_member_id` | BIGINT | 直接 | `system_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `register_site_id` | BIGINT | 直接 | `register_site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `mobile` | TEXT | 直接 | `mobile` | 维度字段,用于补充维度属性 |
| `nickname` | TEXT | 直接 | `nickname` | 名称字段,用于展示与辅助识别 |
| `member_card_grade_code` | BIGINT | 直接 | `member_card_grade_code` | 维度字段,用于补充维度属性 |
| `member_card_grade_name` | TEXT | 直接 | `member_card_grade_name` | 名称字段,用于展示与辅助识别 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `update_time` | TIMESTAMPTZ | 派生 | `update_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `pay_money_sum` | NUMERIC(18,2) | 直接 | `pay_money_sum` | |
| `recharge_money_sum` | NUMERIC(18,2) | 直接 | `recharge_money_sum` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_member_ex`(直接 10 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `member_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `referrer_member_id` | BIGINT | 直接 | `referrer_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `point` | NUMERIC(18,2) | 直接 | `point` | 维度字段,用于补充维度属性 |
| `register_site_name` | TEXT | 直接 | `site_name` | 名称字段,用于展示与辅助识别 |
| `growth_value` | NUMERIC(18,2) | 直接 | `growth_value` | 维度字段,用于补充维度属性 |
| `user_status` | INTEGER | 直接 | `user_status` | 状态枚举字段,用于标识业务状态 |
| `status` | INTEGER | 直接 | `status` | 状态枚举字段,用于标识业务状态 |
| `person_tenant_org_id` | BIGINT | 直接 | `person_tenant_org_id` | |
| `person_tenant_org_name` | TEXT | 直接 | `person_tenant_org_name` | |
| `register_source` | TEXT | 直接 | `register_source` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.11 member_stored_value_cards会员储值卡
- 任务代码:`ODS_MEMBER_CARD`
- 采样记录数200
- ODS 列数80
- DWD 目标表dim_member_card_account, dim_member_card_account_ex
#### JSON→ODS 映射(已映射 71/71覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `site_name` | `site_name` | string | 100.0% |
| `member_name` | `member_name` | string | 98.5% |
| `member_mobile` | `member_mobile` | string | 98.5% |
| `member_card_type_name` | `member_card_type_name` | string | 100.0% |
| `table_service_discount` | `table_service_discount` | number | 100.0% |
| `assistant_service_discount` | `assistant_service_discount` | number | 100.0% |
| `coupon_discount` | `coupon_discount` | number | 100.0% |
| `goods_service_discount` | `goods_service_discount` | number | 100.0% |
| `electricity_discount` | `electricity_discount` | number | 100.0% |
| `is_allow_give` | `is_allow_give` | integer | 100.0% |
| `able_cross_site` | `able_cross_site` | integer | 100.0% |
| `cardSettleDeduct` | `cardsettlededuct` | number | 100.0% |
| `tenantAvatar` | `tenantavatar` | string | 100.0% |
| `tenantName` | `tenantname` | string | 100.0% |
| `member_card_grade_code_name` | `member_card_grade_code_name` | string | 100.0% |
| `table_discount_sub_switch` | `table_discount_sub_switch` | integer | 100.0% |
| `goods_discount_sub_switch` | `goods_discount_sub_switch` | integer | 100.0% |
| `assistant_discount_sub_switch` | `assistant_discount_sub_switch` | integer | 100.0% |
| `assistant_reward_discount_sub_switch` | `assistant_reward_discount_sub_switch` | integer | 100.0% |
| `goods_discount_range_type` | `goods_discount_range_type` | integer | 100.0% |
| `use_scene` | `use_scene` | string | 100.0% |
| `balance` | `balance` | number | 100.0% |
| `table_deduct_radio` | `table_deduct_radio` | number | 100.0% |
| `table_service_deduct_radio` | `table_service_deduct_radio` | number | 100.0% |
| `goods_deduct_radio` | `goods_deduct_radio` | number | 100.0% |
| `goods_service_deduct_radio` | `goods_service_deduct_radio` | number | 100.0% |
| `assistant_deduct_radio` | `assistant_deduct_radio` | number | 100.0% |
| `assistant_service_deduct_radio` | `assistant_service_deduct_radio` | number | 100.0% |
| `assistant_reward_deduct_radio` | `assistant_reward_deduct_radio` | number | 100.0% |
| `coupon_deduct_radio` | `coupon_deduct_radio` | number | 100.0% |
| `electricity_deduct_radio` | `electricity_deduct_radio` | number | 100.0% |
| `electricityCardDeduct` | `electricitycarddeduct` | number | 100.0% |
| `tableCardDeduct` | `tablecarddeduct` | number | 100.0% |
| `tableServiceCardDeduct` | `tableservicecarddeduct` | number | 100.0% |
| `goodsCarDeduct` | `goodscardeduct` | number | 100.0% |
| `goodsServiceCardDeduct` | `goodsservicecarddeduct` | number | 100.0% |
| `assistantCardDeduct` | `assistantcarddeduct` | number | 100.0% |
| `assistantServiceCardDeduct` | `assistantservicecarddeduct` | number | 100.0% |
| `assistantRewardCardDeduct` | `assistantrewardcarddeduct` | number | 100.0% |
| `couponCardDeduct` | `couponcarddeduct` | number | 100.0% |
| `deliveryFeeDeduct` | `deliveryfeededuct` | number | 100.0% |
| `is_allow_order_deduct` | `is_allow_order_deduct` | integer | 100.0% |
| `member_grade` | `member_grade` | integer | 100.0% |
| `able_share_member_discount` | `able_share_member_discount` | integer | 100.0% |
| `rechargeFreezeBalance` | `rechargefreezebalance` | number | 100.0% |
| `id` | `id` | integer | 100.0% |
| `assistant_discount` | `assistant_discount` | number | 100.0% |
| `assistant_reward_discount` | `assistant_reward_discount` | number | 100.0% |
| `bind_password` | `bind_password` | string | 100.0% |
| `card_no` | `card_no` | string | 100.0% |
| `card_physics_type` | `card_physics_type` | integer | 100.0% |
| `card_type_id` | `card_type_id` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `denomination` | `denomination` | number | 100.0% |
| `disable_end_time` | `disable_end_time` | string | 100.0% |
| `disable_start_time` | `disable_start_time` | string | 100.0% |
| `effect_site_id` | `effect_site_id` | integer | 100.0% |
| `end_time` | `end_time` | string | 100.0% |
| `goods_discount` | `goods_discount` | number | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `last_consume_time` | `last_consume_time` | string | 100.0% |
| `member_card_grade_code` | `member_card_grade_code` | integer | 100.0% |
| `principal_balance` | `principal_balance` | number | 100.0% |
| `register_site_id` | `register_site_id` | integer | 100.0% |
| `sort` | `sort` | integer | 100.0% |
| `start_time` | `start_time` | string | 100.0% |
| `status` | `status` | integer | 100.0% |
| `system_member_id` | `system_member_id` | integer | 100.0% |
| `table_discount` | `table_discount` | number | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `tenant_member_id` | `tenant_member_id` | integer | 100.0% |
#### ODS→DWD`dim_member_card_account`(直接 19 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `member_card_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `register_site_id` | BIGINT | 直接 | `register_site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_member_id` | BIGINT | 直接 | `tenant_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `system_member_id` | BIGINT | 直接 | `system_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `card_type_id` | BIGINT | 直接 | `card_type_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_card_grade_code` | BIGINT | 直接 | `member_card_grade_code` | 维度字段,用于补充维度属性 |
| `member_card_grade_code_name` | TEXT | 直接 | `member_card_grade_code_name` | 名称字段,用于展示与辅助识别 |
| `member_card_type_name` | TEXT | 直接 | `member_card_type_name` | 名称字段,用于展示与辅助识别 |
| `member_name` | TEXT | 直接 | `member_name` | 名称字段,用于展示与辅助识别 |
| `member_mobile` | TEXT | 直接 | `member_mobile` | 维度字段,用于补充维度属性 |
| `balance` | NUMERIC(18,2) | 直接 | `balance` | 金额字段,用于计费/结算/核算等金额计算 |
| `start_time` | TIMESTAMPTZ | 直接 | `start_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `end_time` | TIMESTAMPTZ | 直接 | `end_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `last_consume_time` | TIMESTAMPTZ | 直接 | `last_consume_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `status` | INTEGER | 直接 | `status` | 状态枚举字段,用于标识业务状态 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `principal_balance` | NUMERIC(18,2) | 直接 | `principal_balance` | |
| `member_grade` | BIGINT | 直接 | `member_grade` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_member_card_account_ex`(直接 55 / 派生 2 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `member_card_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name` | TEXT | 直接 | `site_name` | 名称字段,用于展示与辅助识别 |
| `tenant_name` | VARCHAR(64) | 直接 | `tenantname` | 名称字段,用于展示与辅助识别 |
| `tenantavatar` | TEXT | 直接 | `tenantavatar` | 维度字段,用于补充维度属性 |
| `effect_site_id` | BIGINT | 直接 | `effect_site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `able_cross_site` | INTEGER | 直接 | `able_cross_site` | 维度字段,用于补充维度属性 |
| `card_physics_type` | INTEGER | 直接 | `card_physics_type` | 维度字段,用于补充维度属性 |
| `card_no` | TEXT | 直接 | `card_no` | 维度字段,用于补充维度属性 |
| `bind_password` | TEXT | 直接 | `bind_password` | 维度字段,用于补充维度属性 |
| `use_scene` | TEXT | 直接 | `use_scene` | 维度字段,用于补充维度属性 |
| `denomination` | NUMERIC(18,2) | 直接 | `denomination` | 维度字段,用于补充维度属性 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `disable_start_time` | TIMESTAMPTZ | 直接 | `disable_start_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `disable_end_time` | TIMESTAMPTZ | 直接 | `disable_end_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `is_allow_give` | INTEGER | 直接 | `is_allow_give` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_allow_order_deduct` | INTEGER | 直接 | `is_allow_order_deduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `sort` | INTEGER | 直接 | `sort` | 维度字段,用于补充维度属性 |
| `table_discount` | NUMERIC(10,2) | 直接 | `table_discount` | 数量/时长字段,用于统计与计量 |
| `goods_discount` | NUMERIC(10,2) | 直接 | `goods_discount` | 数量/时长字段,用于统计与计量 |
| `assistant_discount` | NUMERIC(10,2) | 直接 | `assistant_discount` | 数量/时长字段,用于统计与计量 |
| `assistant_reward_discount` | NUMERIC(10,2) | 直接 | `assistant_reward_discount` | 数量/时长字段,用于统计与计量 |
| `table_service_discount` | NUMERIC(10,2) | 直接 | `table_service_discount` | 数量/时长字段,用于统计与计量 |
| `goods_service_discount` | NUMERIC(10,2) | 直接 | `goods_service_discount` | 数量/时长字段,用于统计与计量 |
| `assistant_service_discount` | NUMERIC(10,2) | 直接 | `assistant_service_discount` | 数量/时长字段,用于统计与计量 |
| `coupon_discount` | NUMERIC(10,2) | 直接 | `coupon_discount` | 数量/时长字段,用于统计与计量 |
| `table_discount_sub_switch` | INTEGER | 直接 | `table_discount_sub_switch` | 数量/时长字段,用于统计与计量 |
| `goods_discount_sub_switch` | INTEGER | 直接 | `goods_discount_sub_switch` | 数量/时长字段,用于统计与计量 |
| `assistant_discount_sub_switch` | INTEGER | 直接 | `assistant_discount_sub_switch` | 数量/时长字段,用于统计与计量 |
| `assistant_reward_discount_sub_switch` | INTEGER | 直接 | `assistant_reward_discount_sub_switch` | 数量/时长字段,用于统计与计量 |
| `goods_discount_range_type` | INTEGER | 直接 | `goods_discount_range_type` | 数量/时长字段,用于统计与计量 |
| `table_deduct_radio` | NUMERIC(10,2) | 直接 | `table_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `goods_deduct_radio` | NUMERIC(10,2) | 直接 | `goods_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_deduct_radio` | NUMERIC(10,2) | 直接 | `assistant_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `table_service_deduct_radio` | NUMERIC(10,2) | 直接 | `table_service_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `goods_service_deduct_radio` | NUMERIC(10,2) | 直接 | `goods_service_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_service_deduct_radio` | NUMERIC(10,2) | 直接 | `assistant_service_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_reward_deduct_radio` | NUMERIC(10,2) | 直接 | `assistant_reward_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_deduct_radio` | NUMERIC(10,2) | 直接 | `coupon_deduct_radio` | 金额字段,用于计费/结算/核算等金额计算 |
| `cardsettlededuct` | NUMERIC(18,2) | 直接 | `cardsettlededuct` | 金额字段,用于计费/结算/核算等金额计算 |
| `tablecarddeduct` | NUMERIC(18,2) | 直接 | `tablecarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `tableservicecarddeduct` | NUMERIC(18,2) | 直接 | `tableservicecarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `goodscardeduct` | NUMERIC(18,2) | 直接 | `goodscardeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `goodsservicecarddeduct` | NUMERIC(18,2) | 直接 | `goodsservicecarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistantcarddeduct` | NUMERIC(18,2) | 直接 | `assistantcarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistantservicecarddeduct` | NUMERIC(18,2) | 直接 | `assistantservicecarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistantrewardcarddeduct` | NUMERIC(18,2) | 直接 | `assistantrewardcarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `couponcarddeduct` | NUMERIC(18,2) | 直接 | `couponcarddeduct` | 金额字段,用于计费/结算/核算等金额计算 |
| `deliveryfeededuct` | NUMERIC(18,2) | 直接 | `deliveryfeededuct` | 金额字段,用于计费/结算/核算等金额计算 |
| `tableareaid` | TEXT | 直接 | `tableareaid` | 维度字段,用于补充维度属性 |
| `goodscategoryid` | TEXT | 直接 | `goodscategoryid` | 维度字段,用于补充维度属性 |
| `pdassisnatlevel` | TEXT | 直接 | `pdassisnatlevel` | 维度字段,用于补充维度属性 |
| `cxassisnatlevel` | TEXT | 直接 | `cxassisnatlevel` | 维度字段,用于补充维度属性 |
| `able_share_member_discount` | BOOLEAN | 直接 | `able_share_member_discount` | |
| `electricity_deduct_radio` | NUMERIC(18,4) | 直接 | `electricity_deduct_radio` | |
| `electricity_discount` | NUMERIC(18,4) | 直接 | `electricity_discount` | |
| `electricity_card_deduct` | BOOLEAN | 派生 | `—` | |
| `recharge_freeze_balance` | NUMERIC(18,2) | 派生 | `—` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.12 member_balance_changes会员余额变动
- 任务代码:`ODS_MEMBER_BALANCE`
- 采样记录数200
- ODS 列数33
- DWD 目标表dwd_member_balance_change, dwd_member_balance_change_ex
#### JSON→ODS 映射(已映射 28/28覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `memberCardTypeName` | `membercardtypename` | string | 100.0% |
| `paySiteName` | `paysitename` | string | 100.0% |
| `registerSiteName` | `registersitename` | string | 100.0% |
| `memberName` | `membername` | string | 100.0% |
| `memberMobile` | `membermobile` | string | 100.0% |
| `id` | `id` | integer | 100.0% |
| `account_data` | `account_data` | number | 100.0% |
| `after` | `after` | number | 100.0% |
| `before` | `before` | number | 100.0% |
| `card_type_id` | `card_type_id` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `from_type` | `from_type` | integer | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `payment_method` | `payment_method` | integer | 100.0% |
| `refund_amount` | `refund_amount` | number | 100.0% |
| `register_site_id` | `register_site_id` | integer | 100.0% |
| `relate_id` | `relate_id` | integer | 100.0% |
| `remark` | `remark` | string | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `system_member_id` | `system_member_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `tenant_member_card_id` | `tenant_member_card_id` | integer | 100.0% |
| `tenant_member_id` | `tenant_member_id` | integer | 100.0% |
| `principal_after` | `principal_after` | number | 100.0% |
| `principal_before` | `principal_before` | number | 100.0% |
| `principal_data` | `principal_data` | number | 100.0% |
#### ODS→DWD`dwd_member_balance_change`(直接 21 / 派生 1 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `balance_change_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `register_site_id` | BIGINT | 直接 | `register_site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_member_id` | BIGINT | 直接 | `tenant_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `system_member_id` | BIGINT | 直接 | `system_member_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_member_card_id` | BIGINT | 直接 | `tenant_member_card_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `card_type_id` | BIGINT | 直接 | `card_type_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `card_type_name` | VARCHAR(32) | 直接 | `membercardtypename` | 名称字段,用于展示与辅助识别 |
| `member_name` | VARCHAR(64) | 直接 | `membername` | 名称字段,用于展示与辅助识别 |
| `member_mobile` | VARCHAR(20) | 直接 | `membermobile` | 明细字段,用于记录事实取值 |
| `balance_before` | NUMERIC(18,2) | 直接 | `before` | 金额字段,用于计费/结算/核算等金额计算 |
| `change_amount` | NUMERIC(18,2) | 直接 | `account_data` | 金额字段,用于计费/结算/核算等金额计算 |
| `balance_after` | NUMERIC(18,2) | 直接 | `after` | 金额字段,用于计费/结算/核算等金额计算 |
| `from_type` | INTEGER | 直接 | `from_type` | 明细字段,用于记录事实取值 |
| `payment_method` | INTEGER | 直接 | `payment_method` | 明细字段,用于记录事实取值 |
| `change_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `remark` | VARCHAR(255) | 直接 | `remark` | 明细字段,用于记录事实取值 |
| `principal_before` | NUMERIC(18,2) | 直接 | `principal_before` | 金额字段:本金变动前余额 |
| `principal_after` | NUMERIC(18,2) | 直接 | `principal_after` | 金额字段:本金变动后余额 |
| `principal_change_amount` | NUMERIC(18,2) | 派生 | `—` | 金额字段本金变动金额principal_after - principal_beforeET |
#### ODS→DWD`dwd_member_balance_change_ex`(直接 7 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `balance_change_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `pay_site_name` | VARCHAR(64) | 直接 | `paysitename` | 名称字段,用于展示与辅助识别 |
| `register_site_name` | VARCHAR(64) | 直接 | `registersitename` | 名称字段,用于展示与辅助识别 |
| `refund_amount` | NUMERIC(18,2) | 直接 | `refund_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `operator_id` | BIGINT | 直接 | `operator_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `operator_name` | VARCHAR(64) | 直接 | `operator_name` | 名称字段,用于展示与辅助识别 |
| `principal_data` | TEXT | 直接 | `principal_data` | |
---
### 3.13 recharge_settlements充值结算
- 任务代码:`ODS_RECHARGE_SETTLE`
- 采样记录数200
- ODS 列数71
- DWD 目标表dwd_recharge_order, dwd_recharge_order_ex
#### JSON→ODS 映射(已映射 68/92覆盖率 73.9%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenantid` | integer | 100.0% |
| `settleList.id` | `id` | integer | 100.0% |
| `settleList.tenantId` | `tenantid` | integer | 100.0% |
| `settleList.siteId` | `siteid` | integer | 100.0% |
| `settleList.siteName` | `sitename` | string | 100.0% |
| `settleList.balanceAmount` | `balanceamount` | number | 100.0% |
| `settleList.cardAmount` | `cardamount` | number | 100.0% |
| `settleList.cashAmount` | `cashamount` | number | 100.0% |
| `settleList.couponAmount` | `couponamount` | number | 100.0% |
| `settleList.createTime` | `createtime` | string | 100.0% |
| `settleList.memberId` | `memberid` | integer | 100.0% |
| `settleList.memberName` | `membername` | string | 100.0% |
| `settleList.tenantMemberCardId` | `tenantmembercardid` | integer | 100.0% |
| `settleList.memberCardTypeName` | `membercardtypename` | string | 100.0% |
| `settleList.memberPhone` | `memberphone` | string | 100.0% |
| `settleList.tableId` | `tableid` | integer | 100.0% |
| `settleList.consumeMoney` | `consumemoney` | number | 100.0% |
| `settleList.onlineAmount` | `onlineamount` | number | 100.0% |
| `settleList.operatorId` | `operatorid` | integer | 100.0% |
| `settleList.operatorName` | `operatorname` | string | 100.0% |
| `settleList.revokeOrderId` | `revokeorderid` | integer | 100.0% |
| `settleList.revokeOrderName` | `revokeordername` | string | 100.0% |
| `settleList.revokeTime` | `revoketime` | string | 100.0% |
| `settleList.payAmount` | `payamount` | number | 100.0% |
| `settleList.pointAmount` | `pointamount` | number | 100.0% |
| `settleList.refundAmount` | `refundamount` | number | 100.0% |
| `settleList.settleName` | `settlename` | string | 100.0% |
| `settleList.settleRelateId` | `settlerelateid` | integer | 100.0% |
| `settleList.settleStatus` | `settlestatus` | integer | 100.0% |
| `settleList.settleType` | `settletype` | integer | 100.0% |
| `settleList.payTime` | `paytime` | string | 100.0% |
| `settleList.roundingAmount` | `roundingamount` | number | 100.0% |
| `settleList.paymentMethod` | `paymentmethod` | integer | 100.0% |
| `settleList.adjustAmount` | `adjustamount` | number | 100.0% |
| `settleList.assistantCxMoney` | `assistantcxmoney` | number | 100.0% |
| `settleList.assistantPdMoney` | `assistantpdmoney` | number | 100.0% |
| `settleList.couponSaleAmount` | `couponsaleamount` | number | 100.0% |
| `settleList.plCouponSaleAmount` | `plcouponsaleamount` | number | 100.0% |
| `settleList.merVouSalesAmount` | `mervousalesamount` | number | 100.0% |
| `settleList.memberDiscountAmount` | `memberdiscountamount` | number | 100.0% |
| `settleList.tableChargeMoney` | `tablechargemoney` | number | 100.0% |
| `settleList.goodsMoney` | `goodsmoney` | number | 100.0% |
| `settleList.realGoodsMoney` | `realgoodsmoney` | number | 100.0% |
| `settleList.serviceMoney` | `servicemoney` | number | 100.0% |
| `settleList.prepayMoney` | `prepaymoney` | number | 100.0% |
| `settleList.salesManName` | `salesmanname` | string | 100.0% |
| `settleList.orderRemark` | `orderremark` | string | 100.0% |
| `settleList.salesManUserId` | `salesmanuserid` | integer | 100.0% |
| `settleList.canBeRevoked` | `canberevoked` | boolean | 100.0% |
| `settleList.pointDiscountPrice` | `pointdiscountprice` | number | 100.0% |
| `settleList.pointDiscountCost` | `pointdiscountcost` | number | 100.0% |
| `settleList.activityDiscount` | `activitydiscount` | number | 100.0% |
| `settleList.serialNumber` | `serialnumber` | integer | 100.0% |
| `settleList.assistantManualDiscount` | `assistantmanualdiscount` | number | 100.0% |
| `settleList.allCouponDiscount` | `allcoupondiscount` | number | 100.0% |
| `settleList.goodsPromotionMoney` | `goodspromotionmoney` | number | 100.0% |
| `settleList.assistantPromotionMoney` | `assistantpromotionmoney` | number | 100.0% |
| `settleList.isUseCoupon` | `isusecoupon` | boolean | 100.0% |
| `settleList.isUseDiscount` | `isusediscount` | boolean | 100.0% |
| `settleList.isActivity` | `isactivity` | boolean | 100.0% |
| `settleList.isBindMember` | `isbindmember` | boolean | 100.0% |
| `settleList.isFirst` | `isfirst` | integer | 100.0% |
| `settleList.rechargeCardAmount` | `rechargecardamount` | integer | 100.0% |
| `settleList.giftCardAmount` | `giftcardamount` | integer | 100.0% |
| `settleList.electricityMoney` | `electricitymoney` | number | 100.0% |
| `settleList.realElectricityMoney` | `realelectricitymoney` | number | 100.0% |
| `settleList.electricityAdjustMoney` | `electricityadjustmoney` | number | 100.0% |
<details><summary>仅存于 payload 的字段24 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_recharge_order`(直接 24 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `recharge_order_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenantid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `siteid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_id` | BIGINT | 直接 | `memberid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_name_snapshot` | TEXT | 直接 | `membername` | 明细字段,用于记录事实取值 |
| `member_phone_snapshot` | TEXT | 直接 | `memberphone` | 明细字段,用于记录事实取值 |
| `tenant_member_card_id` | BIGINT | 直接 | `tenantmembercardid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `member_card_type_name` | TEXT | 直接 | `membercardtypename` | 名称字段,用于展示与辅助识别 |
| `settle_relate_id` | BIGINT | 直接 | `settlerelateid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `settle_type` | INTEGER | 直接 | `settletype` | 明细字段,用于记录事实取值 |
| `settle_name` | TEXT | 直接 | `settlename` | 名称字段,用于展示与辅助识别 |
| `is_first` | INTEGER | 直接 | `isfirst` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `pay_amount` | NUMERIC(18,2) | 直接 | `payamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `refund_amount` | NUMERIC(18,2) | 直接 | `refundamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_amount` | NUMERIC(18,2) | 直接 | `pointamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `cash_amount` | NUMERIC(18,2) | 直接 | `cashamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `payment_method` | INTEGER | 直接 | `paymentmethod` | 明细字段,用于记录事实取值 |
| `create_time` | TIMESTAMPTZ | 直接 | `createtime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `pay_time` | TIMESTAMPTZ | 直接 | `paytime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `pl_coupon_sale_amount` | NUMERIC(18,2) | 直接 | `plcouponsaleamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `mervou_sales_amount` | NUMERIC(18,2) | 直接 | `mervousalesamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `electricity_money` | NUMERIC(18,2) | 直接 | `electricitymoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `real_electricity_money` | NUMERIC(18,2) | 直接 | `realelectricitymoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `electricity_adjust_money` | NUMERIC(18,2) | 直接 | `electricityadjustmoney` | 金额字段,用于计费/结算/核算等金额计算 |
#### ODS→DWD`dwd_recharge_order_ex`(直接 38 / 派生 5 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `recharge_order_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name_snapshot` | TEXT | 直接 | `sitename` | 明细字段,用于记录事实取值 |
| `settle_status` | INTEGER | 直接 | `settlestatus` | 状态枚举字段,用于标识业务状态 |
| `is_bind_member` | BOOLEAN | 派生 | `isbindmember派生BOOLEAN(isbindmember)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_activity` | BOOLEAN | 派生 | `isactivity派生BOOLEAN(isactivity)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_use_coupon` | BOOLEAN | 派生 | `isusecoupon派生BOOLEAN(isusecoupon)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_use_discount` | BOOLEAN | 派生 | `isusediscount派生BOOLEAN(isusediscount)` | 数量/时长字段,用于统计与计量 |
| `can_be_revoked` | BOOLEAN | 派生 | `canberevoked派生BOOLEAN(canberevoked)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `online_amount` | NUMERIC(18,2) | 直接 | `onlineamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `balance_amount` | NUMERIC(18,2) | 直接 | `balanceamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `card_amount` | NUMERIC(18,2) | 直接 | `cardamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_amount` | NUMERIC(18,2) | 直接 | `couponamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `recharge_card_amount` | NUMERIC(18,2) | 直接 | `rechargecardamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `gift_card_amount` | NUMERIC(18,2) | 直接 | `giftcardamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `prepay_money` | NUMERIC(18,2) | 直接 | `prepaymoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `consume_money` | NUMERIC(18,2) | 直接 | `consumemoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `goods_money` | NUMERIC(18,2) | 直接 | `goodsmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `real_goods_money` | NUMERIC(18,2) | 直接 | `realgoodsmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `table_charge_money` | NUMERIC(18,2) | 直接 | `tablechargemoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `service_money` | NUMERIC(18,2) | 直接 | `servicemoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `activity_discount` | NUMERIC(18,2) | 直接 | `activitydiscount` | 数量/时长字段,用于统计与计量 |
| `all_coupon_discount` | NUMERIC(18,2) | 直接 | `allcoupondiscount` | 数量/时长字段,用于统计与计量 |
| `goods_promotion_money` | NUMERIC(18,2) | 直接 | `goodspromotionmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_promotion_money` | NUMERIC(18,2) | 直接 | `assistantpromotionmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_pd_money` | NUMERIC(18,2) | 直接 | `assistantpdmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_cx_money` | NUMERIC(18,2) | 直接 | `assistantcxmoney` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_manual_discount` | NUMERIC(18,2) | 直接 | `assistantmanualdiscount` | 数量/时长字段,用于统计与计量 |
| `coupon_sale_amount` | NUMERIC(18,2) | 直接 | `couponsaleamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `member_discount_amount` | NUMERIC(18,2) | 直接 | `memberdiscountamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_discount_price` | NUMERIC(18,2) | 直接 | `pointdiscountprice` | 金额字段,用于计费/结算/核算等金额计算 |
| `point_discount_cost` | NUMERIC(18,2) | 直接 | `pointdiscountcost` | 金额字段,用于计费/结算/核算等金额计算 |
| `adjust_amount` | NUMERIC(18,2) | 直接 | `adjustamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `rounding_amount` | NUMERIC(18,2) | 直接 | `roundingamount` | 金额字段,用于计费/结算/核算等金额计算 |
| `operator_id` | BIGINT | 直接 | `operatorid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `operator_name_snapshot` | TEXT | 直接 | `operatorname` | 明细字段,用于记录事实取值 |
| `salesman_user_id` | BIGINT | 直接 | `salesmanuserid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_name` | TEXT | 直接 | `salesmanname` | 名称字段,用于展示与辅助识别 |
| `order_remark` | TEXT | 直接 | `orderremark` | 明细字段,用于记录事实取值 |
| `table_id` | INTEGER | 直接 | `tableid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `serial_number` | INTEGER | 直接 | `serialnumber` | 数量/时长字段,用于统计与计量 |
| `revoke_order_id` | BIGINT | 直接 | `revokeorderid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `revoke_order_name` | TEXT | 直接 | `revokeordername` | 名称字段,用于展示与辅助识别 |
| `revoke_time` | TIMESTAMPTZ | 直接 | `revoketime` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
---
### 3.14 group_buy_packages团购套餐定义
- 任务代码:`ODS_GROUP_PACKAGE`
- 采样记录数18
- ODS 列数43
- DWD 目标表dim_groupbuy_package, dim_groupbuy_package_ex
#### JSON→ODS 映射(已映射 39/40覆盖率 97.5%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `site_name` | `site_name` | string | 100.0% |
| `effective_status` | `effective_status` | integer | 100.0% |
| `tenantTableAreaIdList[]` | `tenant_table_area_id_list` | integer | 100.0% |
| `tenantCouponSaleOrderItemId` | `tenantcouponsaleorderitemid` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `add_end_clock` | `add_end_clock` | string | 100.0% |
| `add_start_clock` | `add_start_clock` | string | 100.0% |
| `area_tag_type` | `area_tag_type` | integer | 100.0% |
| `card_type_ids` | `card_type_ids` | string | 100.0% |
| `coupon_money` | `coupon_money` | number | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `creator_name` | `creator_name` | string | 100.0% |
| `date_info` | `date_info` | string | 100.0% |
| `date_type` | `date_type` | integer | 100.0% |
| `duration` | `duration` | integer | 100.0% |
| `end_clock` | `end_clock` | string | 100.0% |
| `end_time` | `end_time` | string | 100.0% |
| `group_type` | `group_type` | integer | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_enabled` | `is_enabled` | integer | 100.0% |
| `is_first_limit` | `is_first_limit` | integer | 100.0% |
| `max_selectable_categories` | `max_selectable_categories` | integer | 100.0% |
| `package_id` | `package_id` | integer | 100.0% |
| `package_name` | `package_name` | string | 100.0% |
| `selling_price` | `selling_price` | number | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `sort` | `sort` | integer | 100.0% |
| `start_clock` | `start_clock` | string | 100.0% |
| `start_time` | `start_time` | string | 100.0% |
| `system_group_type` | `system_group_type` | integer | 100.0% |
| `table_area_id` | `table_area_id` | string | 100.0% |
| `table_area_id_list` | `table_area_id_list` | string | 100.0% |
| `table_area_name` | `table_area_name` | string | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `tenant_table_area_id` | `tenant_table_area_id` | string | 100.0% |
| `tenant_table_area_id_list` | `tenant_table_area_id_list` | string | 100.0% |
| `type` | `type` | integer | 100.0% |
| `usable_count` | `usable_count` | integer | 100.0% |
| `usable_range` | `usable_range` | string | 100.0% |
<details><summary>仅存于 payload 的字段1 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `tableAreaNameList[]` | string | 100.0% |
</details>
#### ODS→DWD`dim_groupbuy_package`(直接 18 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `groupbuy_package_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `package_name` | VARCHAR(200) | 直接 | `package_name` | 名称字段,用于展示与辅助识别 |
| `package_template_id` | BIGINT | 直接 | `package_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `selling_price` | NUMERIC(10,2) | 直接 | `selling_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_face_value` | NUMERIC(10,2) | 直接 | `coupon_money` | 维度字段,用于补充维度属性 |
| `duration_seconds` | INTEGER | 直接 | `duration` | 数量/时长字段,用于统计与计量 |
| `start_time` | TIMESTAMPTZ | 直接 | `start_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `end_time` | TIMESTAMPTZ | 直接 | `end_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `table_area_name` | VARCHAR(100) | 直接 | `table_area_name` | 名称字段,用于展示与辅助识别 |
| `is_enabled` | INTEGER | 直接 | `is_enabled` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `tenant_table_area_id_list` | VARCHAR(512) | 直接 | `tenant_table_area_id_list` | 维度字段,用于补充维度属性 |
| `card_type_ids` | VARCHAR(255) | 直接 | `card_type_ids` | 维度字段,用于补充维度属性 |
| `sort` | INTEGER | 直接 | `sort` | |
| `is_first_limit` | BOOLEAN | 直接 | `is_first_limit` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_groupbuy_package_ex`(直接 20 / 派生 1 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `groupbuy_package_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name` | VARCHAR(100) | 直接 | `site_name` | 名称字段,用于展示与辅助识别 |
| `usable_count` | INTEGER | 直接 | `usable_count` | 数量/时长字段,用于统计与计量 |
| `date_type` | INTEGER | 直接 | `date_type` | 维度字段,用于补充维度属性 |
| `usable_range` | VARCHAR(255) | 直接 | `usable_range` | 维度字段,用于补充维度属性 |
| `date_info` | VARCHAR(255) | 直接 | `date_info` | 维度字段,用于补充维度属性 |
| `start_clock` | VARCHAR(16) | 直接 | `start_clock` | 维度字段,用于补充维度属性 |
| `end_clock` | VARCHAR(16) | 直接 | `end_clock` | 维度字段,用于补充维度属性 |
| `add_start_clock` | VARCHAR(16) | 直接 | `add_start_clock` | 维度字段,用于补充维度属性 |
| `add_end_clock` | VARCHAR(16) | 直接 | `add_end_clock` | 维度字段,用于补充维度属性 |
| `area_tag_type` | INTEGER | 直接 | `area_tag_type` | 维度字段,用于补充维度属性 |
| `table_area_id` | BIGINT | 直接 | `table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_table_area_id` | BIGINT | 直接 | `tenant_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_area_id_list` | VARCHAR(512) | 直接 | `table_area_id_list` | 维度字段,用于补充维度属性 |
| `group_type` | INTEGER | 直接 | `group_type` | 维度字段,用于补充维度属性 |
| `system_group_type` | INTEGER | 直接 | `system_group_type` | 维度字段,用于补充维度属性 |
| `package_type` | INTEGER | 直接 | `type` | 维度字段,用于补充维度属性 |
| `effective_status` | INTEGER | 直接 | `effective_status` | 状态枚举字段,用于标识业务状态 |
| `max_selectable_categories` | INTEGER | 直接 | `max_selectable_categories` | 维度字段,用于补充维度属性 |
| `creator_name` | VARCHAR(100) | 直接 | `creator_name` | 名称字段,用于展示与辅助识别 |
| `tenant_coupon_sale_order_item_id` | BIGINT | 派生 | `—` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.15 group_buy_redemption_records团购套餐核销
- 任务代码:`ODS_GROUP_BUY_REDEMPTION`
- 采样记录数200
- ODS 列数57
- DWD 目标表dwd_groupbuy_redemption, dwd_groupbuy_redemption_ex
#### JSON→ODS 映射(已映射 52/52覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `tableName` | `tablename` | string | 100.0% |
| `tableAreaName` | `tableareaname` | string | 100.0% |
| `siteName` | `sitename` | string | 100.0% |
| `goodsOptionPrice` | `goodsoptionprice` | number | 100.0% |
| `id` | `id` | integer | 100.0% |
| `assistant_promotion_money` | `assistant_promotion_money` | number | 100.0% |
| `assistant_service_promotion_money` | `assistant_service_promotion_money` | number | 100.0% |
| `assistant_service_share_money` | `assistant_service_share_money` | number | 100.0% |
| `assistant_share_money` | `assistant_share_money` | number | 100.0% |
| `coupon_code` | `coupon_code` | string | 100.0% |
| `coupon_money` | `coupon_money` | number | 100.0% |
| `coupon_origin_id` | `coupon_origin_id` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `good_service_share_money` | `good_service_share_money` | number | 100.0% |
| `goods_promotion_money` | `goods_promotion_money` | number | 100.0% |
| `goods_share_money` | `goods_share_money` | number | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_single_order` | `is_single_order` | integer | 100.0% |
| `ledger_amount` | `ledger_amount` | number | 100.0% |
| `ledger_count` | `ledger_count` | integer | 100.0% |
| `ledger_group_name` | `ledger_group_name` | string | 100.0% |
| `ledger_name` | `ledger_name` | string | 100.0% |
| `ledger_status` | `ledger_status` | integer | 100.0% |
| `ledger_unit_price` | `ledger_unit_price` | number | 100.0% |
| `offer_type` | `offer_type` | integer | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `order_coupon_channel` | `order_coupon_channel` | integer | 100.0% |
| `order_coupon_id` | `order_coupon_id` | integer | 100.0% |
| `order_pay_id` | `order_pay_id` | integer | 100.0% |
| `order_settle_id` | `order_settle_id` | integer | 100.0% |
| `order_trade_no` | `order_trade_no` | integer | 100.0% |
| `promotion_activity_id` | `promotion_activity_id` | integer | 100.0% |
| `promotion_coupon_id` | `promotion_coupon_id` | integer | 100.0% |
| `promotion_seconds` | `promotion_seconds` | integer | 100.0% |
| `recharge_promotion_money` | `recharge_promotion_money` | number | 100.0% |
| `recharge_share_money` | `recharge_share_money` | number | 100.0% |
| `reward_promotion_money` | `reward_promotion_money` | number | 100.0% |
| `sales_man_org_id` | `sales_man_org_id` | integer | 100.0% |
| `salesman_name` | `salesman_name` | string | 100.0% |
| `salesman_role_id` | `salesman_role_id` | integer | 100.0% |
| `salesman_user_id` | `salesman_user_id` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `table_charge_seconds` | `table_charge_seconds` | integer | 100.0% |
| `table_id` | `table_id` | integer | 100.0% |
| `table_service_promotion_money` | `table_service_promotion_money` | number | 100.0% |
| `table_service_share_money` | `table_service_share_money` | number | 100.0% |
| `table_share_money` | `table_share_money` | number | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `tenant_table_area_id` | `tenant_table_area_id` | integer | 100.0% |
| `coupon_sale_id` | `coupon_sale_id` | integer | 100.0% |
| `member_discount_money` | `member_discount_money` | number | 100.0% |
#### ODS→DWD`dwd_groupbuy_redemption`(直接 25 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `redemption_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_id` | BIGINT | 直接 | `table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_table_area_id` | BIGINT | 直接 | `tenant_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_charge_seconds` | INTEGER | 直接 | `table_charge_seconds` | 数量/时长字段,用于统计与计量 |
| `order_trade_no` | BIGINT | 直接 | `order_trade_no` | 明细字段,用于记录事实取值 |
| `order_settle_id` | BIGINT | 直接 | `order_settle_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_coupon_id` | BIGINT | 直接 | `order_coupon_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `coupon_origin_id` | BIGINT | 直接 | `coupon_origin_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `promotion_activity_id` | BIGINT | 直接 | `promotion_activity_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `promotion_coupon_id` | BIGINT | 直接 | `promotion_coupon_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_coupon_channel` | INTEGER | 直接 | `order_coupon_channel` | 明细字段,用于记录事实取值 |
| `ledger_unit_price` | NUMERIC(18,2) | 直接 | `ledger_unit_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_count` | INTEGER | 直接 | `ledger_count` | 数量/时长字段,用于统计与计量 |
| `ledger_amount` | NUMERIC(18,2) | 直接 | `ledger_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `coupon_money` | NUMERIC(18,2) | 直接 | `coupon_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `promotion_seconds` | INTEGER | 直接 | `promotion_seconds` | 数量/时长字段,用于统计与计量 |
| `coupon_code` | VARCHAR(64) | 直接 | `coupon_code` | 明细字段,用于记录事实取值 |
| `is_single_order` | INTEGER | 直接 | `is_single_order` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `ledger_name` | VARCHAR(128) | 直接 | `ledger_name` | 名称字段,用于展示与辅助识别 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `member_discount_money` | NUMERIC(18,2) | 直接 | `member_discount_money` | |
| `coupon_sale_id` | BIGINT | 直接 | `coupon_sale_id` | |
#### ODS→DWD`dwd_groupbuy_redemption_ex`(直接 28 / 派生 0 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `redemption_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name` | VARCHAR(64) | 直接 | `sitename` | 名称字段,用于展示与辅助识别 |
| `table_name` | VARCHAR(64) | 直接 | `tablename` | 名称字段,用于展示与辅助识别 |
| `table_area_name` | VARCHAR(64) | 直接 | `tableareaname` | 名称字段,用于展示与辅助识别 |
| `order_pay_id` | BIGINT | 直接 | `order_pay_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `goods_option_price` | NUMERIC(18,2) | 直接 | `goodsoptionprice` | 金额字段,用于计费/结算/核算等金额计算 |
| `goods_promotion_money` | NUMERIC(18,2) | 直接 | `goods_promotion_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `table_service_promotion_money` | NUMERIC(18,2) | 直接 | `table_service_promotion_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_promotion_money` | NUMERIC(18,2) | 直接 | `assistant_promotion_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `assistant_service_promotion_money` | NUMERIC(18,2) | 直接 | `assistant_service_promotion_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `reward_promotion_money` | NUMERIC(18,2) | 直接 | `reward_promotion_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `recharge_promotion_money` | NUMERIC(18,2) | 直接 | `recharge_promotion_money` | 金额字段,用于计费/结算/核算等金额计算 |
| `offer_type` | INTEGER | 直接 | `offer_type` | 明细字段,用于记录事实取值 |
| `ledger_status` | INTEGER | 直接 | `ledger_status` | 状态枚举字段,用于标识业务状态 |
| `operator_id` | BIGINT | 直接 | `operator_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `operator_name` | VARCHAR(64) | 直接 | `operator_name` | 名称字段,用于展示与辅助识别 |
| `salesman_user_id` | BIGINT | 直接 | `salesman_user_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_name` | VARCHAR(64) | 直接 | `salesman_name` | 名称字段,用于展示与辅助识别 |
| `salesman_role_id` | BIGINT | 直接 | `salesman_role_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `salesman_org_id` | BIGINT | 直接 | `sales_man_org_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `ledger_group_name` | VARCHAR(128) | 直接 | `ledger_group_name` | 名称字段,用于展示与辅助识别 |
| `table_share_money` | NUMERIC(18,2) | 直接 | `table_share_money` | |
| `table_service_share_money` | NUMERIC(18,2) | 直接 | `table_service_share_money` | |
| `goods_share_money` | NUMERIC(18,2) | 直接 | `goods_share_money` | |
| `good_service_share_money` | NUMERIC(18,2) | 直接 | `good_service_share_money` | |
| `assistant_share_money` | NUMERIC(18,2) | 直接 | `assistant_share_money` | |
| `assistant_service_share_money` | NUMERIC(18,2) | 直接 | `assistant_service_share_money` | |
| `recharge_share_money` | NUMERIC(18,2) | 直接 | `recharge_share_money` | |
---
### 3.16 goods_stock_summary库存汇总
- 任务代码:`ODS_INVENTORY_STOCK`
- 采样记录数173
- ODS 列数19
- DWD 目标表:无(尚未建模)
#### JSON→ODS 映射(已映射 14/14覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteGoodsId` | `sitegoodsid` | integer | 100.0% |
| `goodsName` | `goodsname` | string | 100.0% |
| `goodsUnit` | `goodsunit` | string | 100.0% |
| `goodsCategoryId` | `goodscategoryid` | integer | 100.0% |
| `goodsCategorySecondId` | `goodscategorysecondid` | integer | 100.0% |
| `rangeStartStock` | `rangestartstock` | integer | 100.0% |
| `rangeEndStock` | `rangeendstock` | integer | 100.0% |
| `rangeIn` | `rangein` | integer | 100.0% |
| `rangeOut` | `rangeout` | integer | 100.0% |
| `rangeInventory` | `rangeinventory` | integer | 100.0% |
| `rangeSale` | `rangesale` | integer | 100.0% |
| `rangeSaleMoney` | `rangesalemoney` | number | 100.0% |
| `currentStock` | `currentstock` | integer | 100.0% |
| `categoryName` | `categoryname` | string | 100.0% |
*该表尚未建立 DWD 层映射。*
---
### 3.17 goods_stock_movements库存变化记录
- 任务代码:`ODS_INVENTORY_CHANGE`
- 采样记录数200
- ODS 列数24
- DWD 目标表:无(尚未建模)
#### JSON→ODS 映射(已映射 19/19覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteGoodsStockId` | `sitegoodsstockid` | integer | 100.0% |
| `siteGoodsId` | `sitegoodsid` | integer | 100.0% |
| `siteId` | `siteid` | integer | 100.0% |
| `tenantId` | `tenantid` | integer | 100.0% |
| `stockType` | `stocktype` | integer | 100.0% |
| `goodsName` | `goodsname` | string | 100.0% |
| `createTime` | `createtime` | string | 100.0% |
| `startNum` | `startnum` | integer | 100.0% |
| `endNum` | `endnum` | integer | 100.0% |
| `changeNum` | `changenum` | integer | 100.0% |
| `unit` | `unit` | string | 100.0% |
| `price` | `price` | number | 100.0% |
| `operatorName` | `operatorname` | string | 100.0% |
| `changeNumA` | `changenuma` | integer | 100.0% |
| `startNumA` | `startnuma` | integer | 100.0% |
| `endNumA` | `endnuma` | integer | 100.0% |
| `remark` | `remark` | string | 100.0% |
| `goodsCategoryId` | `goodscategoryid` | integer | 100.0% |
| `goodsSecondCategoryId` | `goodssecondcategoryid` | integer | 100.0% |
*该表尚未建立 DWD 层映射。*
---
### 3.18 site_tables_master台桌维表
- 任务代码:`ODS_TABLES`
- 采样记录数74
- ODS 列数31
- DWD 目标表dim_table, dim_table_ex
#### JSON→ODS 映射(已映射 26/26覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `id` | `id` | integer | 100.0% |
| `order_id` | `order_id` | integer | 100.0% |
| `audit_status` | `audit_status` | integer | 100.0% |
| `charge_free` | `charge_free` | integer | 100.0% |
| `self_table` | `self_table` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `is_rest_area` | `is_rest_area` | integer | 100.0% |
| `light_status` | `light_status` | integer | 100.0% |
| `show_status` | `show_status` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `site_table_area_id` | `site_table_area_id` | integer | 100.0% |
| `table_cloth_use_time` | `table_cloth_use_time` | integer | 100.0% |
| `table_cloth_use_Cycle` | `table_cloth_use_cycle` | integer | 100.0% |
| `virtual_table` | `virtual_table` | integer | 100.0% |
| `table_name` | `table_name` | string | 100.0% |
| `table_price` | `table_price` | number | 100.0% |
| `table_status` | `table_status` | integer | 100.0% |
| `areaName` | `areaname` | string | 100.0% |
| `siteName` | `sitename` | string | 100.0% |
| `tableStatusName` | `tablestatusname` | string | 100.0% |
| `appletQrCodeUrl` | `appletqrcodeurl` | string | 100.0% |
| `only_allow_groupon` | `only_allow_groupon` | integer | 100.0% |
| `delay_lights_time` | `delay_lights_time` | integer | 100.0% |
| `order_delay_time` | `order_delay_time` | integer | 100.0% |
| `temporary_light_second` | `temporary_light_second` | integer | 100.0% |
| `is_online_reservation` | `is_online_reservation` | integer | 100.0% |
#### ODS→DWD`dim_table`(直接 8 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `table_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_name` | TEXT | 直接 | `table_name` | 名称字段,用于展示与辅助识别 |
| `site_table_area_id` | BIGINT | 直接 | `site_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_table_area_name` | TEXT | 直接 | `areaname` | 名称字段,用于展示与辅助识别 |
| `tenant_table_area_id` | BIGINT | 直接 | `site_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_price` | NUMERIC(18,2) | 直接 | `table_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `order_id` | BIGINT | 直接 | `order_id` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_table_ex`(直接 6 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `table_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `show_status` | INTEGER | 直接 | `show_status` | 状态枚举字段,用于标识业务状态 |
| `is_online_reservation` | INTEGER | 直接 | `is_online_reservation` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `table_cloth_use_time` | INTEGER | 直接 | `table_cloth_use_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `table_cloth_use_cycle` | INTEGER | 直接 | `table_cloth_use_cycle` | 维度字段,用于补充维度属性 |
| `table_status` | INTEGER | 直接 | `table_status` | 状态枚举字段,用于标识业务状态 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.19 stock_goods_category_tree库存商品分类树
- 任务代码:`ODS_GOODS_CATEGORY`
- 采样记录数9
- ODS 列数16
- DWD 目标表dim_goods_category
#### JSON→ODS 映射(已映射 20/20覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `id` | `id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `category_name` | `category_name` | string | 100.0% |
| `alias_name` | `alias_name` | string | 100.0% |
| `pid` | `pid` | integer | 100.0% |
| `business_name` | `business_name` | string | 100.0% |
| `tenant_goods_business_id` | `tenant_goods_business_id` | integer | 100.0% |
| `open_salesman` | `open_salesman` | integer | 100.0% |
| `categoryBoxes[].id` | `id` | integer | 100.0% |
| `categoryBoxes[].tenant_id` | `tenant_id` | integer | 100.0% |
| `categoryBoxes[].category_name` | `category_name` | string | 100.0% |
| `categoryBoxes[].alias_name` | `alias_name` | string | 100.0% |
| `categoryBoxes[].pid` | `pid` | integer | 100.0% |
| `categoryBoxes[].business_name` | `business_name` | string | 100.0% |
| `categoryBoxes[].tenant_goods_business_id` | `tenant_goods_business_id` | integer | 100.0% |
| `categoryBoxes[].open_salesman` | `open_salesman` | integer | 100.0% |
| `categoryBoxes[].sort` | `sort` | integer | 100.0% |
| `categoryBoxes[].is_warehousing` | `is_warehousing` | integer | 100.0% |
| `sort` | `sort` | integer | 100.0% |
| `is_warehousing` | `is_warehousing` | integer | 100.0% |
#### ODS→DWD`dim_goods_category`(直接 10 / 派生 2 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `category_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `category_name` | VARCHAR(50) | 直接 | `category_name` | 名称字段,用于展示与辅助识别 |
| `alias_name` | VARCHAR(50) | 直接 | `alias_name` | 名称字段,用于展示与辅助识别 |
| `parent_category_id` | BIGINT | 直接 | `pid` | 标识类 ID 字段,用于关联/定位相关实体 |
| `business_name` | VARCHAR(50) | 直接 | `business_name` | 名称字段,用于展示与辅助识别 |
| `tenant_goods_business_id` | BIGINT | 直接 | `tenant_goods_business_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `category_level` | INTEGER | 派生 | `CASE` | 维度字段,用于补充维度属性 |
| `is_leaf` | INTEGER | 派生 | `CASE` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `open_salesman` | INTEGER | 直接 | `open_salesman` | 维度字段,用于补充维度属性 |
| `sort_order` | INTEGER | 直接 | `sort` | 维度字段,用于补充维度属性 |
| `is_warehousing` | INTEGER | 直接 | `is_warehousing` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.20 store_goods_master门店商品档案
- 任务代码:`ODS_STORE_GOODS`
- 采样记录数173
- ODS 列数52
- DWD 目标表dim_store_goods, dim_store_goods_ex
#### JSON→ODS 映射(已映射 48/53覆盖率 90.6%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `siteName` | `sitename` | string | 100.0% |
| `oneCategoryName` | `onecategoryname` | string | 100.0% |
| `twoCategoryName` | `twocategoryname` | string | 100.0% |
| `goodsStockWarningInfo.tenant_goods_id` | `tenant_goods_id` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `able_discount` | `able_discount` | integer | 100.0% |
| `able_site_transfer` | `able_site_transfer` | integer | 100.0% |
| `audit_status` | `audit_status` | integer | 100.0% |
| `average_monthly_sales` | `average_monthly_sales` | number | 100.0% |
| `batch_stock_quantity` | `batch_stock_quantity` | integer | 100.0% |
| `commodity_code` | `commodity_code` | string | 100.0% |
| `cost_price` | `cost_price` | number | 100.0% |
| `cost_price_type` | `cost_price_type` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `custom_label_type` | `custom_label_type` | integer | 100.0% |
| `days_available` | `days_available` | integer | 100.0% |
| `enable_status` | `enable_status` | integer | 100.0% |
| `forbid_sell_status` | `forbid_sell_status` | integer | 100.0% |
| `freeze` | `freeze` | integer | 100.0% |
| `goods_bar_code` | `goods_bar_code` | string | 100.0% |
| `goods_category_id` | `goods_category_id` | integer | 100.0% |
| `goods_cover` | `goods_cover` | string | 100.0% |
| `goods_name` | `goods_name` | string | 100.0% |
| `goods_second_category_id` | `goods_second_category_id` | integer | 100.0% |
| `goods_state` | `goods_state` | integer | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_warehousing` | `is_warehousing` | integer | 100.0% |
| `min_discount_price` | `min_discount_price` | number | 100.0% |
| `not_sale` | `not_sale` | integer | 100.0% |
| `option_required` | `option_required` | integer | 100.0% |
| `pinyin_initial` | `pinyin_initial` | string | 100.0% |
| `provisional_total_cost` | `provisional_total_cost` | number | 100.0% |
| `remark` | `remark` | string | 100.0% |
| `safe_stock` | `safe_stock` | integer | 100.0% |
| `sale_channel` | `sale_channel` | string | 100.0% |
| `sale_num` | `sale_num` | integer | 100.0% |
| `sale_price` | `sale_price` | number | 100.0% |
| `send_state` | `send_state` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `sort` | `sort` | integer | 100.0% |
| `stock` | `stock` | integer | 100.0% |
| `stock_A` | `stock_a` | integer | 100.0% |
| `tenant_goods_id` | `tenant_goods_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `total_purchase_cost` | `total_purchase_cost` | number | 100.0% |
| `total_sales` | `total_sales` | integer | 100.0% |
| `unit` | `unit` | string | 100.0% |
| `update_time` | `update_time` | string | 100.0% |
<details><summary>仅存于 payload 的字段5 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `goodsStockWarningInfo.site_goods_id` | integer | 100.0% |
| `goodsStockWarningInfo.sales_day` | number | 100.0% |
| `goodsStockWarningInfo.warning_day_max` | integer | 100.0% |
| `goodsStockWarningInfo.warning_day_min` | integer | 100.0% |
| `time_slot_sale` | integer | 100.0% |
</details>
#### ODS→DWD`dim_store_goods`(直接 22 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `site_goods_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_goods_id` | BIGINT | 直接 | `tenant_goods_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `goods_name` | TEXT | 直接 | `goods_name` | 名称字段,用于展示与辅助识别 |
| `goods_category_id` | BIGINT | 直接 | `goods_category_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `goods_second_category_id` | BIGINT | 直接 | `goods_second_category_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `category_level1_name` | TEXT | 直接 | `onecategoryname` | 名称字段,用于展示与辅助识别 |
| `category_level2_name` | TEXT | 直接 | `twocategoryname` | 名称字段,用于展示与辅助识别 |
| `batch_stock_qty` | INTEGER | 直接 | `stock` | 数量/时长字段,用于统计与计量 |
| `sale_qty` | INTEGER | 直接 | `sale_num` | 数量/时长字段,用于统计与计量 |
| `total_sales_qty` | INTEGER | 直接 | `total_sales` | 数量/时长字段,用于统计与计量 |
| `sale_price` | NUMERIC(18,2) | 直接 | `sale_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `created_at` | TIMESTAMPTZ | 直接 | `create_time` | 维度字段,用于补充维度属性 |
| `updated_at` | TIMESTAMPTZ | 直接 | `update_time` | 维度字段,用于补充维度属性 |
| `avg_monthly_sales` | NUMERIC(18,4) | 直接 | `average_monthly_sales` | 维度字段,用于补充维度属性 |
| `goods_state` | INTEGER | 直接 | `goods_state` | 维度字段,用于补充维度属性 |
| `enable_status` | INTEGER | 直接 | `enable_status` | 状态枚举字段,用于标识业务状态 |
| `send_state` | INTEGER | 直接 | `send_state` | 维度字段,用于补充维度属性 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `commodity_code` | TEXT | 直接 | `commodity_code` | |
| `not_sale` | INTEGER | 直接 | `not_sale` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_store_goods_ex`(直接 26 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `site_goods_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_name` | TEXT | 直接 | `sitename` | 名称字段,用于展示与辅助识别 |
| `unit` | TEXT | 直接 | `unit` | 维度字段,用于补充维度属性 |
| `goods_barcode` | TEXT | 直接 | `goods_bar_code` | 维度字段,用于补充维度属性 |
| `goods_cover_url` | TEXT | 直接 | `goods_cover` | 维度字段,用于补充维度属性 |
| `pinyin_initial` | TEXT | 直接 | `pinyin_initial` | 维度字段,用于补充维度属性 |
| `stock_qty` | INTEGER | 直接 | `stock` | 数量/时长字段,用于统计与计量 |
| `stock_secondary_qty` | INTEGER | 直接 | `stock_a` | 数量/时长字段,用于统计与计量 |
| `safety_stock_qty` | INTEGER | 直接 | `safe_stock` | 数量/时长字段,用于统计与计量 |
| `cost_price` | NUMERIC(18,4) | 直接 | `cost_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `cost_price_type` | INTEGER | 直接 | `cost_price_type` | 金额字段,用于计费/结算/核算等金额计算 |
| `provisional_total_cost` | NUMERIC(18,2) | 直接 | `total_purchase_cost` | 金额字段,用于计费/结算/核算等金额计算 |
| `total_purchase_cost` | NUMERIC(18,2) | 直接 | `total_purchase_cost` | 金额字段,用于计费/结算/核算等金额计算 |
| `min_discount_price` | NUMERIC(18,2) | 直接 | `min_discount_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `is_discountable` | INTEGER | 直接 | `able_discount` | 数量/时长字段,用于统计与计量 |
| `days_on_shelf` | INTEGER | 直接 | `days_available` | 维度字段,用于补充维度属性 |
| `audit_status` | INTEGER | 直接 | `audit_status` | 状态枚举字段,用于标识业务状态 |
| `sale_channel` | INTEGER | 直接 | `sale_channel` | 维度字段,用于补充维度属性 |
| `is_warehousing` | INTEGER | 直接 | `is_warehousing` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `freeze_status` | INTEGER | 直接 | `freeze` | 状态枚举字段,用于标识业务状态 |
| `forbid_sell_status` | INTEGER | 直接 | `forbid_sell_status` | 状态枚举字段,用于标识业务状态 |
| `able_site_transfer` | INTEGER | 直接 | `able_site_transfer` | 维度字段,用于补充维度属性 |
| `custom_label_type` | INTEGER | 直接 | `custom_label_type` | 维度字段,用于补充维度属性 |
| `option_required` | INTEGER | 直接 | `option_required` | 维度字段,用于补充维度属性 |
| `remark` | TEXT | 直接 | `remark` | 维度字段,用于补充维度属性 |
| `sort_order` | INTEGER | 直接 | `sort` | 维度字段,用于补充维度属性 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.21 table_fee_discount_records台费折扣/调账)
- 任务代码:`ODS_TABLE_FEE_DISCOUNT`
- 采样记录数200
- ODS 列数33
- DWD 目标表dwd_table_fee_adjust, dwd_table_fee_adjust_ex
#### JSON→ODS 映射(已映射 30/55覆盖率 54.5%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `tableProfile.id` | `id` | integer | 100.0% |
| `tableProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `tableProfile.tenant_name` | `tenant_name` | string | 100.0% |
| `tableProfile.siteName` | `sitename` | string | 100.0% |
| `tableProfile.table_name` | `table_name` | string | 100.0% |
| `tableProfile.site_table_area_id` | `site_table_area_id` | integer | 100.0% |
| `tableProfile.area_type_id` | `area_type_id` | integer | 100.0% |
| `tableProfile.table_price` | `table_price` | number | 100.0% |
| `tableProfile.site_table_area_name` | `site_table_area_name` | string | 100.0% |
| `tableProfile.charge_free` | `charge_free` | integer | 100.0% |
| `siteProfile.id` | `id` | integer | 100.0% |
| `siteProfile.tenant_id` | `tenant_id` | integer | 100.0% |
| `id` | `id` | integer | 100.0% |
| `adjust_type` | `adjust_type` | integer | 100.0% |
| `applicant_id` | `applicant_id` | integer | 100.0% |
| `applicant_name` | `applicant_name` | string | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `ledger_amount` | `ledger_amount` | number | 100.0% |
| `ledger_count` | `ledger_count` | integer | 100.0% |
| `ledger_name` | `ledger_name` | string | 100.0% |
| `ledger_status` | `ledger_status` | integer | 100.0% |
| `operator_id` | `operator_id` | integer | 100.0% |
| `operator_name` | `operator_name` | string | 100.0% |
| `order_settle_id` | `order_settle_id` | integer | 100.0% |
| `order_trade_no` | `order_trade_no` | integer | 100.0% |
| `site_id` | `site_id` | integer | 100.0% |
| `site_table_id` | `site_table_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `tenant_table_area_id` | `tenant_table_area_id` | integer | 100.0% |
<details><summary>仅存于 payload 的字段25 个)</summary>
| JSON 路径 | JSON 类型 | 出现率 |
|----------|----------|-------|
| `tableProfile.ewelink_client_id` | string | 100.0% |
| `siteProfile.org_id` | integer | 100.0% |
| `siteProfile.shop_name` | string | 100.0% |
| `siteProfile.avatar` | string | 100.0% |
| `siteProfile.business_tel` | string | 100.0% |
| `siteProfile.full_address` | string | 100.0% |
| `siteProfile.address` | string | 100.0% |
| `siteProfile.longitude` | number | 100.0% |
| `siteProfile.latitude` | number | 100.0% |
| `siteProfile.tenant_site_region_id` | integer | 100.0% |
| `siteProfile.auto_light` | integer | 100.0% |
| `siteProfile.attendance_distance` | integer | 100.0% |
| `siteProfile.wifi_name` | string | 100.0% |
| `siteProfile.wifi_password` | string | 100.0% |
| `siteProfile.customer_service_qrcode` | string | 100.0% |
| `siteProfile.customer_service_wechat` | string | 100.0% |
| `siteProfile.fixed_pay_qrCode` | string | 100.0% |
| `siteProfile.prod_env` | integer | 100.0% |
| `siteProfile.light_status` | integer | 100.0% |
| `siteProfile.light_type` | integer | 100.0% |
| `siteProfile.site_type` | integer | 100.0% |
| `siteProfile.light_token` | string | 100.0% |
| `siteProfile.site_label` | string | 100.0% |
| `siteProfile.attendance_enabled` | integer | 100.0% |
| `siteProfile.shop_status` | integer | 100.0% |
</details>
#### ODS→DWD`dwd_table_fee_adjust`(直接 15 / 派生 1 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `table_fee_adjust_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `order_trade_no` | BIGINT | 直接 | `order_trade_no` | 明细字段,用于记录事实取值 |
| `order_settle_id` | BIGINT | 直接 | `order_settle_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `site_id` | BIGINT | 直接 | `site_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_id` | BIGINT | 直接 | `site_table_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_area_id` | BIGINT | 直接 | `tenant_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `table_area_name` | VARCHAR(64) | 派生 | `tableprofile.table_area_name` | 名称字段,用于展示与辅助识别 |
| `tenant_table_area_id` | BIGINT | 直接 | `tenant_table_area_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `ledger_amount` | NUMERIC(18,2) | 直接 | `ledger_amount` | 金额字段,用于计费/结算/核算等金额计算 |
| `ledger_status` | INTEGER | 直接 | `ledger_status` | 状态枚举字段,用于标识业务状态 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `adjust_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `table_name` | TEXT | 直接 | `table_name` | |
| `table_price` | NUMERIC(18,2) | 直接 | `table_price` | |
| `charge_free` | BOOLEAN | 直接 | `charge_free` | |
#### ODS→DWD`dwd_table_fee_adjust_ex`(直接 12 / 派生 1 / SCD2 0
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `table_fee_adjust_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `adjust_type` | INTEGER | 直接 | `adjust_type` | 明细字段,用于记录事实取值 |
| `ledger_count` | INTEGER | 直接 | `ledger_count` | 数量/时长字段,用于统计与计量 |
| `ledger_name` | VARCHAR(128) | 直接 | `ledger_name` | 名称字段,用于展示与辅助识别 |
| `applicant_name` | VARCHAR(64) | 直接 | `applicant_name` | 名称字段,用于展示与辅助识别 |
| `operator_name` | VARCHAR(64) | 直接 | `operator_name` | 名称字段,用于展示与辅助识别 |
| `applicant_id` | BIGINT | 直接 | `applicant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `operator_id` | BIGINT | 直接 | `operator_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `area_type_id` | BIGINT | 直接 | `area_type_id` | |
| `site_table_area_id` | BIGINT | 直接 | `site_table_area_id` | |
| `site_table_area_name` | TEXT | 直接 | `site_table_area_name` | |
| `site_name` | TEXT | 派生 | `—` | |
| `tenant_name` | TEXT | 直接 | `tenant_name` | |
---
### 3.22 tenant_goods_master租户商品档案
- 任务代码:`ODS_TENANT_GOODS`
- 采样记录数174
- ODS 列数37
- DWD 目标表dim_tenant_goods, dim_tenant_goods_ex
#### JSON→ODS 映射(已映射 32/32覆盖率 100.0%
| JSON 路径 | ODS 列名 | JSON 类型 | 出现率 |
|----------|---------|----------|-------|
| `categoryName` | `categoryname` | string | 100.0% |
| `isInSite` | `isinsite` | boolean | 100.0% |
| `commodityCode[]` | `commoditycode` | string | 100.0% |
| `id` | `id` | integer | 100.0% |
| `able_discount` | `able_discount` | integer | 100.0% |
| `able_site_transfer` | `able_site_transfer` | integer | 100.0% |
| `commodity_code` | `commodity_code` | string | 100.0% |
| `common_sale_royalty` | `common_sale_royalty` | integer | 100.0% |
| `cost_price` | `cost_price` | number | 100.0% |
| `cost_price_type` | `cost_price_type` | integer | 100.0% |
| `create_time` | `create_time` | string | 100.0% |
| `goods_bar_code` | `goods_bar_code` | string | 100.0% |
| `goods_category_id` | `goods_category_id` | integer | 100.0% |
| `goods_cover` | `goods_cover` | string | 100.0% |
| `goods_name` | `goods_name` | string | 100.0% |
| `goods_number` | `goods_number` | string | 100.0% |
| `goods_second_category_id` | `goods_second_category_id` | integer | 100.0% |
| `goods_state` | `goods_state` | integer | 100.0% |
| `is_delete` | `is_delete` | integer | 100.0% |
| `is_warehousing` | `is_warehousing` | integer | 100.0% |
| `market_price` | `market_price` | number | 100.0% |
| `min_discount_price` | `min_discount_price` | number | 100.0% |
| `not_sale` | `not_sale` | integer | 100.0% |
| `out_goods_id` | `out_goods_id` | integer | 100.0% |
| `pinyin_initial` | `pinyin_initial` | string | 100.0% |
| `point_sale_royalty` | `point_sale_royalty` | integer | 100.0% |
| `remark_name` | `remark_name` | string | 100.0% |
| `sale_channel` | `sale_channel` | string | 100.0% |
| `supplier_id` | `supplier_id` | integer | 100.0% |
| `tenant_id` | `tenant_id` | integer | 100.0% |
| `unit` | `unit` | string | 100.0% |
| `update_time` | `update_time` | string | 83.3% |
#### ODS→DWD`dim_tenant_goods`(直接 15 / 派生 0 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `tenant_goods_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `tenant_id` | BIGINT | 直接 | `tenant_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `supplier_id` | BIGINT | 直接 | `supplier_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `category_name` | VARCHAR(64) | 直接 | `categoryname` | 名称字段,用于展示与辅助识别 |
| `goods_category_id` | BIGINT | 直接 | `goods_category_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `goods_second_category_id` | BIGINT | 直接 | `goods_second_category_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `goods_name` | VARCHAR(128) | 直接 | `goods_name` | 名称字段,用于展示与辅助识别 |
| `goods_number` | VARCHAR(64) | 直接 | `goods_number` | 数量/时长字段,用于统计与计量 |
| `unit` | VARCHAR(16) | 直接 | `unit` | 维度字段,用于补充维度属性 |
| `market_price` | NUMERIC(18,2) | 直接 | `market_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `goods_state` | INTEGER | 直接 | `goods_state` | 维度字段,用于补充维度属性 |
| `create_time` | TIMESTAMPTZ | 直接 | `create_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `update_time` | TIMESTAMPTZ | 直接 | `update_time` | 时间/日期字段,用于记录业务时间与统计口径对齐 |
| `is_delete` | INTEGER | 直接 | `is_delete` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `not_sale` | INTEGER | 直接 | `not_sale` | |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
#### ODS→DWD`dim_tenant_goods_ex`(直接 17 / 派生 1 / SCD2 4
| DWD 列名 | 类型 | 映射类型 | ODS 来源 | 说明 |
|---------|------|---------|---------|------|
| `tenant_goods_id` | BIGINT | 直接 | `id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `remark_name` | VARCHAR(128) | 直接 | `remark_name` | 名称字段,用于展示与辅助识别 |
| `pinyin_initial` | VARCHAR(128) | 直接 | `pinyin_initial` | 维度字段,用于补充维度属性 |
| `goods_cover` | VARCHAR(512) | 直接 | `goods_cover` | 维度字段,用于补充维度属性 |
| `goods_bar_code` | VARCHAR(64) | 直接 | `goods_bar_code` | 维度字段,用于补充维度属性 |
| `commodity_code` | VARCHAR(64) | 直接 | `commodity_code` | 维度字段,用于补充维度属性 |
| `commodity_code_list` | VARCHAR(256) | 直接 | `commodity_code` | 维度字段,用于补充维度属性 |
| `min_discount_price` | NUMERIC(18,2) | 直接 | `min_discount_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `cost_price` | NUMERIC(18,2) | 直接 | `cost_price` | 金额字段,用于计费/结算/核算等金额计算 |
| `cost_price_type` | INTEGER | 直接 | `cost_price_type` | 金额字段,用于计费/结算/核算等金额计算 |
| `able_discount` | INTEGER | 直接 | `able_discount` | 数量/时长字段,用于统计与计量 |
| `sale_channel` | INTEGER | 直接 | `sale_channel` | 维度字段,用于补充维度属性 |
| `is_warehousing` | INTEGER | 直接 | `is_warehousing` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `is_in_site` | BOOLEAN | 派生 | `isInSite派生BOOLEAN(isInSite)` | 布尔/开关字段,用于表示是否/可用性等业务开关 |
| `able_site_transfer` | INTEGER | 直接 | `able_site_transfer` | 维度字段,用于补充维度属性 |
| `common_sale_royalty` | INTEGER | 直接 | `common_sale_royalty` | 维度字段,用于补充维度属性 |
| `point_sale_royalty` | INTEGER | 直接 | `point_sale_royalty` | 维度字段,用于补充维度属性 |
| `out_goods_id` | BIGINT | 直接 | `out_goods_id` | 标识类 ID 字段,用于关联/定位相关实体 |
| `scd2_start_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 开始时间(版本生效起点),用于维度慢变追踪 |
| `scd2_end_time` | TIMESTAMPTZ | SCD2 | `—` | SCD2 结束时间(默认 9999-12-31 表示当前版本),用于维度慢变追踪 |
| `scd2_is_current` | INT | SCD2 | `—` | SCD2 当前版本标记1=当前0=历史),用于筛选最新维度记录 |
| `scd2_version` | INT | SCD2 | `—` | SCD2 版本号(自增),用于与时间段一起避免版本重叠 |
---
### 3.23 settlement_ticket_details结账小票详情
- 任务代码:`ODS_SETTLEMENT_TICKET`
- 采样记录数0
- ODS 列数43
- DWD 目标表:无(尚未建模)
#### JSON→ODS 映射(已映射 0/0覆盖率 —)
*该表尚未建立 DWD 层映射。*
---
## 4. 附录
### 4.1 数据流架构
```
上游 SaaS API → JSON 采集 → ODS原始层 → DWD明细层 → DWS汇总层
↓ ↓
payload jsonb 维度: SCD2
+ 展平列 事实: 增量追加
```
### 4.2 ODS→DWD 表名映射一览
| ODS 表 | DWD 目标表 |
|--------|-----------|
| `assistant_accounts_master` | dim_assistant, dim_assistant_ex |
| `assistant_cancellation_records` | dwd_assistant_trash_event, dwd_assistant_trash_event_ex |
| `assistant_service_records` | dwd_assistant_service_log, dwd_assistant_service_log_ex |
| `goods_stock_movements` | —(尚未建模) |
| `goods_stock_summary` | —(尚未建模) |
| `group_buy_packages` | dim_groupbuy_package, dim_groupbuy_package_ex |
| `group_buy_redemption_records` | dwd_groupbuy_redemption, dwd_groupbuy_redemption_ex |
| `member_balance_changes` | dwd_member_balance_change, dwd_member_balance_change_ex |
| `member_profiles` | dim_member, dim_member_ex |
| `member_stored_value_cards` | dim_member_card_account, dim_member_card_account_ex |
| `payment_transactions` | dwd_payment |
| `platform_coupon_redemption_records` | dwd_platform_coupon_redemption, dwd_platform_coupon_redemption_ex |
| `recharge_settlements` | dwd_recharge_order, dwd_recharge_order_ex |
| `refund_transactions` | dwd_refund |
| `settlement_records` | dwd_settlement_head, dwd_settlement_head_ex |
| `settlement_ticket_details` | —(尚未建模) |
| `site_tables_master` | dim_table, dim_table_ex |
| `stock_goods_category_tree` | dim_goods_category |
| `store_goods_master` | dim_store_goods, dim_store_goods_ex |
| `store_goods_sales_records` | dwd_store_goods_sale, dwd_store_goods_sale_ex |
| `table_fee_discount_records` | dwd_table_fee_adjust, dwd_table_fee_adjust_ex |
| `table_fee_transactions` | dim_site, dim_site_ex, dwd_table_fee_log, dwd_table_fee_log_ex |
| `tenant_goods_master` | dim_tenant_goods, dim_tenant_goods_ex |
### 4.3 SCD2 版本控制列说明
| 列名 | 说明 |
|------|------|
| `scd2_start_time` | 版本生效起点 |
| `scd2_end_time` | 版本失效时间9999-12-31 表示当前版本) |
| `scd2_is_current` | 当前版本标记1=当前0=历史) |
| `scd2_version` | 版本号(自增) |
### 4.4 ETL 元数据列说明
| 列名 | 说明 |
|------|------|
| `content_hash` | 记录内容哈希,用于去重 |
| `source_file` | 数据来源文件(离线模式) |
| `source_endpoint` | API 端点 |
| `fetched_at` | 采集时间 |
| `payload` | 原始 JSONjsonb保留完整上游数据 |