refactor CHPA 01 and 02 warehouse jobs

This commit is contained in:
2026-08-20 19:39:11 +08:00
parent 8c3f45f178
commit fd1355a4fb
26 changed files with 4391 additions and 44 deletions
+34 -36
View File
@@ -2,69 +2,67 @@
Databricks 数仓 SQL 重构仓库。
## 数仓分层
## 设计入口
仓库采用三层模型,数据依赖保持单向流动:
- Agent 和工程约束:`AGENTS.md`
- SQL 重构规范:`docs/sql_refactoring_standard.md`
- CHPA 01/02 迁移矩阵:`docs/chpa_01_02_migration.md`
工作区上级 `CHPA/` 目录是只读 legacy 输入;所有新代码、文档和验证都放在本仓库。
## 数仓分层
```text
DWD -> DWS -> DM
```
- `DWD`:清洗后的原子明细和基础主数据。
- `DWS`:引用 DWD 构建的公共维度、宽表和可复用事实表。
- `DM`面向具体分析主题、指标和报表数据集
- `DWS`:引用 DWD 构建的公共维度、层级宽表和可复用事实表。
- `DM`引用 DWS 构建的主题、指标和报表数据集。
## 首批 review 范围
固定表名前缀:
本批次重构原 `CHPA/01` 中两个层级维表脚本:
- DWS 维度:`dws.dws_ext_td_<业务实体>`
- DWS 事实:`dws.dws_ext_tf_<业务实体>`
- DM 维度:`dm.dm_ext_td_<业务实体>`
- DM 事实:`dm.dm_ext_tf_<业务实体>`
- `sql/chpa/02_dws/01_dws_ext_td_ims_atc_hierarchy.sql`
- `sql/chpa/02_dws/02_dws_ext_td_ims_nfc_hierarchy.sql`
## 当前重构范围
两个脚本读取 DWD,并写入新的 DWS 维度表:
本批覆盖 `CHPA/` 下全部 6 个 `01` 开头脚本和 11 个 `02` 开头脚本。
- `dws.dws_ext_td_ims_atc_hierarchy`
- `dws.dws_ext_td_ims_nfc_hierarchy`
主要变化:
工作区 `CHPA/` 下的原脚本保持不变。旧表 `dwd.dwd_ims_atc_hierarchy``dwd.dwd_ims_nfc_hierarchy` 仅作为本批新旧结果校验基线
## 表命名
- DWS 维度表:`dws_ext_td_<业务实体>`
- DWS 事实表:`dws_ext_tf_<业务实体>`
- DM 维度表:`dm_ext_td_<业务实体>`
- DM 事实表:`dm_ext_tf_<业务实体>`
完整规范及首批表名映射见 `docs/sql_refactoring_standard.md`
- DWD 配置标准化和外部事实入湖保留在 `sql/chpa/01_dwd/`
- ATC/NFC hierarchy、pack property、中文维度和 market 等派生宽表迁移到 DWS。
- `tmp.tmp_ims_tf_fact_sales` 提升为 `dws.dws_ext_tf_ims_chpa_sales`
- 产品排序由共享临时表和 UPDATE 改为声明式 DWS 标记。
- 每个持久化脚本包含注释形式的一次性建表语句、显式写入字段和脚本契约头。
## 目录结构
```text
RE/
|-- AGENTS.md
|-- README.md
|-- docs/
| `-- sql_refactoring_standard.md
| |-- sql_refactoring_standard.md
| `-- chpa_01_02_migration.md
|-- sql/
| `-- chpa/
| |-- 01_dwd/
| `-- 02_dws/
| |-- 01_dws_ext_td_ims_atc_hierarchy.sql
| `-- 02_dws_ext_td_ims_nfc_hierarchy.sql
`-- validation/
`-- chpa/
`-- 02_dws/
`-- validate_hierarchy_refactor.sql
```
## 执行顺序
## 执行和迁移
1. 确认两个 DWS 目标表已按脚本中的显式字段契约创建
2. 按文件名前缀顺序执行 `sql/chpa/02_dws/` 中的脚本
3. 运行 `validation/chpa/02_dws/validate_hierarchy_refactor.sql`,直接比较新 DWS 输出与旧 DWD 基线
4. 兼容性检查必须全部返回 `passed = true`;同时 review 重复路径和未匹配层级指标
5. 下游迁移完成前保留旧 DWD 表;下游不得继续新增对旧表的依赖
1. `docs/chpa_01_02_migration.md` 中的顺序执行 DWD 脚本
2. 确认 DWS 目标表已通过各脚本中的注释 DDL 创建
3. `sql/chpa/02_dws/` 文件序号执行 DWS 脚本
4. 在相同源数据快照上运行 `validation/chpa/02_dws/` 下的验证 notebook
5. 新旧行数、双向差集和必填键检查通过后,再迁移下游消费者
## 本次 review 重点
1. `DWD -> DWS -> DM` 的职责边界是否符合现有调度设计。
2. `dws_ext_td_ims_*` 中是否需要保留来源系统 `ims`
3. DWS 目标表的 catalog、字段类型、表属性和权限是否需要统一 DDL 模板。
本批不修改 `03` 开头脚本。`03` 中仍存在对旧 DWD/DWS/tmp 表的引用;在下一批完成消费者迁移之前,旧表必须保留为兼容和验证基线。