数据抽取平台pydatax介绍

   缘起一:

        公司现有数据仓库,是通过kettle从mysql抽取到目标库,运行多年,主要有以下问题,

            1,效率低:kettle抽取行数少 

            2,容错性差:一个表抽取出错就导致后续计算会出问题,

            3,扩展性差: 对多库多表等支持不好

     近300张表抽取,再加上计算,每天都算到7点,还有2个巨大的计算要等到10点左右才能算完。

    上一任数仓开发者,使用datax来替换kettle,将数据通过datax抽取到新的greeplum中,效率很高,而且稳定,但每个表一个shell文件,300个表要300个shell文件,每次修改都要登陆到linux修改,太麻烦了。但迁移了部分表又没有全部迁移。

     自从2022年11月接下这套数据仓库系统,就想怎么优化这数仓系统。

  缘起二:

       2023年10月开始,公司接了几个关于数据指标系统计算的大单。经济形势不好,经济上开始开源节流,我们这些维护人员转做项目,当项目确定后,和另一个开发人员一起做个数据仓库系统。这个数据仓库的ETL抽取层任务交给我,因为以前设计和实现过下面2个系统:

        1、SSIS数据同步系统

        2,用ELK分析每天4亿多条腾讯云MySQL审计日志(1)--解决过程   

   借鉴2个系统的思路,就想,是否可以通过程序调用datax,做个闭环的基于datax的系统,不用再写很多shell文件,将其元数据都配置化,提高开发效率。

 方法:

      市面上是有datax_web这个可视化配置平台,自己测试,和自己想要的不一样,思考了一下,要么用linux的shell或者python3来写这个datax的配置调度,将其需要的数据都配置化:

       1,测试了linux的shell,在读取mysql表数据字段数据时,进行多字段数据读取,字段数据读出后,不能很好分割出,有空格的会作为一个新字段。不可用

       2,因datax也是python开发的,支持python2,想用python3程序开发,实现配置化,通过测试,发现是可以直接在python3程序调用datax,而且很方便。 可用

  目标:   简化datax的开发,其配置等数据都数据库表配置化

        经过1个多月的开发和测试,达到了上面的2个要求,同时可以记录执行过程等相关信息(如抽取时间,抽取速度,抽取行数等),执行错误记录相关错误信息,不用再登陆到linux去看日志文件信息。

        这个小系统,被命名为pydatax抽取系统,和以前用kettle和单个文件datax相比,有很大优势: 简单,实用和高效

     pydatax新系统带来巨大便利:

    1.   抽取表等相关信息数据全部可配置化
    2.   抽取出错信息直接表中查看
    3.   新加和修改直接修改表数据即可完成,极大提高效率
    4.   抽取历史数据和错误数据可单独执行
    5.   有抽取的历史记录日志等信息

 

       

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章