python实现大数据批处理(数据调度)方案

关于数据调度的想法:
如果不使用其他的插件,就只使用python,可不可以实现日调度?
结果应该是可以的,目前为止,可以想到的解决方案如下:
1.利用python连接source(源端数据库)库和sink(目标数据库)库
2.中间的转换由Python来实现,其实就是在写入sink库的时候进行筛选、转换而已
3.连接source库后先取出需要进行日调度的表,以dt作为时间区分,因为是日调度,所以每次调度的都是前一天的数据,需要有一个字段作为区分数据是那一天的条件,在取数据时添加条件where dt = datetime()-1取前一天时间,这样就可以把数据取出。数据取出是按表进行取的,而且是循环进行,就可以减少人为参与程度
4.数据取出后需要进行对应的转换(转换也是以sql进行)
5.转换完毕后将数据写入sink
6.为了实现日调度,可以在外层写一个死循环while True,在死循环下执行,如果今天的调度跑完了,那么就让他time.sleep(10800),让程序休眠1天就可以了,第二天就可以正常进行新的调度

可能出现的问题:
1.数据量小还好,数据量如果大一点,维护起来会比较麻烦,异常也会比较多
2.连接时间过长,可能会出现连接自动断掉
3.数据写入速度会比较慢一些,
4.如果是行存储还好,如果是列存储,问题就会比较多,需要进行更多的转化,效率会比较低

优点:
1.一次调度出现问题有时间这个维度存在,倒也不用担心数据丢失

2.自己开发的,维护起来会更容易一些,因为对低层熟悉

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值