poyee数仓项目

tianyu.chu d330396598 feat(ods): 加 ods DDL 生成器 + 8 表 DDL(ADR-06 ods 部分 ✅) 8 цаг өмнө
bin d330396598 feat(ods): 加 ods DDL 生成器 + 8 表 DDL(ADR-06 ods 部分 ✅) 8 цаг өмнө
conf d330396598 feat(ods): 加 ods DDL 生成器 + 8 表 DDL(ADR-06 ods 部分 ✅) 8 цаг өмнө
dw_base f6e4d415de feat(ds): DSClient.post / cli post 加 form-encoded 支持 17 цаг өмнө
jobs bd5bb33ef8 fix(raw): card_group_info trim group_info_search_index_col(DataX 不支持 tsvector) 21 цаг өмнө
kb d330396598 feat(ods): 加 ods DDL 生成器 + 8 表 DDL(ADR-06 ods 部分 ✅) 8 цаг өмнө
manual d330396598 feat(ods): 加 ods DDL 生成器 + 8 表 DDL(ADR-06 ods 部分 ✅) 8 цаг өмнө
tests d330396598 feat(ods): 加 ods DDL 生成器 + 8 表 DDL(ADR-06 ods 部分 ✅) 8 цаг өмнө
.gitignore d35ad11a22 chore(gitignore): 忽略 sessions/ 会话日志目录 2 долоо хоног өмнө
README.md 1e88c1747e docs(kb): 加 25-raw 接入流程 + mask 配置模板 1 долоо хоног өмнө
publish.sh fda2969068 fix(publish): bin/ → 项目根,kb/00 目录树同步 2 долоо хоног өмнө
requirements.txt f98b29c86c fix(deps): pg8000 版本对齐 Python 3.6.8(~=1.26.0,新版需 3.8+) 1 долоо хоног өмнө
requirements.txt.bak 8d2ade5330 feat: 项目初始化 2 долоо хоног өмнө

README.md

dw-project

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

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

技术栈

  • 计算引擎:PySpark 2.4 on YARN (CDH 6.3.2)
  • 数据集成:DataX_v202309
  • 元数据管理:Hive MetaStore(MySQL 后端)
  • 存储: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/ 下,由运维维护,不纳入版本控制。

主要执行入口(datax部分待重构)

脚本 用途 示例
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 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 分发到集群各节点(暂时不使用)

文档索引

文件按编号前缀分组,序号越小越基础、越靠前阅读。每篇文档是其主题的唯一权威(SSOT),跨文档用 § 锚点互引、不复述。

0x 项目与环境

文档 职责
00-项目导览 项目导览:目录结构、配置管理、DataX / Spark 入口、执行链路、基础模块、部署架构
01-运行环境 基础设施:CDH 版本矩阵、集群拓扑、开发侧约束
02-权限与账号 鉴权链路:HS2 doAs / PySpark / Ranger / LDAP;job 账号 vs 个人账号

1x 业务上下文

文档 职责
10-业务流程 业务全景:用户 + 商家 + 售后全链路流程
11-数据资产 数据源清单:业务库 / 埋点 / 爬虫 / 采购
12-同步方案 同步策略:PG→Hive 存量 / 增量 / 历史归档 / CDC 阶段演进
13-埋点同步-设计 埋点同步设计:合规约束、整体方案、脱敏策略、协作流程(受众:产品 / CTO)
14-埋点同步-开发 埋点同步实现:raw DDL、脱敏配置、历史 / 增量入仓脚本、落地 checklist

2x 数仓建模

文档 职责
20-数仓分层与建模 建模方法论:分层定义、主题域、总线矩阵、维度五步法
21-命名规范 命名规则:Hive 表 / 字段 / 词根字典 + 建表 Checklist
22-指标体系 指标字典:指标 / 维度 / 度量定义与口径
23-标签体系 TDM 画像:用户 / 商品 / 商家标签
24-raw 建模 raw 层字段裁剪决策:各 raw 表三态标记(保留 / 明性裁 / 隐性裁)+ 决策理由溯源
25-raw 接入流程 新表入仓标准 8 步:sync 生成器 + mask 配置 + DDL 生成器 + raw 建模文档协同

3x 开发流程

文档 职责
30-开发规范 开发方法论:TPAD、数据开发流程、代码/SQL/Git 规范、DDL/jobs 文件组织、manual/ 临时 SQL、样板、存储 / raw 类型契约
31-UDF手册 UDF 登记表:通用 + 业务 UDF 清单

9x 过渡资料

文档 职责
90-重构路线 重构决策:P0-P3 聚簇、已完成结论、待启动方案
92-重构进度 重构执行:阶段 checklist + changelog
93-架构决策 ADR 沉淀:重构收尾时 90/91/92 压缩留档(当前仍在重构,骨架)

阅读建议

新成员上手路径:

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