# 飞球连接器 — 数据流结构分析报告 > 生成时间: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 列:844(79.1%) - 仅存于 payload:223(20.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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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_before),ET | #### 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% |
仅存于 payload 的字段(24 个) | 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% |
#### 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% |
仅存于 payload 的字段(1 个) | JSON 路径 | JSON 类型 | 出现率 | |----------|----------|-------| | `tableAreaNameList[]` | string | 100.0% |
#### 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% |
仅存于 payload 的字段(5 个) | 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% |
#### 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% |
仅存于 payload 的字段(25 个) | 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% |
#### 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` | 原始 JSON(jsonb),保留完整上游数据 |