一种数据实时采集方法、装置、设备及可读存储介质制造方法及图纸

技术编号:37525986 阅读:13 留言:0更新日期:2023-05-12 15:50
本申请涉及一种数据实时采集方法、装置、设备及可读存储介质,涉及数据库技术领域,包括基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据;将所述目标数据存储至消息队列kafka中,以完成数据库中数据的实时采集。本申请通过JNI实现了数据库中数据的跨平台实时采集,进而提升了数据库中数据实时采集的灵活性。采集的灵活性。采集的灵活性。

【技术实现步骤摘要】
一种数据实时采集方法、装置、设备及可读存储介质


[0001]本申请涉及数据库
,特别涉及一种数据实时采集方法、装置、设备及可读存储介质。

技术介绍

[0002]CDC(Change Data Capture,变化数据捕获)的核心思想是通过日志来监测并捕获数据库的变化(比如包括数据或数据表的插入、更新以及删除等),然后再将这些变更按发生的顺序完整记录下来,写入到消息中间件中,以供其他服务进行订阅及消费。比如,可使用CDC提供的数据创建历史库以及进行近实时缓存处理,也可以将数据提供给MQ(Message Queue,消息队列),并对用户消费MQ进行分析和审计等。
[0003]目前,每个运行平台都会承载其对应的数据库,而相关技术中在对数据库中的数据进行实时采集时,往往无法实现跨平台的数据采集,以致需要为每个平台构建对应的数据采集程序,进而造成数据采集的灵活性较差。由此可见,如何实现对数据库中数据的跨平台实时采集是当前亟需解决的问题。

技术实现思路

[0004]本申请提供一种数据实时采集方法、装置、设备及可读存储介质,以解决相关技术中无法实现对数据库中数据的跨平台实时采集的问题。
[0005]第一方面,提供了一种数据实时采集方法,包括以下步骤:
[0006]基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据;
[0007]将所述目标数据存储至消息队列kafka中,以完成数据库中数据的实时采集。
[0008]一些实施例中,在所述基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据的步骤之前,还包括:
[0009]通过C++语言或C语言构建动态链接库,所述动态链接库用于通过RPC方式实现对数据库操作日志的拉取操作;
[0010]通过JVAV语言在JNI中编写与动态链接库中对应的目标方法,所述目标方法用于对数据库操作日志进行实时读取和转化操作。
[0011]一些实施例中,所述基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据,包括:
[0012]基于JNI加载所述动态链接库,以通过RPC方式实现对数据库操作日志的拉取操作;
[0013]通过所述目标方法对拉取到的数据库操作日志进行实时读取和转化操作,得到目标数据。
[0014]一些实施例中,所述通过所述目标方法对拉取到的数据库操作日志进行实时读取和转化操作,得到目标数据,包括:
[0015]通过所述目标方法和预设过滤规则对拉取到的数据库操作日志进行过滤,得到过滤后的数据库操作日志;
[0016]通过所述目标方法对所述过滤后的数据库操作日志进行实时读取和转化操作,得到目标数据。
[0017]一些实施例中,在所述将所述目标数据存储至消息队列kafka中的步骤之后,还包括:
[0018]基于分布式计算引擎Flink对kafka中的目标数据进行算子操作处理,并将处理后的数据写入目标数据表中。
[0019]一些实施例中,所述kafka中包括多种数据源的目标数据,所述基于分布式计算引擎Flink对kafka中的目标数据进行算子操作处理,并将处理后的数据写入目标数据表中,包括:
[0020]基于分布式计算引擎Flink分别对kafka中不同数据源的目标数据进行算子操作处理,得到多个处理后的数据;
[0021]并行将多个处理后的数据分别写入与其对应的目标数据表中。
[0022]一些实施例中,所述数据库操作日志为分布式数据库OceanBase对应的日志。
[0023]第二方面,提供了一种数据实时采集装置,包括:
[0024]数据处理单元,其用于基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据;
[0025]数据采集单元,其用于将所述目标数据存储至消息队列kafka中,以完成数据库中数据的实时采集。
[0026]第三方面,提供了一种数据实时采集设备,包括:存储器和处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现前述的数据实时采集方法。
[0027]第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,以实现前述的数据实时采集方法。
[0028]本申请提供的技术方案带来的有益效果包括:可有效实现对数据库中数据的跨平台实时采集。
[0029]本申请提供了一种数据实时采集方法、装置、设备及可读存储介质,包括基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据;将所述目标数据存储至消息队列kafka中,以完成数据库中数据的实时采集。本申请通过JNI实现了数据库中数据的跨平台实时采集,进而提升了数据库中数据实时采集的灵活性。
附图说明
[0030]为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0031]图1为本申请实施例提供的一种数据实时采集方法的流程示意图;
[0032]图2为本申请实施例提供的数据交互流程示意图;
[0033]图3为本申请实施例提供的数据实时采集系统框架图;
[0034]图4为本申请实施例提供的数据实时采集实现方法流程示意图;
[0035]图5为本申请实施例提供的一种数据实时采集设备的结构示意图。
具体实施方式
[0036]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0037]本申请实施例提供了一种数据实时采集方法、装置、设备及可读存储介质,其能解决相关技术中无法实现对数据库中数据的跨平台实时采集的问题。
[0038]参见图1和图2,本申请实施例提供了一种数据实时采集方法,包括以下步骤:
[0039]步骤S10:基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据;其中,所述数据库操作日志为分布式数据库OceanBase对应的日志。
[0040]示范性的,可以理解的是,现有的数据库中数据实时采集的解决方案不仅无法实现跨平台,且无法实现对商业版数据库(比如OceanBase)中数据的实时采本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据实时采集方法,其特征在于,包括以下步骤:基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据;将所述目标数据存储至消息队列kafka中,以完成数据库中数据的实时采集。2.如权利要求1所述的数据实时采集方法,其特征在于,在所述基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据的步骤之前,还包括:通过C++语言或C语言构建动态链接库,所述动态链接库用于通过RPC方式实现对数据库操作日志的拉取操作;通过JVAV语言在JNI中编写与动态链接库中对应的目标方法,所述目标方法用于对数据库操作日志进行实时读取和转化操作。3.如权利要求2所述的数据实时采集方法,其特征在于,所述基于Java本地方法接口JNI对通过远程过程调用RPC方式拉取到的数据库操作日志进行实时读取和转化,得到目标数据,包括:基于JNI加载所述动态链接库,以通过RPC方式实现对数据库操作日志的拉取操作;通过所述目标方法对拉取到的数据库操作日志进行实时读取和转化操作,得到目标数据。4.如权利要求3所述的数据实时采集方法,其特征在于,所述通过所述目标方法对拉取到的数据库操作日志进行实时读取和转化操作,得到目标数据,包括:通过所述目标方法和预设过滤规则对拉取到的数据库操作日志进行过滤,得到过滤后的数据库操作日志;通过所述目标方法对所述过滤后的数据库操作日志进行实时读取和转化操作,得到目标数据。5.如权利要求1所述的数据实时...

【专利技术属性】
技术研发人员:陈治祥段利君熊伟
申请(专利权)人:中电云数智科技有限公司
类型:发明
国别省市:

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

1