一种流数据同步的方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:29757464 阅读:20 留言:0更新日期:2021-08-20 21:10
本申请公开了一种流数据同步的方法、装置、计算机设备及存储介质,属于大数据技术领域。本申请通过获取业务数据,并将业务数据发送至数据仓库,其中,业务数据为流数据,通过l ogstash工具从第一业务系统中采集与业务数据对应的执行日志,通过kafka消息队列消费执行日志,得到日志消费结果,通过流计算引擎对业务数据和日志消费结果进行数据整合计算,得到整合数据,执行SQL更新语句,以将整合数据同步至第二业务库。此外,本申请还涉及区块链技术,业务数据可存储于区块链中。本申请通过流计算引擎对第一业务系统的业务数据和日志消费结果进行数据整合计算,得到整合数据,通过将整合数据同步至第二业务库,实现流数据的实时同步,提高流数据同步实时性。

【技术实现步骤摘要】
一种流数据同步的方法、装置、计算机设备及存储介质
本申请属于大数据
,具体涉及一种流数据同步的方法、装置、计算机设备及存储介质。
技术介绍
随着微服务的兴起,越来越多的系统使用微服务技术,微服务系统一般包括多个服务和多个数据库,因此在实际应用中,存在两个或者两个以上系统的数据进行关联和同步的情况,针对此场景,现在业内有两个常用方案:一、使用同步或者异步的方式将初始业务系统的数据同步到目标业务系统,在目标业务系统中进行表关联,实现条件过滤。例如,一种人员选拔系统需要在核心人事系统、招聘系统、绩效系统、培训系统、假勤系统中通过同步或者异步的方式发送数据,在选拔系统中实现数据接收。在上述同步方式中,系统间数据同步存在数据丢失风险,系统间数据大量冗余,给目标系统带来数据存储压力,系统间高度耦合,相互影响,随着微服务越来越多,系统复杂度越来越高。二、使用数据仓库进行离线计算,例如,在一种人员选拔系统中,需要事先将核心人事系统、招聘系统、绩效系统、培训系统、假勤系统中的数据采集到数据仓库,然后进行加工,加工过程在数据仓库中进行,不会给业务库带来压力,然后将加工后的数据写入选拔系统。但数据仓库的数据采集和数据写入一般是一天一次,在凌晨进行,数据传输的时效为T+1,数据时效性低。
技术实现思路
本申请实施例的目的在于提出一种流数据同步的方法、装置、计算机设备及存储介质,以解决现有微服务系统的数据同步方案存在的时效性较低,无法实现实时同步的技术问题。为了解决上述技术问题,本申请实施例提供一种流数据同步的方法,采用了如下所述的技术方案:一种流数据同步的方法,包括:接收数据同步指令,获取与所述数据同步指令对应的业务数据,并将所述业务数据发送至所述数据仓库;通过logstash工具从所述第一业务系统中采集与所述业务数据对应的执行日志;将所述执行日志写入到kafka消息队列中,并通过所述kafka消息队列消费所述执行日志,得到日志消费结果;将所述数据仓库中的业务数据和所述日志消费结果发送至所述流计算引擎,并通过所述流计算引擎对所述业务数据和所述日志消费结果进行数据整合计算,得到整合数据;执行预设的SQL更新语句,以将整合数据同步至所述第二业务库。进一步地,在所述接收数据同步指令,获取与所述数据同步指令对应的业务数据,并将所述业务数据发送至所述数据仓库之后,还包括:从所述数据同步指令中获取与所述业务数据对应的数据加工标识;在预设的脚本库中查找与所述数据加工标识对应的数据加工脚本;基于所述数据加工脚本对所述业务数据进行处理。进一步地,所述通过logstash工具从所述第一业务系统中采集与所述业务数据对应的执行日志的步骤,具体包括:对所述第一业务系统的数据库进行监测,当监测到所述数据库的事务发生改变时,通过所述logstash工具获取发生改变的所述事务的执行日志;在所述数据库中建立临时存储区,并将所述执行日志写入所述临时存储区中。进一步地,所述对所述第一业务系统的数据库进行监测,当监测到所述数据库的数据库事务发生改变时,通过所述logstash工具获取发生改变的所述事务的执行日志的步骤,具体包括:确定所述业务数据对应的日志数据,并获取所述日志数据的主关键字;基于所述日志数据的主关键字对第一业务系统数据库中的事务进行监测;当监测到所述第一业务系统的数据库中与所述业务数据具有相同主关键字的事务发生改变时,生成发生改变的所述事务的最新时间戳;获取所述最新时间戳的日志数据,得到执行日志。进一步地,所述将所述执行日志写入到kafka消息队列中,并通过所述kafka消息队列消费所述执行日志,得到日志消费结果的步骤,具体包括:解析所述执行日志,并基于所述执行日志的内容生成类别创建指令;基于所述类别创建指令在所述kafka消息队列中创建对应的主题类别;将所述执行日志从所述临时存储区发送至所述主题类别中进行存储;执行预设的日志消费指令以消费所述主题类别中的所述执行日志,得到日志消费结果。进一步地,所述将所述数据仓库中的业务数据和所述日志消费结果发送至所述流计算引擎,并通过所述流计算引擎对所述业务数据和所述日志消费结果进行数据整合计算,得到整合数据的步骤,具体包括:按照预设的第一调度频率采集所述数据仓库中的业务数据,生成第一Spark流对象;按照预设的第二调度频率采集所述日志消费结果,生成第二Spark流对象;分别对所述第一Spark流对象和所述第二Spark流对象进行对象转化,将所述第一Spark流对象和所述第二Spark流对象转化为RDD对象;通过所述流计算引擎合并转化为RDD对象后的所述第一Spark流对象和所述第二Spark流对象,得到整合数据。进一步地,所述执行预设的SQL更新语句,以将整合数据同步至所述第二业务库的步骤,具体包括:调用RDDforeach工具对所述整合数据进行数据划分,得到若干个RDD分区;在每一个所述RDD分区与所述第二业务库之间创建一个连接对象;通过所述连接对象将每一个所述RDD分区内的数据同步至所述第二业务库内。为了解决上述技术问题,本申请实施例还提供一种流数据同步的装置,采用了如下所述的技术方案:一种流数据同步的装置,包括:指令接收模块,用于接收数据同步指令,获取与所述数据同步指令对应的业务数据,并将所述业务数据发送至所述数据仓库;日志采集模块,用于通过logstash工具从所述第一业务系统中采集与所述业务数据对应的执行日志;日志消费模块,用于将所述执行日志写入到kafka消息队列中,并通过所述kafka消息队列消费所述执行日志,得到日志消费结果;数据整合模块,用于将所述数据仓库中的业务数据和所述日志消费结果发送至所述流计算引擎,并通过所述流计算引擎对所述业务数据和所述日志消费结果进行数据整合计算,得到整合数据;数据同步模块,用于执行预设的SQL更新语句,以将整合数据同步至所述第二业务库。为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现如上述所述的流数据同步的方法的步骤。为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上述所述的流数据同步的方法的步骤。与现有技术相比,本申请实施例主要有以下有益效果:本申请公开了一种流数据同步的方法、装置、计算机设备及存储介质,属于大数据
本申请的数据同步平台在数据仓库的基础上,引入流计算引擎,通过创建离线计算与流计算结合的方式来实现流本文档来自技高网
...

【技术保护点】
1.一种流数据同步的方法,其特征在于,包括:/n接收数据同步指令,获取与所述数据同步指令对应的业务数据,并将所述业务数据发送至所述数据仓库;/n通过logstash工具从所述第一业务系统中采集与所述业务数据对应的执行日志;/n将所述执行日志写入到kafka消息队列中,并通过所述kafka消息队列消费所述执行日志,得到日志消费结果;/n将所述数据仓库中的业务数据和所述日志消费结果发送至所述流计算引擎,并通过所述流计算引擎对所述业务数据和所述日志消费结果进行数据整合计算,得到整合数据;/n执行预设的SQL更新语句,以将整合数据同步至所述第二业务库。/n

【技术特征摘要】
1.一种流数据同步的方法,其特征在于,包括:
接收数据同步指令,获取与所述数据同步指令对应的业务数据,并将所述业务数据发送至所述数据仓库;
通过logstash工具从所述第一业务系统中采集与所述业务数据对应的执行日志;
将所述执行日志写入到kafka消息队列中,并通过所述kafka消息队列消费所述执行日志,得到日志消费结果;
将所述数据仓库中的业务数据和所述日志消费结果发送至所述流计算引擎,并通过所述流计算引擎对所述业务数据和所述日志消费结果进行数据整合计算,得到整合数据;
执行预设的SQL更新语句,以将整合数据同步至所述第二业务库。


2.如权利要求1所述的流数据同步的方法,其特征在于,在所述接收数据同步指令,获取与所述数据同步指令对应的业务数据,并将所述业务数据发送至所述数据仓库之后,还包括:
从所述数据同步指令中获取与所述业务数据对应的数据加工标识;
在预设的脚本库中查找与所述数据加工标识对应的数据加工脚本;
基于所述数据加工脚本对所述业务数据进行处理。


3.如权利要求1所述的流数据同步的方法,其特征在于,所述通过logstash工具从所述第一业务系统中采集与所述业务数据对应的执行日志的步骤,具体包括:
对所述第一业务系统的数据库进行监测,当监测到所述数据库的事务发生改变时,通过所述logstash工具获取发生改变的所述事务的执行日志;
在所述数据库中建立临时存储区,并将所述执行日志写入所述临时存储区中。


4.如权利要求3所述的流数据同步的方法,其特征在于,所述对所述第一业务系统的数据库进行监测,当监测到所述数据库的数据库事务发生改变时,通过所述logstash工具获取发生改变的所述事务的执行日志的步骤,具体包括:
确定所述业务数据对应的日志数据,并获取所述日志数据的主关键字;
基于所述日志数据的主关键字对第一业务系统数据库中的事务进行监测;
当监测到所述第一业务系统的数据库中与所述业务数据具有相同主关键字的事务发生改变时,生成发生改变的所述事务的最新时间戳;
获取所述最新时间戳的日志数据,得到执行日志。


5.如权利要求3所述的流数据同步的方法,其特征在于,所述将所述执行日志写入到kafka消息队列中,并通过所述kafka消息队列消费所述执行日志,得到日志消费结果的步骤,具体包括:
解析所述执行日志,并基于所述执行日志的内容生成类别创建指令;
基于所述类别创建指令在所述kafka消息队列中创建对应的主题类别;
将所述执行日志从所述临时存储区发...

【专利技术属性】
技术研发人员:孙朝辉李凯东侯文京裘金龙
申请(专利权)人:深圳平安智汇企业信息管理有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1