align hierarchy outputs with DWS naming

This commit is contained in:
2026-08-20 19:01:46 +08:00
parent faddf38c9b
commit 33e60d02e3
6 changed files with 380 additions and 487 deletions
+38 -22
View File
@@ -2,23 +2,40 @@
Databricks 数仓 SQL 重构仓库。
## 数仓分层
仓库采用三层模型,数据依赖保持单向流动:
```text
DWD -> DWS -> DM
```
- `DWD`:清洗后的原子明细和基础主数据。
- `DWS`:引用 DWD 构建的公共维度、宽表和可复用事实表。
- `DM`:面向具体分析主题、指标和报表的数据集市。
## 首批 review 范围
本批次重构原 `CHPA/01` 中两个层级维表脚本:
本批次重构原 `CHPA/01` 中两个层级维表脚本:
- `sql/chpa/01_dwd/01_dwd_ims_atc_hierarchy.sql`
- `sql/chpa/01_dwd/02_dwd_ims_nfc_hierarchy.sql`
- `sql/chpa/02_dws/01_dws_ext_td_ims_atc_hierarchy.sql`
- `sql/chpa/02_dws/02_dws_ext_td_ims_nfc_hierarchy.sql`
工作区 `CHPA/` 下的原脚本保持不变,便于逐项对照。
两个脚本读取 DWD,并写入新的 DWS 维度表:
## 兼容性决策
- `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` 仅作为本批新旧结果校验基线。
- `dwd.dwd_ims_atc_hierarchy`
- `dwd.dwd_ims_nfc_hierarchy`
## 表命名
这样不会立即影响 pack property 和 DWS 等现有下游任务。推荐的新表名及迁移规则记录在 `docs/sql_refactoring_standard.md`;是否执行物理改名,待本批 review 后决定。
- DWS 维度表:`dws_ext_td_<业务实体>`
- DWS 事实表:`dws_ext_tf_<业务实体>`
- DM 维度表:`dm_ext_td_<业务实体>`
- DM 事实表:`dm_ext_tf_<业务实体>`
完整规范及首批表名映射见 `docs/sql_refactoring_standard.md`
## 目录结构
@@ -29,26 +46,25 @@ RE/
| `-- sql_refactoring_standard.md
|-- sql/
| `-- chpa/
| `-- 01_dwd/
| |-- 01_dwd_ims_atc_hierarchy.sql
| `-- 02_dwd_ims_nfc_hierarchy.sql
| `-- 02_dws/
| |-- 01_dws_ext_td_ims_atc_hierarchy.sql
| `-- 02_dws_ext_td_ims_nfc_hierarchy.sql
`-- validation/
`-- chpa/
`-- 01_dwd/
`-- 02_dws/
`-- validate_hierarchy_refactor.sql
```
## 执行顺序
1. 在覆盖目标表前运行 `validation/chpa/01_dwd/validate_hierarchy_refactor.sql`
2. 核对两个 `DESCRIBE TABLE` 结果;兼容性检查必须全部返回 `passed = true`
3. review 重复路径和未匹配层级指标,确认它们符合现有业务口径
4. 通过后,按文件名前缀顺序执行 `sql/chpa/01_dwd/` 中的重构脚本
两个重构脚本都要求现有 DWD 源表、目标表已经创建。
1. 确认两个 DWS 目标表已按脚本中的显式字段契约创建
2. 按文件名前缀顺序执行 `sql/chpa/02_dws/` 中的脚本
3. 运行 `validation/chpa/02_dws/validate_hierarchy_refactor.sql`,直接比较新 DWS 输出与旧 DWD 基线
4. 兼容性检查必须全部返回 `passed = true`;同时 review 重复路径和未匹配层级指标
5. 下游迁移完成前保留旧 DWD 表;下游不得继续新增对旧表的依赖。
## 本次 review 重点
1. 表命名模型是否适用于整个数仓
2. 物理表改名采用兼容视图还是一次性联动下游
3. 替换调度任务前,在 Databricks 中对比新旧结果的行数、业务键重复数和空键数
1. `DWD -> DWS -> DM` 的职责边界是否符合现有调度设计
2. `dws_ext_td_ims_*` 中是否需要保留来源系统 `ims`
3. DWS 目标表的 catalog、字段类型、表属性和权限是否需要统一 DDL 模板