|
|
@@ -0,0 +1,150 @@
|
|
|
+# raw 层接入流程
|
|
|
+
|
|
|
+> 新业务库表(PG)入数仓 raw 层的标准流程。**生成 → 评审 → 配置裁剪脱敏 → 落地 → 文档化**一条线,由 sync 生成器 + DDL 生成器 + mask 配置三件协同。
|
|
|
+
|
|
|
+## 流程总览
|
|
|
+
|
|
|
+```
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 1:跑 sync │ 不带 --mask-conf
|
|
|
+│ 生成器(初版) │ → workspace 全字段 ini + md
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 2:业务+数仓 │ 字段评审:哪些不入仓 / 哪些脱敏
|
|
|
+│ 评审字段 │
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 3:写 mask │ jobs/raw/{域}/{table}.mask.ini
|
|
|
+│ 配置 │ 参考 conf/templates/datax/mask/
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 4:跑 sync │ 带 --mask-conf
|
|
|
+│ 生成器(终版) │ → workspace 几乎可用 ini + md(留档)
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 5:微调 ini │ → jobs/raw/{域}/{table}.ini
|
|
|
+│ + 提交 │
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 6:md 同步 │ 字段表复制到 kb/24-raw 建模.md 对应章节
|
|
|
+│ 到建模文档 │
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 7:跑 DDL │ -l raw -ini xxx.ini
|
|
|
+│ 生成器 + 微调 │ → manual/ddl/raw/{域}/{table}_create.sql
|
|
|
+└────────┬─────────┘
|
|
|
+ │
|
|
|
+ ▼
|
|
|
+┌──────────────────┐
|
|
|
+│ Step 8:PR 提交 │ 四件套:mask.ini + sync.ini + DDL + kb/24 章节
|
|
|
+│ 四件套 │
|
|
|
+└──────────────────┘
|
|
|
+```
|
|
|
+
|
|
|
+## 8 步详解
|
|
|
+
|
|
|
+### Step 1:生成全字段初版
|
|
|
+
|
|
|
+```
|
|
|
+python3 bin/datax-sync-template-gen.py \
|
|
|
+ -ds postgresql/{env}-{instance} \
|
|
|
+ -t public.{table_name} \
|
|
|
+ -o
|
|
|
+```
|
|
|
+
|
|
|
+输出 `workspace/{yyyymmdd}/{table_name}.ini` + `.md`,全字段无裁剪,md 脱敏类型列空白。
|
|
|
+
|
|
|
+### Step 2:业务方 + 数仓评审字段
|
|
|
+
|
|
|
+会议 + 字段表对照,确定每个字段:
|
|
|
+
|
|
|
+- **不入仓**(trim):PII / 三方凭证 / 业务库内部技术字段 / 业务冗余等
|
|
|
+- **脱敏入仓**(mask_middle / md5 / month_trunc 等):保留字段但敏感值不出业务库
|
|
|
+- **保留**:默认入仓
|
|
|
+
|
|
|
+输出:会议纪要里逐字段决策。
|
|
|
+
|
|
|
+### Step 3:写 mask 配置
|
|
|
+
|
|
|
+落位 `jobs/raw/{域}/{table}.mask.ini`,参考 `conf/templates/datax/mask/mask.template.ini` 格式。
|
|
|
+
|
|
|
+```ini
|
|
|
+[mask]
|
|
|
+# field = method
|
|
|
+field1 = trim
|
|
|
+field2 = mask_middle
|
|
|
+field3 = md5
|
|
|
+```
|
|
|
+
|
|
|
+### Step 4:跑 sync 生成器(终版)
|
|
|
+
|
|
|
+```
|
|
|
+python3 bin/datax-sync-template-gen.py \
|
|
|
+ -ds postgresql/{env}-{instance} \
|
|
|
+ -t public.{table_name} \
|
|
|
+ --mask-conf jobs/raw/{域}/{table_name}.mask.ini \
|
|
|
+ -o
|
|
|
+```
|
|
|
+
|
|
|
+输出:
|
|
|
+
|
|
|
+- `workspace/{yyyymmdd}/{table_name}.ini` —— reader.column 已剔除 trim 字段,[mask] 段已渲染
|
|
|
+- `workspace/{yyyymmdd}/{table_name}.md` —— 脱敏类型列已填
|
|
|
+
|
|
|
+留档不动 workspace 版本。
|
|
|
+
|
|
|
+### Step 5:微调 + 提交 sync.ini
|
|
|
+
|
|
|
+复制 workspace ini → `jobs/raw/{域}/{table_name}.ini`,**手动微调**:
|
|
|
+
|
|
|
+- 头注释(作者 / 工单号 / 状态 / 配套 DDL 路径)
|
|
|
+- writer.path 表名后缀(`_inc_d` / `_his_o` 等,按业务实际)
|
|
|
+- writer.fileName 同上
|
|
|
+- writer.dataSource(hdfs ref,按目标 HDFS 集群)
|
|
|
+- splitPk(auto-detect 不准时手调)
|
|
|
+- where(如非 update_time 锚点改字段)
|
|
|
+- fetchSize / 其他细节
|
|
|
+
|
|
|
+不限于补注释——**根据实际情况调**。
|
|
|
+
|
|
|
+### Step 6:md 同步到 raw 建模文档
|
|
|
+
|
|
|
+复制 workspace `.md` 字段表 → `kb/24-raw 建模.md` 对应表章节。**人工维护**——后期 raw 建模文档由人类驱动更新,不做脚本自动追加。
|
|
|
+
|
|
|
+### Step 7:跑 DDL 生成器 + 微调
|
|
|
+
|
|
|
+```
|
|
|
+python3 bin/datax-ddl-gen.py -l raw -ini jobs/raw/{域}/{table_name}.ini -o
|
|
|
+```
|
|
|
+
|
|
|
+> **注**:DDL 生成器 ods 阶段暂未实现,本流程当前只覆盖 raw。
|
|
|
+
|
|
|
+输出 `workspace/{yyyymmdd}/{table_name}_create.sql`,复制 → `manual/ddl/raw/{域}/{table_name}_create.sql`,手动微调(表注释 / 字段注释完善 / LOCATION 路径核实)。
|
|
|
+
|
|
|
+### Step 8:PR 提交四件套
|
|
|
+
|
|
|
+一次 PR 包含:
|
|
|
+
|
|
|
+- `jobs/raw/{域}/{table_name}.mask.ini`(裁剪脱敏配置)
|
|
|
+- `jobs/raw/{域}/{table_name}.ini`(sync 配置)
|
|
|
+- `manual/ddl/raw/{域}/{table_name}_create.sql`(raw 建表 DDL)
|
|
|
+- `kb/24-raw 建模.md` 对应表章节(字段三态决策文档化)
|
|
|
+
|
|
|
+## 暂未实现的阶段(后期)
|
|
|
+
|
|
|
+按 kb/93 ADR 决策推进:
|
|
|
+
|
|
|
+- **ods DDL 生成**(ADR-06):DDL 生成器加 `-l ods` 支持,类型映射 conf 驱动 + 技术字段(`etl_time` / `src_sys` / `src_tbl`)
|
|
|
+- **数据质量任务**(ADR-07):注册 `conf/dq.ini` 的表自动跑 schema 变更探查(mask conf 作 ground truth)+ 数据量比对(PG vs Hive count + 阈值告警)
|