如何基于日志,同步实现数据的一致性和实时抽取?
具体思路是:
A:不存在的数据,即这部分数据insert就可以; B:存在的数据,比较_ums_id_,最终只将哪些_ums_id_更新较大row到目标数据库,小的直接抛弃. 使用Spark的同学都知道,RDD/dataset都是可以partition的,可以使用多个worker并进行操作以提高效率. 在考虑并发情况下,插入和更新都可能出现失败,那么还有考虑失败后的策略. 比如:因为别的worker已经插入,那么因为唯一性约束插入失败,那么需要改为更新,还要比较_ums_id_看是否能够更新. 对于无法插入其他情况(比如目标系统有问题),Wormhole还有重试机制.说起来细节特别多.这里就不多介绍了. 有些还在开发中. 插入到其他存储中的就不多介绍了,总的原则是:根据各自存储自身特性,设计基于集合的,并发的插入数据实现.这些都是Wormhole为了性能而做的努力,使用Wormhole的用户不必关心 . 五、运用案例实时营销 说了那么多,DWS有什么实际运用呢?下面我来介绍某系统使用DWS实现了的实时营销. 如上图所示: 系统A的数据都保存到自己的数据库中,我们知道,宜信提供很多金融服务,其中包括借款,而借款过程中很重要的就是信用审核. 借款人需要提供证明具有信用价值的信息,比如央行征信报告,是具有最强信用数据的数据. 而银行流水,网购流水也是具有较强的信用属性的数据. 借款人通过Web或手机APP在系统A中填写信用信息时,可能会某些原因无法继续,虽然可能这个借款人是一个优质潜在客户,但以前由于无法或很久才能知道这个信息,所以实际上这样的客户是流失了. 应用了DWS以后,借款人已经填写的信息已经记录到数据库中,并通过DWS实时的进行抽取、计算和落地到目标库中.根据对客户的打分,评价出优质客户.然后立刻将这个客户的信息输出到客服系统中. 客服人员在很短的时间(几分钟以内)就通过打电话的方式联系上这个借款人(潜客),进行客户关怀,将这个潜客转换为真正的客户.我们知道借款是有时效性的,如果时间太久就没有价值了. 如果没有实时抽取/计算/落库的能力,那么这一切都无法实现. 实时报表系统 另外一个实时报表的应用如下: 我们数据使用方的数据来自多个系统,以前是通过T+1的方式获得报表信息,然后指导第二天的运营,这样时效性很差. 通过DWS,将数据从多个系统中实时抽取,计算和落地,并提供报表展示,使得运营可以及时作出部署和调整,快速应对. 六、总结 说了那么多,大致总结一下:
适合场景包括:实时同步/实时计算/实时监控/实时报表/实时分析/实时洞察/实时管理/实时运营/实时决策 感谢大家的聆听,此次分享到此为止. Q1:Oracle log reader有开源方案吗? (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |