|
|
@@ -16,7 +16,7 @@
|
|
|
|
|
|
### 1.3 维度退化策略
|
|
|
|
|
|
-DWD 直引 DIM 层已清洗字段,**不在 DWD 二次清洗、不做空值兜底**。如 `cgi.sport` 脏数据归一在 `dim_trd_card_group_ful_d` 完成(见 `28-dim建模.md §3.2`),DWD pay 维度退化时直引 DIM 已清洗的 `sport`。
|
|
|
+DWD 直引 DIM 层已清洗字段,**不在 DWD 二次清洗、不做空值兜底**。如 `cgi.sport` 脏数据归一在 `dim_trd_card_group_ful_d` 完成(见 `28-dim建模.md §3.2`),DWD pay 维度退化时直引 DIM 已清洗的 `category`。
|
|
|
|
|
|
### 1.4 分区与写入
|
|
|
|
|
|
@@ -56,18 +56,51 @@ WHERE order_type = 'group'
|
|
|
|
|
|
DWD 不二次清洗 category(`dim_trd_card_group_ful_d` 已归一脏数据)。**不带大类 `main_category`**(业务侧定:拼团大类 lv1 业务库原名 `first_sport`,1 期不引,2 期再讨论)。
|
|
|
|
|
|
-### 2.5 accounts_payable_cny 派生规则
|
|
|
+### 2.5 金额字段 mer_act% 修正规则
|
|
|
|
|
|
-业务库分/元单位混存,按 `point_type` 区分换算:
|
|
|
+业务库 `card_group_order_info` 部分金额字段在 `point_type LIKE 'mer_act%'` 时为分单位(积分支付场景),其他时为元单位。DWD 按下表派生统一为元单位(`_amt_cny` 后缀)。
|
|
|
+
|
|
|
+**通式**:
|
|
|
+
|
|
|
+```sql
|
|
|
+CASE
|
|
|
+ WHEN cgoi.point_type LIKE 'mer_act%' THEN ROUND(cgoi.{业务库字段} / 100.00, 2)
|
|
|
+ ELSE cgoi.{业务库字段}
|
|
|
+END AS {dwd 字段}
|
|
|
+```
|
|
|
+
|
|
|
+**派生映射**:
|
|
|
+
|
|
|
+| 业务库字段 | DWD 字段 | 公式 | 业务含义 |
|
|
|
+|---|---|---|---|
|
|
|
+| accounts_payable | payable_amt_cny | 通式 | **GMV** |
|
|
|
+| actual_payment / point | pay_amt_cny | 特例(见下)| **Net Revenue(购买偏好口径)**|
|
|
|
+| trade_amount | trade_amt_cny | 通式 | 订单交易金额 |
|
|
|
+| settlement_amount | settle_amt_cny | 通式 | 结算金额(支付那一刻 = 实付,_apd_d 不更新)|
|
|
|
+| card_price | card_price_cny | 通式 | 单价应付 |
|
|
|
+| act_price | act_price_cny | 通式 | 单价实付 |
|
|
|
+| discount | discount_amt_cny | 通式 | 商家优惠券抵扣 |
|
|
|
+| platform_discount | platform_discount_amt_cny | 通式 | 平台券抵扣 |
|
|
|
+| act_discount | act_discount_amt_cny | 通式 | 活动折扣(首单等)|
|
|
|
+| member_discount | member_discount_amt_cny | 通式 | 会员折扣 |
|
|
|
+| point_deduct | point_deduct_amt_cny | 通式 | 积分抵扣金额 |
|
|
|
+
|
|
|
+**Net Revenue 特例**(mer_act% 时换字段,不是同字段除 100):
|
|
|
|
|
|
```sql
|
|
|
CASE
|
|
|
- WHEN cgoi.point_type LIKE 'mer_act%' THEN ROUND(cgoi.accounts_payable / 100.00, 2)
|
|
|
- ELSE cgoi.accounts_payable
|
|
|
-END AS accounts_payable_cny
|
|
|
+ WHEN cgoi.point_type LIKE 'mer_act%' THEN ROUND(cgoi.point / 100.00, 2)
|
|
|
+ ELSE cgoi.actual_payment
|
|
|
+END AS pay_amt_cny
|
|
|
```
|
|
|
|
|
|
-`point_type LIKE 'mer_act%'` 时除 100,其他直取。**DWD 内置该规则,下游不再处理**。GMV 口径走该字段。
|
|
|
+mer_act% 时用 `point/100`(积分支付场景:积分本质是分单位价格),其他时用 `actual_payment`。
|
|
|
+
|
|
|
+**直取不派生**:`shipping_cost` → `shipping_amt_cny`、`shipping_free_amount` → `shipping_free_amt_cny`(业务侧未给修正逻辑,按元单位直取)。
|
|
|
+
|
|
|
+**待业务确认**:`discount_amount` 业务库注释仅"折扣金额",与 `discount` 语义区别 + 是否需 mer_act% 修正 + 最终命名待业务答复。
|
|
|
+
|
|
|
+DWD 内置以上派生规则,下游不再处理。
|
|
|
|
|
|
### 2.6 字段表
|
|
|
|
|
|
@@ -88,22 +121,22 @@ END AS accounts_payable_cny
|
|
|
| 拼团维度退化 | sets | STRING | dim_trd_card_group | 系列 |
|
|
|
| 拼团维度退化 | year | STRING | dim_trd_card_group | 年份(赛季)|
|
|
|
| 收货 | shipping_address_id | BIGINT | order | |
|
|
|
-| 数量 | purchase_count | BIGINT | order | 购买份数 |
|
|
|
-| 数量 | give_num | BIGINT | order | 赠送个数 |
|
|
|
-| 金额 | accounts_payable_cny | DECIMAL(20,4) | 派生(见 §2.5)| **GMV 字段** |
|
|
|
-| 金额 | actual_payment_cny | DECIMAL(20,4) | order.actual_payment | 实付款(GMV 不用此字段,保留作冗余)|
|
|
|
-| 金额 | trade_amount_cny | DECIMAL(20,4) | order | 订单交易金额 |
|
|
|
-| 金额 | settlement_amount_cny | DECIMAL(20,4) | order | 结算金额(实付-退款)|
|
|
|
-| 金额 | card_price_cny | DECIMAL(20,4) | order | 应付款(拼团时点价)|
|
|
|
-| 金额 | act_price_cny | DECIMAL(20,4) | order | 应付款(活动价)|
|
|
|
-| 金额 | discount_cny | DECIMAL(20,4) | order | 折扣 |
|
|
|
-| 金额 | discount_amount_cny | DECIMAL(20,4) | order | 折扣金额 |
|
|
|
-| 金额 | platform_discount_cny | DECIMAL(20,4) | order | 平台券折扣 |
|
|
|
-| 金额 | member_discount_cny | DECIMAL(20,4) | order | 会员折扣 |
|
|
|
-| 金额 | act_discount_cny | DECIMAL(20,4) | order | 活动折扣 |
|
|
|
-| 金额 | point_deduct_cny | DECIMAL(20,4) | order | 积分抵扣金额 |
|
|
|
-| 金额 | shipping_cost_cny | DECIMAL(20,4) | order | 运费 |
|
|
|
-| 金额 | shipping_free_amount_cny | DECIMAL(20,4) | order | 运费券金额 |
|
|
|
+| 数量 | purchase_cnt | BIGINT | order.purchase_count | 购买份数 |
|
|
|
+| 数量 | give_cnt | BIGINT | order.give_num | 赠送个数 |
|
|
|
+| 金额 | payable_amt_cny | DECIMAL(20,4) | 派生 accounts_payable(见 §2.5)| **GMV** |
|
|
|
+| 金额 | pay_amt_cny | DECIMAL(20,4) | 派生 actual_payment / point(见 §2.5)| **Net Revenue(购买偏好口径)**|
|
|
|
+| 金额 | trade_amt_cny | DECIMAL(20,4) | 派生 trade_amount | 订单交易金额 |
|
|
|
+| 金额 | settle_amt_cny | DECIMAL(20,4) | 派生 settlement_amount | 结算金额(支付那一刻=实付,_apd_d 不更新)|
|
|
|
+| 金额 | card_price_cny | DECIMAL(20,4) | 派生 card_price | 单价应付 |
|
|
|
+| 金额 | act_price_cny | DECIMAL(20,4) | 派生 act_price | 单价实付 |
|
|
|
+| 金额 | discount_amt_cny | DECIMAL(20,4) | 派生 discount | 商家优惠券抵扣 |
|
|
|
+| 金额 | platform_discount_amt_cny | DECIMAL(20,4) | 派生 platform_discount | 平台券抵扣 |
|
|
|
+| 金额 | member_discount_amt_cny | DECIMAL(20,4) | 派生 member_discount | 会员折扣 |
|
|
|
+| 金额 | act_discount_amt_cny | DECIMAL(20,4) | 派生 act_discount | 活动折扣 |
|
|
|
+| 金额 | point_deduct_amt_cny | DECIMAL(20,4) | 派生 point_deduct | 积分抵扣金额 |
|
|
|
+| 金额 | shipping_amt_cny | DECIMAL(20,4) | order.shipping_cost | 运费(直取不派生)|
|
|
|
+| 金额 | shipping_free_amt_cny | DECIMAL(20,4) | order.shipping_free_amount | 运费券金额(直取不派生)|
|
|
|
+| 金额 | discount_amount ❓ | DECIMAL(20,4) | order.discount_amount | 折扣金额(业务库注释仅"折扣金额"未明确,与 discount 语义区别 + 是否派生 + 最终命名待业务答复)|
|
|
|
| 积分 | point | BIGINT | order | 消耗积分 |
|
|
|
| 积分 | discount_point | BIGINT | order | 折扣积分 |
|
|
|
| 优惠券 | coupon | BIGINT | order | 优惠券 id |
|
|
|
@@ -119,20 +152,14 @@ END AS accounts_payable_cny
|
|
|
| 业务标记 | order_type | STRING | order | 订单类型 |
|
|
|
| 业务标记 | order_sub_type | STRING | order | 订单子类型(含赠与)|
|
|
|
| 业务标记 | give_user_code | STRING | order | 赠与人 |
|
|
|
-| 业务标记 | status | BIGINT | order | 订单状态 |
|
|
|
-| 业务标记 | serve_status | BIGINT | order | 业务状态 |
|
|
|
-| 业务标记 | refuse_status | TINYINT | order | 是否接受累积发货 |
|
|
|
-| 业务标记 | invoice_id | BIGINT | order | 发票记录 id |
|
|
|
| 业务标记 | anonymous | BOOLEAN | order | 是否匿名 |
|
|
|
| 业务标记 | pick_up_type | STRING | order | 提货方式 |
|
|
|
| 业务标记 | point_type | STRING | order | 使用积分类型 |
|
|
|
-| 业务标记 | open_self | TINYINT | order | 是否商家代拆 |
|
|
|
-| 业务标记 | goods_allocate | TINYINT | order | 卡密是否分配 |
|
|
|
-| 风控 | waring_type | STRING | order | 风险异常类型 |
|
|
|
-| 风控 | waring_status | TINYINT | order | 风险异常状态 |
|
|
|
+| 业务标记 | open_self | TINYINT | order | 是否商家代拆(默认 0,1=商家待拆)|
|
|
|
| 时间 | order_create_time | TIMESTAMP | order.create_time | 下单时间 |
|
|
|
-| 时间 | order_update_time | TIMESTAMP | order.update_time | 订单最近更新时间 |
|
|
|
| 时间 | expire_time | TIMESTAMP | order | 过期时间 |
|
|
|
| 软删 | is_deleted | BOOLEAN | order | 软删归一 |
|
|
|
| 框架 | etl_time | TIMESTAMP | 派生 | ETL 处理时间 |
|
|
|
| 分区 | dt | STRING | `DATE(payment_success_time)` | **业务时间分区**|
|
|
|
+
|
|
|
+> **未纳入字段**(按事件不可变设计,归 `dim_trd_order_zip_d` 拉链或后续业务事件表):`status` / `serve_status` / `update_time` / `refuse_status` / `waring_type` / `waring_status` / `goods_allocate` / `invoice_id`。
|