python-可配置化的数据同步及计算方案
一. 需求痛点
业务系统需求痛点:公司业务系统繁杂,各业务系统使用的数据库类型也多种多样,随着数据量增长,业务系统数据库计算压力也越发明显,使用大数据技术进行复杂及耗时计算的需求越来越多
开发痛点:将各个业务数据源抽取到大数据平台进行计算存在程序开发逻辑类似,重复开发,效率低下的问题。
二.技术架构
以hadoop为分布式系统基础架构,Hive为数仓,Hive表均为外部表parquet格式
以Spark为计算引擎,SparkSql执行计算,yarn工具管理集群资源
开发语言:纯python开发,版本3.5+
任务配置数据库:mysql数据库
三.支持的数据库导入导出
mysql/mongo/influxdb/es/Hive 到 Hive
mysql 到 mysql/mongo
mongo 到 mysql/mongo/Hive
四.实现功能
计算任务的创建可配置化,自动建表/添加分区/添加索引
一键生成任务及启动脚本
每一个任务按天存储日志,可查看任务的执行情况,执行多长时间,当天耗时任务排名
执行任务中出现异常钉钉报警,后续可添加重试功能
计算任务的全量/增量统计模式可配置
mysql历史数据可一键分批次抽取及去重,元数据信息文件一目了然
五.课外话
代码暂不开源,围绕python动态语言的特性,从整体设计到开发上线半个月的时间,也着实费了不少脑细胞,7月15日上线至今同事一直在用,上半年绩效3.5+归功于此工具,开发效率高,毕竟工作重点转移到了写sql上,能实现自动化的地方基本上我都考虑到了
写公众号开始,几乎每篇文章都是来自于实际的工作实战,编辑排版内容梳理都是需要时间,所以我自认为有价值的东西不希望被忽视,个人成果还是敬畏吧,如果真的想了解,留言付费也未尝不可
就写到这吧
耗时日志排名:
钉钉报警:
抽取历史表元数据信息:
领取专属 10元无门槛券
私享最新 技术干货