Explorar o código

docs(kb): 加 24-raw 建模——card_group_order_info 字段裁剪三态决策

tianyu.chu hai 1 semana
pai
achega
081f8cedfe
Modificáronse 2 ficheiros con 107 adicións e 0 borrados
  1. 1 0
      README.md
  2. 106 0
      kb/24-raw建模.md

+ 1 - 0
README.md

@@ -86,6 +86,7 @@ PG/ES ──DataX(raw)──> RAW ──> ODS ──> DWD ──> DWS ──> TD
 | [21-命名规范](kb/21-命名规范.md) | **命名规则**:Hive 表 / 字段 / 词根字典 + 建表 Checklist |
 | [22-指标体系](kb/22-指标体系.md) | **指标字典**:指标 / 维度 / 度量定义与口径 |
 | [23-标签体系](kb/23-标签体系.md) | **TDM 画像**:用户 / 商品 / 商家标签 |
+| [24-raw 建模](kb/24-raw建模.md) | **raw 层字段裁剪决策**:各 raw 表三态标记(保留 / 明性裁 / 隐性裁)+ 决策理由溯源 |
 
 ### 3x 开发流程
 

+ 106 - 0
kb/24-raw建模.md

@@ -0,0 +1,106 @@
+# raw 层建模决策
+
+> 各 raw 表字段裁剪决策记录。每张表按"保留 / 明性裁 / 隐性裁"三态标记字段,决策依据明确化,避免接手者误裁 / 漏裁,并为下一轮重构 / 业务变更提供溯源依据。
+>
+> **三态定义**:
+>
+> - **保留**:入仓字段(raw 层全字段 STRING,见 `kb/20-数仓分层与建模.md §8.1`)
+> - **明性裁**:字段名 / 注释**能直接识别涉密**(PII / 三方支付凭证 / 含敏 JSON / 内部敏感配置等),合规驱动 → reader column 不查询、不入仓
+> - **隐性裁**:字段名 / 注释**看不出明显敏感**,业务 / 技术理解才知道要裁(单租户冗余 / 内部技术字段 / 业务低频 / 数据冗余等)→ reader column 不查询、不入仓
+>
+> 两种裁都是物理层不入仓(raw `column` 字段不列)。区别仅在判断方式——明性可由不熟业务的人判断,隐性需熟业务方拍板。
+
+## 1. card_group_order_info(拼团订单表)
+
+### 1.1 概览
+
+| 项 | 值 |
+|---|---|
+| PG schema 全字段 | 120 |
+| 保留入 raw | 91 |
+| 明性裁 | 16 |
+| 隐性裁 | 13 |
+| 配套 DDL | `manual/ddl/raw/trd/raw_trd_card_group_order_info_his_o_create.sql` + `..._inc_d_create.sql` |
+| 配套 ini | `manual/backfill/20260425_raw_trd_card_group_order_info_his_o_history.ini` + `jobs/raw/trd/raw_trd_card_group_order_info_inc_d.ini` |
+| 决策日期 | 2026-04-25(his_o)/ 2026-04-28(inc_d 沿用)/ 2026-04-29(裁剪三态文档化) |
+
+### 1.2 保留字段(91)
+
+按 PG schema 顺序:
+
+`id, group_info_id, merchant_id, user_id, shipping_address_id, purchase_count, order_no, accounts_payable, actual_payment, payment_type, payment_time, coupon, discount, status, remark, create_time, create_by, update_time, update_by, payment_status, payment_status_desc, payment_success_time, del_flg, curier_company, refund_fee, refund_time, anonymous, pick_up_type, ship_time, refund_success_time, refund_recv_accout, refund_account, refund_request_source, card_price, act_price, goods_price_json, payment_sub_type, team_first, refuse_status, prop1, prop2, prop3, point, order_type, trade_amount, refund_type, refund_reason, evaluation, user_refund_time, refund_status, merchant_refund_reason, point_deduct, shipping_cost, merchant_remark, pay_record, order_sub_type, give_user_code, give_order_id, read_flag, give_num, invoice_id, combination_no, open_self, refund_desc, goods_allocate, close_payment_status, close_payment_time, finished_time, expire_time, settlement_amount, platform_coupon, platform_discount, discount_amount, member_discount, shipping_free_id, shipping_free_amount, discount_point, un_shipped_num, pre_un_shipped_num, wait_shipped_num, pre_wait_shipped_num, refuse_time, refuse_notice, pickup_time, waring_type, waring_status, point_type, delivery_end_time, serve_status, self_pickup_time, act_discount`
+
+字段类型 + 注释见 `manual/ddl/raw/trd/raw_trd_card_group_order_info_his_o_create.sql`(91 列 STRING + COMMENT)。
+
+### 1.3 明性裁(16,合规驱动)
+
+#### 1.3.1 PII(5)
+
+| 字段 | PG 注释 |
+|---|---|
+| `shipping_address_linkname` | 收件人姓名 |
+| `shipping_address` | 收货地址 |
+| `shipping_address_phone` | 收件人手机号 |
+| `app_user_nick_name` | App 用户昵称 |
+| `app_user_avatar` | App 用户头像 URL |
+
+#### 1.3.2 三方支付凭证 / 账户(9)
+
+| 字段 | PG 注释 |
+|---|---|
+| `prepay_id` | 微信预支付 ID |
+| `payment_evid` | 支付凭证号 |
+| `payment_num` | 支付流水号 |
+| `payment_bank_type` | 支付银行类型 |
+| `payment_appid` | 支付 App ID |
+| `out_refund_no` | 外部退款单号 |
+| `refund_id` | 三方退款 ID |
+| `trade_no` | 三方交易号 |
+| `shipping_trade_no` | 物流交易号 |
+
+#### 1.3.3 含敏感的支付详情 JSON(2)
+
+| 字段 | PG 注释 |
+|---|---|
+| `pay_data` | 支付明细 JSON |
+| `pay_result_data` | 支付返回 JSON |
+
+### 1.4 隐性裁(13,业务 / 技术驱动)
+
+#### 1.4.1 业务冗余 - 物流细节(4)
+
+| 字段 | PG 注释 | 裁剪理由 |
+|---|---|---|
+| `courier_num` | 快递单号 | 数仓业务不需要单号粒度,物流统计可用 `curier_company` |
+| `refund_curier_company` | 退款快递公司 | 与 `curier_company` 重复,退款场景占比低 |
+| `refund_courier_num` | 退款快递单号 | 同 `courier_num`,业务不需要 |
+| `refund_ship_time` | 退款发货时间 | 数仓暂无退款时长分析需求 |
+
+#### 1.4.2 业务库内部技术字段(4)
+
+| 字段 | PG 注释 | 裁剪理由 |
+|---|---|---|
+| `order_queue_low` | 订单队列分片低位 | 业务库内部分片实现,与数仓无关 |
+| `order_queue_high` | 订单队列分片高位 | 同上 |
+| `version` | 数据版本(乐观锁) | 业务库内部并发控制,数仓不用 |
+| `prop4` | 备用字段 | 与 prop1/2/3 取舍,业务方说 prop4 暂未启用 |
+
+#### 1.4.3 地址扩展 / 业务低频(3)
+
+| 字段 | PG 注释 | 裁剪理由 |
+|---|---|---|
+| `address_edit_json` | 地址编辑历史 JSON | 运营审计字段,数仓暂无审计场景;且字段较大 |
+| `self_pickup_code` | 自提码 | 业务低频字段,数仓无相关分析 |
+| `merchant_open` | 商家是否营业 | 状态字段,业务方说历史数据不需要回看 |
+
+#### 1.4.4 多租户 / 配置 ID(2)
+
+| 字段 | PG 注释 | 裁剪理由 |
+|---|---|---|
+| `tenant_id` | 多租户标识 | 当前单租户场景,字段恒值,无信息量 |
+| `pay_config_id` | 支付配置 ID | 配置外键,数仓不需要 join 配置表 |
+
+### 1.5 维护提示
+
+- **新增字段判断流程**:业务库后续如加字段 → 重跑 `bin/datax-sync-template-gen.py` 与现 ini diff → 落入 §1.3 / §1.4 / §1.2 之一 → 同步更新本文档 + DDL + ini
+- **不要"沉默裁剪"**:任何字段从 §1.2 移到 §1.3 / §1.4,必须在本文档留 PR + 决策记录