poyee数仓项目

tianyu.chu 4c55533b2f build(deps): 加入 pyspark==2.4.0 解决 PyCharm 远程解释器索引缺失 2 هفته پیش
bin 9e2d611a61 refactor(udf): 提升 UDF 为顶层模块 dw_base/udf/ 2 هفته پیش
conf 4c9b120c91 chore: 初始化 conf/templates 骨架 2 هفته پیش
dw_base 9e2d611a61 refactor(udf): 提升 UDF 为顶层模块 dw_base/udf/ 2 هفته پیش
jobs 8d2ade5330 feat: 项目初始化 2 هفته پیش
kb 4c55533b2f build(deps): 加入 pyspark==2.4.0 解决 PyCharm 远程解释器索引缺失 2 هفته پیش
manual 8d2ade5330 feat: 项目初始化 2 هفته پیش
.gitignore 8d2ade5330 feat: 项目初始化 2 هفته پیش
README.md b28d87ace1 doc: 1.添加开发者鉴权路线 2.添加业务库同步方案及数据资产同步优先级 3 添加hive数据类型映射参考 2 هفته پیش
publish.sh 8d2ade5330 feat: 项目初始化 2 هفته پیش
requirements.txt 4c55533b2f build(deps): 加入 pyspark==2.4.0 解决 PyCharm 远程解释器索引缺失 2 هفته پیش
requirements.txt.bak 8d2ade5330 feat: 项目初始化 2 هفته پیش

README.md

dw-project

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

技术栈

  • 计算引擎: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 分发到集群各节点

文档

详细文档见 kb/ 目录