数据抽取平台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新系统带来巨大便利:
- 抽取表等相关信息数据全部可配置化
- 抽取出错信息直接表中查看
- 新加和修改直接修改表数据即可完成,极大提高效率
- 抽取历史数据和错误数据可单独执行
- 有抽取的历史记录日志等信息
- 该平台免费简单,可以根据实际项目需求做二次修改, 其T+1的ETL数据库功能可以替换阿里云的Dataworks和腾讯云的数据集成
相关文档:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具