本项目的定位是通过研发一套成熟稳定的现代数据仓库平台,并构建自动化的数据更新管道,为公司的各项生产经营活动提供高质量的数据支撑,从而达到降本增效的目标。
- 业务模块:采购、销售、生产、库存及财务等
- 业务系统:SAP、POS及CRM等
项目亮点: 通过落地DataOps,提升了数据团队的开发运维效率,从而更好地为业务提供更高质量更稳定的数据服务。
- 数据团队只需在本地的IDE环境进行工作,通过git和jenkins实现版本管理及持续集成交付
- 数据团队不再需要手工配置调度依赖和数据血缘关系(可自动感知生成)
- 自动生成数据字典文档及代码单元测试
1) airbyte: 开源的数据同步工具。与各种数据源对接,通过简单配置即可实现数据入仓。即EL工作
2) dbt: 开源的数据转换工具。针对仓内的数据进行清洗转换等处理,并可自动生成文档及单元测试。即T工作
3) airflow: 开源的任务调度工具。用于编排调度数据管道任务
4) cosmos: 开源的python软件包。用于airflow和dbt的集成对接,通过该框架可自动识别dbt模型的血缘信息,无需再手工配置airflow调度任务依赖
5) astro: 该开源工具通过docker容器自动创建管理airflow实例,让数据团队无需花太多精力在airflow实例的管理上,更专注在数据管道的设计和维护
6) postgresql: 开源关系数据库。用于存储和计算加工仓库数据
7) git: 代码版本控制
8) jenkins: CICD平台
1)在本地环境先安装工具软件:python / docker / astro 详见安装部署记录 , 并预先创建postgresql
数据库edw_dev
(schema无需手工创建, dbt会根据配置自动创建)
2)从GitHub上pull
项目代码到本地
3)在本地项目根目录上创建虚拟环境 venv
,激活venv
环境并安装项目依赖:pip install -r requirements.txt
4)执行pre-commit
安装: pre-commit install(执行完毕后,以后在commit代码前会根据git hooks程序检查代码)
5)启动astro
项目: astro dev start (若需指定环境变量文件,可在命令后面添加 --env .env
)
注:
astro
项目启动时,会把requirements.txt
文件里的依赖安装到docker容器中,并把整个项目映射到docker容器的/usr/local/airflow/
目录下- 代码部署到生产环境时,需记得修改
.env
环境变量文件内容为:EDW_ENV=prod