poyee数仓项目

tianyu.chu 1632b96150 refactor: 路径正则 tendata-warehouse → poyee-data-warehouse,收尾仓库改名 2 долоо хоног өмнө
bin 281c625bb3 chore: 删 bin/flume-control.sh 2 долоо хоног өмнө
conf ce9422da14 fix(conf): 删 hive.exec.orc.default.block.size(与集群 dfs.blocksize 同值,无效果) 2 долоо хоног өмнө
dw_base 1632b96150 refactor: 路径正则 tendata-warehouse → poyee-data-warehouse,收尾仓库改名 2 долоо хоног өмнө
jobs 8d2ade5330 feat: 项目初始化 2 долоо хоног өмнө
kb 1632b96150 refactor: 路径正则 tendata-warehouse → poyee-data-warehouse,收尾仓库改名 2 долоо хоног өмнө
manual 8d2ade5330 feat: 项目初始化 2 долоо хоног өмнө
tests 709ca3920b refactor(dw_base): __init__.py 去 findspark 与 21 个未用颜色常量 2 долоо хоног өмнө
.gitignore 572b29707d chore: .gitignore 屏蔽 Python bytecode 2 долоо хоног өмнө
README.md f506a7baf5 docs: 合并 kb/README 进根 README 2 долоо хоног өмнө
requirements.txt 709ca3920b refactor(dw_base): __init__.py 去 findspark 与 21 个未用颜色常量 2 долоо хоног өмнө
requirements.txt.bak 8d2ade5330 feat: 项目初始化 2 долоо хоног өмнө

README.md

dw-project

基于 PySpark + DataX 的数据仓库项目,负责多源数据采集、清洗、分层加工和分发。

本 README 兼作开发手册,也是 vibe coding 和 Review 的参考依据

项目现状速读(冷启动必读)

  • launch-pad/ 不做业务迁移:里面是上个项目(与当前业务无关)的历史业务代码,仅作样板 SQL / DataX ini 写法的参考,新项目业务 SQL 全部从零开发,完成后 launch-pad/ 整体删除
  • 重构进度:进度追踪见 kb/92-重构进度.md

技术栈

  • 计算引擎:PySpark 2.4 on YARN (CDH 6.3.2)
  • 数据集成:DataX_v202309
  • 元数据管理:Hive MetaStore
  • 存储:HDFS (ORC)、RDS PostgreSQL --> Polar PostgreSQL、Elasticsearch
  • 调度:DolphinScheduler
  • 告警:企业微信机器人

目录结构

dw-project/
├── bin/           # 启动脚本(Shell + Python 入口)
├── jobs/          # 业务代码,按数仓分层组织
│   ├── raw/       #   原始数据采集(DataX ini)
│   ├── ods/       #   贴源层(SQL)
│   ├── dwd/       #   明细层(SQL)
│   ├── dws/       #   汇总层(SQL)
│   ├── tdm/       #   主题域模型层(SQL)
│   └── ads/       #   应用层(SQL + 导出 ini)
├── dw_base/       # 通用库(Spark 引擎、DataX 引擎、工具函数、UDF)
├── kb/            # 知识库(项目文档)
├── conf/          # 配置(非敏感项,样例 + 环境配置)
├── publish.sh     # 集群部署脚本
└── requirements.txt

数据源连接配置(含账密)存放在项目同级目录 datasource/ 下,由运维维护,不纳入版本控制。

主要执行入口

脚本 用途 示例
bin/spark-sql-starter.py 执行 Spark SQL -f jobs/customs/001india/02incr/01india_im/02dwd.sql -dt 20250101
bin/datax-multiple-hive-job-starter.sh MySQL→Hive 批量采集(主力) -gcd conf/datax/config/mysql-hdfs/prod -start-date 20250101 -parallel
bin/datax-multiple-job-starter.sh 通用批量 DataX 同步 -gcd jobs/customs/001india/02incr/01india_im/ -start-date 20250101
bin/datax-single-job-starter.sh 单个 DataX 同步 -gc jobs/xxx/from_mongo.ini -start-date 20250101

数仓分层

PG/ES ──DataX(raw)──> RAW ──> ODS ──> DWD ──> DWS ──> TDM ──> ADS

开发环境

  • 使用 PyCharm 远程 SSH 连接服务器开发调试
  • Python 3.6.8,依赖见 requirements.txt
  • 部署:publish.sh 通过 git pull + rsync 分发到集群各节点

文档索引

文件按编号前缀分组,序号越小越基础、越靠前阅读。

0x 项目与环境

文档 内容
00-项目架构 模块关系图、Spark SQL / DataX 执行时序、DataX 脚本详细使用说明、配置管理
01-运行环境 CDH 技术栈版本、平台架构图、开发侧约束
02-权限与账号 鉴权链路、job账号 vs 个人账号

1x 业务上下文

文档 内容
10-业务流程 Hobby Stocks 用户侧 + 商家侧 + 售后全链路流程图
11-数据资产 业务库、埋点数据、爬虫数据、采购数据清单
12-同步方案 PG → Hive 存量/增量/历史归档/CDC 同步策略与阶段演进

2x 数仓建模

文档 内容
20-数仓分层与建模 分层定义、主题域、总线矩阵、维度建模五步法、同步策略
21-命名规范 五段式表名、字段规则、词根字典、建表自检 Checklist
22-指标体系 指标分类、逻辑结构、指标/维度/度量字典
23-标签体系 TDM 层用户/商品/商家画像设计

3x 开发流程

文档 内容
30-开发规范 TPAD 任务规范、数仓数据开发流程、代码 / SQL 规范、Git 协作规范
31-UDF手册 UDF 自查表

9x 过渡资料

文档 内容
90-重构路线 基于老项目代码分析的重构路线(P0-P3)
92-重构进度 重构任务 checklist 与当前进度

阅读建议

新成员上手路径:

  1. 00-项目架构 — 了解模块全貌
  2. 01-运行环境 — 了解基础设施
  3. 20-数仓分层与建模 — 了解建模方法论
  4. 21-命名规范 — 熟悉命名规则(★ 最高频参考)
  5. 30-开发规范 — 熟悉开发流程

样板(待补充):

  • DataX ini 样板 → conf/templates/datax/{raw,ads,manual}/*.template.ini
  • Spark SQL 样板 → conf/templates/sql/*.template.sql
  • 建表 DDL 样板 → conf/templates/ddl/*.template.sql
  • 数据源连接样板 → conf/templates/datasource/*.template.ini