大数据, 精选文章

数仓建模工具包(增强版)

适用对象:数据开发、数仓工程师、数据产品经理

📎 1. 《DWD七步法 Checklist.xlsx》(增强版)

用途:指导新人从 ODS 到 DWD 表的完整建模流程
使用方式:每建一张 DWD 表,填写一份 Checklist

步骤任务是否完成负责人交付物
1. 划分业务域 & 明确目标与业务方对齐分析主题(如“高企资质评估”)《业务域定义.md》
定义 DWD 表用途(如“支撑资质评分、区域分布”)
2. 字段筛选使用四象限法筛选字段(高频/高质量保留)《字段筛选四象限模板.xlsx》
新增:识别敏感字段(身份证、手机号等)标注“脱敏”或“删除”
业务方确认保留/删除清单
3. 制定清洗 & 标准化规则逐字段制定清洗规则(空值、异常、单位)《清洗规则表.xlsx》
建立码值映射表(province、industry 等)dim_province, dim_industry
4. 设计维度退化 & 表结构识别高频维度(如 province_name)
编写 Doris 建表语句《Doris建表语句模板.sql》
5. 编写 ETL & 测试用例编写 ETL SQL(含 Array 处理)
新增:预估数据量 & 资源消耗(避免 GROUP BY 爆内存)
编写测试用例(空值、边界、异常)
6. 建立元数据 & 文档填写字段血缘、口径、负责人元数据平台录入
编写表级文档(用途、更新频率、下游)《dwd_xxx_full 文档.md》
7. 上线 & 监控表结构创建
DolphinScheduler 任务配置任务名:load_dwd_xxx
配置监控告警(数据量、空值率、时效性)

📎 2. 《字段筛选四象限模板.xlsx》(增强版)

新增列是否敏感字段脱敏方式

字段名(ODS)业务含义使用频率数据质量是否敏感处理方式保留字段(DWD)说明
法人身份证号法人身份证❌ 删除或脱敏-隐私合规
phone联系电话⚠ 清洗后脱敏contact_phone标准化为11位,hash
company_name企业名称✅ 保留company_name直接保留

Sheet2:脱敏策略说明

  • 身份证:SHA256 或 删除
  • 手机号:保留前3后4,中间*(如 138****1234)
  • 邮箱:保留前缀,域名脱敏(如 user@***.com)

📎 3. 《Doris建表语句模板.sql》(增强版)

无变更,但建议在 COMMENT 中标注“是否含敏感字段”

-- 联系方式表(含 Array)
CREATE TABLE realtime_dwd.dwd_contact_channel_full(
  channel_id BIGINT COMMENT '联系方式ID',
  contact_id BIGINT COMMENT '联系人ID',
  company_id BIGINT COMMENT '企业ID',
  company_name STRING COMMENT '企业名称(退化)',
  contact_name STRING COMMENT '联系人名称(退化)',
  channel_type VARCHAR(20) COMMENT '方式类型:phone/email/wechat',
  channel_value STRING COMMENT '具体值(已脱敏)',  -- ← 新增说明
  source_codes ARRAY<VARCHAR(10)> COMMENT '来源ID数组,如["1","3"]',
  tag_codes ARRAY<VARCHAR(20)> COMMENT '标签ID数组,如["valid","not_company"]',
  is_valid TINYINT COMMENT '是否有效(预计算)',
  is_primary TINYINT COMMENT '是否主联系方式',
  etl_time DATETIME COMMENT 'ETL时间'
) ENGINE=OLAP UNIQUE KEY(channel_id) DISTRIBUTED BY HASH(company_id) BUCKETS 10;

📎 4. 《ETL任务合并清单.md》(增强版)

合并原则:主外键强关联、更新频率一致、业务语义紧密(如联系人+联系方式)

新增任务类型:增强型 DWT

# ETL任务合并清单(高企咨询场景)

## 1. 企业相关
- **任务名**`load_dwd_company`
- **处理表**`dwd_company_base_full`

## 2. 联系人+联系方式
- **任务名**`load_dwd_contact_and_channel`
- **处理表**`dwd_contact_base_full`, `dwd_contact_channel_full`

## 3. 知识产权
- **任务名**`load_dwd_ipr`
- **处理表**`dwd_patent_full`, `dwd_copyright_full`

## 4. 聚合层
- **任务名**`agg_dws_company_summary`
- **处理表**`dws_company_summary`
- **说明**:基于 DWD 预计算字段,无 JOIN

## 5. 基础画像层
- **任务名**`build_dwt_company_profile_v1`
- **处理表**`dwt_company_profile`(基础版)

## 6. 增强画像层(演进支持)
- **任务名**`build_dwt_company_profile_v2`
- **处理表**`dwt_company_profile_enhanced`
- **依赖**`dws_province_claim_summary`
- **说明****禁止**被 DWS 聚合任务依赖!

## 7. ADS层(按需)
- **任务名**`ads_sales_company_list`
- **处理表**`ads_sales_company_list`
- **说明**:JOIN DWD + DWS + DWT_v1/v2,拍平 Array

📎 5. 《ADS表开发规范.md》(增强版)

无重大变更,但强调可引用增强型 DWT

-- 示例:引用群体特征
SELECT 
  dwd.company_name,
  dwt_v2.province_claim_rate,  -- ← 来自增强画像
  ...
FROM dwd_company_base_full dwd
JOIN dwt_company_profile_enhanced dwt_v2 ON ...

🆕 📎 6. 《演进依赖关系图模板.md》(新增)

用途:可视化 DWD → DWS → DWT_enhanced 依赖链,避免循环

graph LR
  A[dwd_company_base_full] --> B[dwt_company_profile_v1]
  A --> C[dws_company_summary]
  B --> D[dws_province_claim_summary]
  D --> E[dwt_company_profile_v2<br/>(enhanced)]
  A --> E
  E --> F[ads_sales_company_list]
  C --> F
  B --> F

  style E fill:#f9f,stroke:#333
  style D fill:#ccf,stroke:#333

使用说明

  • 基础 DWT:蓝色
  • DWS 聚合:浅蓝
  • 增强 DWT:粉色(需特别标注)
  • 禁止箭头从粉色指向浅蓝(即 DWT_enhanced → DWS)

🆕 📎 7. 《模型变更影响评估表.xlsx》(新增)

用途:当业务需求变更需修改模型时,评估影响范围

项目内容
变更类型☐ 新增字段 ☐ 修改逻辑 ☐ 删除表 ☐ 创建增强表
变更表名dwt_company_profile_enhanced
变更原因业务需展示“所在省高潜密度”
上游依赖dws_province_high_potential_summary
下游影响ads_sales_company_list
是否破坏现有依赖☐ 是 ☑ 否
是否需灰度上线☑ 是(先跑新表,验证后切 ADS)
回滚方案保留旧 ADS 任务 7 天
业务确认人张三(销售负责人)
数据负责人李四(数仓工程师)

✅ 总结:工具包价值

  • 标准化:新人照模板填,不出错
  • 安全合规:敏感字段自动识别与处理
  • 可演进:支持从个体到群体的特征衍生
  • 可治理:变更可控、依赖可视、回滚有路