24-raw建模.md 5.7 KB

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 + 决策记录