同步数据_Nifi 部署分钟级别同步数据

Nifi 作为一个数据流处理引擎,感觉对于程序员来说已经非常友好了。

可以算作半个 AI 了。

最近接受到一个需求,需要同步一个国家的数据。

表有若干,数据实时成都是分钟级别。

刚开始没有接触过这样的需求,有点懵逼。后来想起 Nifi 可以作为中间传输工具。

但是问题的难点是 nifi 并没有现成的可用的 processor 符合自己的要求。

因为要求对数据库不能有太大的压力,因此废弃了 GenerateTableFetch 这个控件。

想想既然要同步 oracle 的数据,那么万一出现意外,还需要可以及时重新从某个点重新同步,还需要某时刻可以迅速产生多条任务用于弥补数据。

哎,最终觉得就自己写吧,幸好Nifi 还有 ExceuteScript 这个控件。说干就干,选择python 语言。

第一:需要用一个 State ,用于记录上一次的时间点,其次变更时间点的前提必须是 修改后的时间点小于当前系统时间,不然就丑大了,导未来时间点数据,肯定是一条也没有的。

nowTime=long(round(1000*time.time()))oldTime =stateMap.get('oldTime')interval=long(str(interval.getValue()))

这里的 nowTime 就是系统时间。

oldTime 就是上一次的时间,interval就是每次变更的时间跨度。

当然既然是导表的数据,肯定还需要 表的字段,表名,其次为了可能出现的数据库延迟,还需要设定一个延迟时

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值