Skip to content

xy-qimu/dataOps

Repository files navigation

Overview

本项目的定位是通过研发一套成熟稳定的现代数据仓库平台,并构建自动化的数据更新管道,为公司的各项生产经营活动提供高质量的数据支撑,从而达到降本增效的目标。

  • 业务模块:采购、销售、生产、库存及财务等
  • 业务系统:SAP、POS及CRM等

项目亮点: 通过落地DataOps,提升了数据团队的开发运维效率,从而更好地为业务提供更高质量更稳定的数据服务。

  1. 数据团队只需在本地的IDE环境进行工作,通过git和jenkins实现版本管理及持续集成交付
  2. 数据团队不再需要手工配置调度依赖和数据血缘关系(可自动感知生成)
  3. 自动生成数据字典文档及代码单元测试

Project Contents

1、数据架构:stg + ods + dim + dwd +dws + ads

img.png

2、技术架构:airbyte + dbt + airflow + cosmos + astro + postgresql + 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平台

3、项目部署流程:

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published