一种分布式数据库实时采集入湖方法及系统技术方案

技术编号:37992907 阅读:6 留言:0更新日期:2023-06-30 10:07
本发明专利技术公开了一种分布式数据库实时采集入湖方法以及系统,属于数据传输技术领域,方法包括:在配置中心中定义数据库服务器节点和采集入湖任务节点;CDC采集服务程序按照预设时间间隔向数据库服务器节点发起修改心跳时间的请求,更新数据库服务器节点中的心跳字段;将需要采集入湖的数据库以及相应的数据表信息添加到采集入湖任务节点;CDC采集服务程序访问采集入湖任务节点,查找需要采集入湖的任务信息;CDC采集服务程序根据需要采集入湖的数据库以及相应的数据表进行采集任务并发送到分布式消息平台中;入湖服务程序访问各采集入湖任务节点,从分布式消息平台中读取数据库以及相应的数据表并进行入湖处理。库以及相应的数据表并进行入湖处理。库以及相应的数据表并进行入湖处理。

【技术实现步骤摘要】
一种分布式数据库实时采集入湖方法及系统


[0001]本专利技术属于数据传输
,具体涉及一种分布式数据库实时采集入湖方法以及系统。

技术介绍

[0002]数据库变化数据捕获(CDC,Change Data Capture)采集技术已经是现在数据库同步和数据库采集中的主流技术,CDC通过源数据库捕获到数据和数据结构的增量变更,近乎实时地将这些变更情况传播到其他数据库或应用程序之处。通过这种方式,CDC能够向数据仓库提供高效、低延迟的数据传输,以便信息被及时转换并交付给专供分析的应用程序。
[0003]数据湖技术作为数仓存储的新技术,凭借其高效实时的摄入、读取效率以及对于传统大数据数仓技术较好的兼容性,开始被很多公司引入到大数据平台中。数据湖的典型技术为Hudi。
[0004]通过数据库CDC技术采集数据库数据入湖已经是主流的数据库数据采集方案了。主流技术一般通过CDC的数据先通过CDC工具导入Kafka或者Pulsar,再通过Flink或者是Spark流式消费写到Hudi里。
[0005]但是,目前主流的CDC技术采集数据库数据入湖,一方面,因为CDC都是实时采集,CDC工具都是以服务的形式于整个采集链路中。并且一般由于采集源分散在网络的各种位置上,往往一个数据库对应于一个独立的CDC服务,而大量这种独立的服务对于采集配置变更以及维护工作是非常麻烦的。另一方面,多个CDC服务和入湖服务本身是相对独立的,入湖过程中湖表的schema定义往往提前约定好并通过硬编码的方式到入湖过程中的,对于采集源数据表的schema的变化是无法感知的。

技术实现思路

[0006]本专利技术实施例的目的是提供一种分布式数据库实时采集入湖方法以及系统,能够解决现有的数据入湖技术中大量独立的CDC服务对于采集配置变更以及维护工作是非常麻烦的,多个CDC服务和入湖服务本身是相对独立的,入湖过程中无法感知源数据表的schema的变化,导致数据入湖流程冗余、效率低下的技术问题。
[0007]为了解决上述技术问题,本专利技术是这样实现的:
[0008]第一方面
[0009]本专利技术实施例提供了一种分布式数据库实时采集入湖方法,包括:
[0010]S101:在配置中心中定义数据库服务器节点和采集入湖任务节点;
[0011]S102:在采集数据库服务器上部署变化数据捕获CDC采集服务程序;
[0012]S103:CDC采集服务程序根据配置好的配置中心信息,向配置中心发起创建数据库服务器节点的请求;
[0013]S104:在数据库服务器节点创建完毕的情况下,CDC采集服务程序按照预设时间间隔向数据库服务器节点发起修改心跳时间的请求,更新数据库服务器节点中的心跳字段;
[0014]S105:将需要采集入湖的数据库以及相应的数据表信息添加到采集入湖任务节点;
[0015]S106:CDC采集服务程序访问采集入湖任务节点,查找需要采集入湖的任务信息,并与采集数据库服务器中存储的数据进行对比,判断是否存在需要采集入湖的数据库以及相应的数据表;
[0016]S107:在存在需要采集入湖的数据库以及相应的数据表的情况下,CDC采集服务程序获取待采集数据表的schema信息,并发送至采集入湖任务节点,以在采集入湖任务节点中写入schema信息;
[0017]S108:CDC采集服务程序根据需要采集入湖的数据库以及相应的数据表进行采集任务;
[0018]S109:CDC采集服务程序将采集到的数据库以及相应的数据表发送到分布式消息平台中;
[0019]S110:入湖服务程序访问各采集入湖任务节点,根据schema信息创建入湖任务线程,从分布式消息平台中读取数据库以及相应的数据表并进行入湖处理。
[0020]进一步地,数据库服务器节点的名称为采集数据库服务器的地址,数据库服务器节点的内容为采集数据库服务器的连接时间以及心跳时间。
[0021]进一步地,采集入湖任务节点的名称为采集数据库和相应的采集数据表的名称,数据库服务器节点的内容为采集数据表的schema信息,schema信息包括各个字段的名称、类型、长度、顺序以及入湖任务的库、表。
[0022]进一步地,在S104之后,还包括:
[0023]S104A:告警程序遍历所有的数据库服务器节点,比较当前时间与各采集数据库服务器的最后心跳时间之间的差值,根据差值与预设超时时间的比较结果,判断采集数据库服务器是否存在服务异常。
[0024]进一步地,S108具体为:
[0025]CDC采集服务程序采用snapshot全量+binlog增量的方式采集需要采集入湖的数据库以及相应的数据表。
[0026]第二方面
[0027]本专利技术实施例提供了一种分布式数据库实时采集入湖系统,包括:
[0028]定义模块,用于在配置中心中定义数据库服务器节点和采集入湖任务节点;
[0029]部署模块,用于在采集数据库服务器上部署变化数据捕获CDC采集服务程序;
[0030]第一请求模块,用于CDC采集服务程序根据配置好的配置中心信息,向配置中心发起创建数据库服务器节点的请求;
[0031]第二请求模块,用于在数据库服务器节点创建完毕的情况下,CDC采集服务程序按照预设时间间隔向数据库服务器节点发起修改心跳时间的请求,更新数据库服务器节点中的心跳字段;
[0032]添加模块,用于将需要采集入湖的数据库以及相应的数据表信息添加到采集入湖任务节点;
[0033]对比模块,用于CDC采集服务程序访问采集入湖任务节点,查找需要采集入湖的任务信息,并与采集数据库服务器中存储的数据进行对比,判断是否存在需要采集入湖的数
据库以及相应的数据表;
[0034]写入模块,用于在存在需要采集入湖的数据库以及相应的数据表的情况下,CDC采集服务程序获取待采集数据表的schema信息,并发送至采集入湖任务节点,以在采集入湖任务节点中写入schema信息;
[0035]采集模块,用于CDC采集服务程序根据需要采集入湖的数据库以及相应的数据表进行采集任务;
[0036]发送模块,用于CDC采集服务程序将采集到的数据库以及相应的数据表发送到分布式消息平台中;
[0037]入湖模块,用于入湖服务程序访问各采集入湖任务节点,根据schema信息创建入湖任务线程,从分布式消息平台中读取数据库以及相应的数据表并进行入湖处理。
[0038]进一步地,数据库服务器节点的名称为采集数据库服务器的地址,数据库服务器节点的内容为采集数据库服务器的连接时间以及心跳时间。
[0039]进一步地,采集入湖任务节点的名称为采集数据库和相应的采集数据表的名称,数据库服务器节点的内容为采集数据表的schema信息,schema信息包括各个字段的名称、类型、长度、顺序以及入湖任务的库、表。
[0040]进一步地,分布式数据库实时采集入湖系统还包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式数据库实时采集入湖方法,其特征在于,包括:S101:在配置中心中定义数据库服务器节点和采集入湖任务节点;S102:在采集数据库服务器上部署变化数据捕获CDC采集服务程序;S103:所述CDC采集服务程序根据配置好的配置中心信息,向所述配置中心发起创建所述数据库服务器节点的请求;S104:在所述数据库服务器节点创建完毕的情况下,所述CDC采集服务程序按照预设时间间隔向所述数据库服务器节点发起修改心跳时间的请求,更新所述数据库服务器节点中的心跳字段;S105:将需要采集入湖的数据库以及相应的数据表信息添加到所述采集入湖任务节点;S106:所述CDC采集服务程序访问所述采集入湖任务节点,查找需要采集入湖的任务信息,并与所述采集数据库服务器中存储的数据进行对比,判断是否存在需要采集入湖的数据库以及相应的数据表;S107:在存在需要采集入湖的数据库以及相应的数据表的情况下,所述CDC采集服务程序获取待采集数据表的schema信息,并发送至所述采集入湖任务节点,以在所述采集入湖任务节点中写入所述schema信息;S108:所述CDC采集服务程序根据需要采集入湖的数据库以及相应的数据表进行采集任务;S109:所述CDC采集服务程序将采集到的数据库以及相应的数据表发送到分布式消息平台中;S110:入湖服务程序访问各所述采集入湖任务节点,根据所述schema信息创建入湖任务线程,从所述分布式消息平台中读取数据库以及相应的数据表并进行入湖处理。2.根据权利要求1所述的分布式数据库实时采集入湖方法,其特征在于,所述数据库服务器节点的名称为所述采集数据库服务器的地址,所述数据库服务器节点的内容为所述采集数据库服务器的连接时间以及心跳时间。3.根据权利要求1所述的分布式数据库实时采集入湖方法,其特征在于,所述采集入湖任务节点的名称为所述采集数据库和相应的采集数据表的名称,所述数据库服务器节点的内容为所述采集数据表的schema信息,所述schema信息包括各个字段的名称、类型、长度、顺序以及入湖任务的库、表。4.根据权利要求1所述的分布式数据库实时采集入湖方法,其特征在于,在所述S104之后,还包括:S104A:告警程序遍历所有的所述数据库服务器节点,比较当前时间与各所述采集数据库服务器的最后心跳时间之间的差值,根据所述差值与预设超时时间的比较结果,判断所述采集数据库服务器是否存在服务异常。5.根据权利要求1所述的分布式数据库实时采集入湖方法,其特征在于,所述S108具体为:所述CDC采集服务程序采用snapshot全量+binlog增量的方式采集需要采集入湖的数据库以及相应的数据表。6.一种分布式数据库实时采集入...

【专利技术属性】
技术研发人员:彭晓君
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1