CN117763051B - 一种可扩展的cdc方式达梦数据库同步***及其应用 - Google Patents
一种可扩展的cdc方式达梦数据库同步***及其应用 Download PDFInfo
- Publication number
- CN117763051B CN117763051B CN202410194386.8A CN202410194386A CN117763051B CN 117763051 B CN117763051 B CN 117763051B CN 202410194386 A CN202410194386 A CN 202410194386A CN 117763051 B CN117763051 B CN 117763051B
- Authority
- CN
- China
- Prior art keywords
- task
- acquisition
- component
- data
- change data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000008859 change Effects 0.000 claims abstract description 185
- 238000000034 method Methods 0.000 claims abstract description 3
- 230000002159 abnormal effect Effects 0.000 claims description 35
- 238000009826 distribution Methods 0.000 claims description 33
- 230000001360 synchronised effect Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000002688 persistence Effects 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 description 11
- 238000013480 data collection Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000000712 assembly Effects 0.000 description 3
- 238000000429 assembly Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004083 survival effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种可扩展的CDC方式达梦数据库同步***及其应用,其***包括:多个采集组件用于实时采集达梦数据库的变更数据发送至kafka中;任务管理中心用于将用户提交的变更数据采集任务分发至采集组件,并维护采集组件所有运行中的变更数据采集任务;任务运行状态存储模块用于存储各个变更数据采集任务的任务运行状态信息入库组件用于通过不同的入库连接器连接采集组件中的kafka,将变更数据同步到不同的异构数据库或存储引擎。实现了多个达梦数据库节点的不同变更数据地采集以及同步,并在采集任务数量发生变化时,自动进行采集组件的启动或者下线,保证在任务过多时资源的充足,或者在任务减少时采集资源的不浪费。
Description
技术领域
本发明涉及计算机数据处理技术领域,特别涉及一种可扩展的CDC方式达梦数据库同步***及其应用。
背景技术
随着现代信息技术的发展以及企业精细化管理需求的提升,企业内部通常存在多个业务***,这些业务***都需要从底层达梦数据库获取数据,而随着企业业务处理需求的提升,对数据处理的实时性要求也大大提升,要求业务***可以对底层达梦数据库的数据更新同步更新,由于实时数据获取是长链任务,需要保证采集任务的可用性,目前常见的同步方式有包括以下两种:
单节点单任务架构:该构架为单节点运行单个采集同步任务,当需要增加表或采集其它数据节点时,需要额外单独启动进程,在某个采集同步任务失败时,需要操作任务手动重启执行重试;
单节点多任务架构:该架构可以提交多个采集同步任务到数据处理程序中,并且可以同时输出。但是在某个采集同步任务数据处理程序失败时,会导致所有采集同步任务运行失败;
而多节点实例数据捕获,作为数据库备份内容中非常重要的一环,是企业多个业务***同时进行数据同步的关键,因此,本发明提出一种可扩展的CDC方式达梦数据库同步***。
发明内容
本发明提供一种可扩展的CDC方式达梦数据库同步***及其应用,实现了多个达梦数据库节点的不同变更数据地采集以及向多个异构数据库或存储引擎地同步,并自动将变更数据采集任务自动分配给多个采集组件,在变更数据采集任务数量发生变化时,自动进行采集组件的启动或者下线,保证在变更数据采集任务过多时资源的充足,或者在变更数据采集任务减少时资源的不浪费。
本发明提供一种可扩展的CDC方式达梦数据库同步***,包括:多个采集组件、任务管理中心、任务运行状态存储模块以及入库组件,其中,
采集组件,用于实时采集达梦数据库的变更数据发送至kafka中,并将变更数据采集任务的任务运行状态信息上报至数据任务运行状态存储模块中;
其中,每个采集组件同时执行多个变更数据采集任务;
任务管理中心,用于将用户提交的变更数据采集任务分发至采集组件,并维护采集组件所有运行中的变更数据采集任务;
任务运行状态存储模块,用于存储各个变更数据采集任务的任务运行状态信息;
入库组件,用于通过不同的入库连接器连接采集组件中的kafka,将采集组件采集到的变更数据同步到不同的异构数据库或存储引擎。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,采集组件,包括:
数据采集控制单元,用于接收任务管理中心分发的变更数据采集任务,并根据变更数据采集任务对应的采集数据范围,开始进行变更数据采集;
任务状态发送单元,用于基于所述变更数据采集任务的运行位置以及运行状态,结合执行所述变更数据采集任务的采集组件的身份编码,生成任务运行状态信息,发送至数据任务运行状态存储模块;
kafka数据处理单元,用于接收数据采集控制单元采集到的变更数据,并将变更数据计入到Kafka Topic中。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,任务状态发送单元,包括:
组件运行监测子单元,用于对同一采集组件对应的多个运行状态按照预设时间间隔进行检测,判断所述采集组件运行地全部变更数据采集任务中是否存在运行位置衔接不连贯或者运行位置更换紊乱,若存在,则判定所述采集组件运行异常;
否则,判定所述采集组件运行正常。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,任务管理中心,包括:
任务接收单元,用于接收用户提交的达梦数据库的变更数据采集任务以及组件下线存续任务,并进行任务记录,生成任务队列;
任务分发单元,用于基于当前正常运行地采集组件的当前任务负载量,对最新变更数据采集任务进行分发;
运行控制单元,用于在监测到采集组件运行异常时,控制异常采集组件下线,并将异常采集组件对应的变更数据采集任务发送至任务接收单元进行任务存续,等待任务分发单元进行任务再分发。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,任务分发单元,包括:
组件智能启动子单元,用于基于任务运行状态存储模块,分别获取当前正常运行地采集组件的每个变更数据采集任务的运行状态,根据运行状态,确定各个采集组件的当前任务负载量;
分别将每个采集组件的当前任务负载量与预设负载量进行对比,判断是否存在可用采集组件,并计算全部可用采集组件对应的可执行任务量,当可执行任务量小于未分发变更数据采集任务对应的待分配总量时,启动新的采集组件添加到可用采集组件中;
否则,保持当前可用采集组件不变;
智能任务分发子单元,用于将未分发变更数据采集任务分发至对应的可用采集组件。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,智能任务分发子单元,包括:
数据确认子单元,用于对任务接收单元记录的当前执行任务的数据同步类型以及采集数据范围进行确认;
其中,当前执行任务包括已分发变更数据采集任务和未分发变更数据采集任务;
智能处理子单元,用于获取达梦数据库的历史同步日志,基于达梦数据库对应的第一数据库存储分类对历史同步日志进行分类,获得日志分类组;
根据时间轴,分别对全部历史同步日志进行排序,获得变更序列,根据变更序列,计算每个日志分类组对应表空间的变更频率;
获取达梦数据库对应的第二数据库存储分类,基于第二数据库存储分类,对日志分类组进行聚类,获得不同表空间对应的多个数据文件的对应的子日志分类组,计算各个子日志分类组在对应的日志分类组中日志占比以及文件数据更新量;
基于表空间的变更频率以及日志占比,预测达梦数据库中每个数据文件的文件数据同步频率,结合数据文件对应的文件数据更新量,预测每个数据文件对应的数据同步负载量;
智能预测子单元,用于基于当前执行任务对应的数据同步类型以及采集数据范围,参考达梦数据库每个数据文件对应的数据同步负载量,计算每个可用采集组件的运行任务预测负载量以及每个未分发变更数据采集任务对应的预测运行负载量;
智能分发子单元,用于根据运行任务预测负载量以及预测运行负载量,参考每个可用采集组件的当前任务负载量,基于负载量均匀趋向原则,对未分发变更数据采集任务进行分配。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,智能任务分发子单元,还包括:
任务分类子单元,用于基于未分发变更数据采集任务的任务来源,对未分发变更数据采集任务进行分类,获得组件下线存续任务和全新任务;
位置控制子单元,用于在未分发变更数据采集任务为组件下线存续任务时,通过任务运行状态存储模块获取存续任务对应的采集间断位置信息;
在组件下线存续任务分发完成后,基于采集间断位置信息,对其对应的采集组件的采集开始位置进行调节,控制所述采集组件从采集间断位置进行续采集。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,任务管理中心,还包括:
任务监测单元,用于当变更数据采集任务数量减少时,判断是否存在空闲采集组件,若存在,则控制空闲采集组件下线;
否则,获取全部采集组件当前的任务负载总量以及可负载总量,基于可负载总量以及任务负载总量,计算组件任务负载率;
当存在组件任务负载率大于等于预设阈值时,判定当前不存在可下线采集组件;
当存在组件任务负载率小于预设阈值时,判定当前存在可下线采集组件,基于组件任务负载率以及任务负载总量,参考每个采集组件的当前任务负载量,确定待下线采集组件,并将待下线采集组件对应的变更数据采集任务发送任务接收单元进行任务存续,并等待任务分发单元进行任务再分发。
优先的,在一种可扩展的CDC方式达梦数据库同步***中,任务运行状态存储模块,包括:
状态记录单元,用于接收并记录采集组件发送的各个变更数据采集任务对应的任务运行状态信息;
间断续存单元,用于在监测到采集组件运行异常时,获取异常变更数据采集任务对应的运行位置生成采集间断位置信息。
本发明提供一种可扩展的CDC方式达梦数据库同步***的应用包括一项所述的一种可扩展的CDC方式达梦数据库同步***在计算机以及数据处理领域的应用。
与现有技术相比,本发明至少存在以下有益效果:
本发明然后通过任务管理中心将用户提交的变更数据采集任务分发至采集组件,实现了达梦数据库对采集任务的统一调度,并维护采集组件所有运行中的变更数据采集任务,确保每个变更数据采集任务的在运行异常时迅速完成变更数据采集任务向其他采集组件的再分发,保证变更数据采集任务的时刻都能正常运行。其后,通过多个采集组件实时采集达梦数据库的变更数据发送至kafka中,并将变更数据采集任务的任务运行状态信息上报至数据任务运行状态存储模块中,实现了多个达梦数据库节点的不同变更数据的采集同步的。然后通过任务运行状态存储模块存储各个变更数据采集任务的任务运行状态信息,以便某个采集组件异常时,将其下运行的变更数据采集任务分发至其它采集组件进行续采集,并确保所述续采集时可以从上次位置继续,最后通过不同的入库连接器连接采集组件中的kafka,将采集组件采集到的变更数据同步到不同的异构数据库或存储引擎,完成达梦数据库同时向多个数据库或存储引擎的数据同步。本发明实现了多个达梦数据库节点的不同变更数据地采集以及向多个异构数据库或存储引擎地同步,完成达梦数据库的快速同步、备份以及流处理操作。自动将变更数据采集任务自动分配给多个采集组件,并在变更数据采集任务数量发生变化时,自动进行采集组件的启动或者下线,保证在变更数据采集任务过多时资源的充足,或者在变更数据采集任务减少时资源的不浪费。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在本申请文件中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明一种可扩展的CDC方式达梦数据库同步***的示意图;
图2为本发明一种可扩展的CDC方式达梦数据库同步***采集组件的示意图;
图3为本发明一种可扩展的CDC方式达梦数据库同步***任务管理中心的示意图;
图4为新采集组件启动时的任务分发示意图;
图5为采集组件下线启动时的任务再分发示意图;
图6为本发明一种可扩展的CDC方式达梦数据库同步***任务运行状态存储模块的示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明提供一种可扩展的CDC方式达梦数据库同步***,包括:多个采集组件、任务管理中心、任务运行状态存储模块以及入库组件,其中,
采集组件,用于实时采集达梦数据库的变更数据发送至kafka中,并将变更数据采集任务的任务运行状态信息上报至数据任务运行状态存储模块中;
其中,每个采集组件同时执行多个变更数据采集任务;
任务管理中心,用于将用户提交的变更数据采集任务分发至采集组件,并维护采集组件所有运行中的变更数据采集任务;
任务运行状态存储模块,用于存储各个变更数据采集任务的任务运行状态信息;
入库组件,用于通过不同的入库连接器连接采集组件中的kafka,将采集组件采集到的变更数据同步到不同的异构数据库或存储引擎。
本实施例中,CDC(Change Data Capture)即为变更数据获取,将监测并捕获数据库的变更数据(包括数据或数据表的***、更新以及删除等)按发生的顺序完整记录下来,写入到消息中间件或其它组件以供其他服务进行订阅及消防。
本实施例中,Kafka 是一种分布式的,基于发布/订阅的消息***。
本实施例中,任务运行状态信息包括变更数据采集任务的运行位置以及运行状态,其中运行状态包括运行位置正常、运行位置衔接不连贯或者运行位置更换紊乱。
本实施例中,本实施例中,Mysql即为异构数据库或存储引擎。
上述技术方案的有益效果:本发明然后通过任务管理中心对将用户提交的变更数据采集任务分发至采集组件,实现了达梦数据库对采集任务的统一调度,并维护采集组件所有运行中的变更数据采集任务,确保每个变更数据采集任务的在运行异常时迅速完成变更数据采集任务向其他采集组件的再分发,保证变更数据采集任务的时刻都能正常运行。其后,通过多个采集组件实时采集达梦数据库的变更数据发送至kafka中,并将变更数据采集任务的任务运行状态信息上报至数据任务运行状态存储模块中,实现了多个达梦数据库节点的不同变更数据的采集同步的。然后通过任务运行状态存储模块存储各个变更数据采集任务的任务运行状态信息,以便某个采集组件异常时,将其下运行的变更数据采集任务分发至其它采集组件进行续采集,并确保所述续采集时可以从上次位置继续,最后通过不同的入库连接器连接采集组件中的kafka,将采集组件采集到的变更数据同步到不同的异构数据库或存储引擎,完成达梦数据库同时向多个数据库或存储引擎的数据同步。本发明实现了多个达梦数据库节点的不同变更数据地采集以及向多个异构数据库或存储引擎地同步,完成达梦数据库的快速同步、备份以及流处理操作。
实施例2:
在实施例1的基础上,采集组件,如图2所示,包括:
数据采集控制单元,用于接收任务管理中心分发的变更数据采集任务,并根据变更数据采集任务对应的采集数据范围,开始进行变更数据采集;
任务状态发送单元,用于基于所述变更数据采集任务的运行位置以及运行状态,结合执行所述变更数据采集任务的采集组件的身份编码,生成任务运行状态信息,发送至数据任务运行状态存储模块;
kafka数据处理单元,用于接收数据采集控制单元采集到的变更数据,并将变更数据计入到Kafka Topic中。
本实施例中,Kafka Topic为变更数据队列,每个变更数据采集任务对应一个Kafka Topic。
本实施例中,Mysql即为异构数据库或存储引擎。
本实施例中,采集数据范围是指变更数据采集任务需要涉及的表空间,可以是一个也可以是多个。
上述技术方案的有益效果:本发明通过数据采集控制单元确定采集组件对应的变更数据采集任务对应的采集数据范围,然后再开始进行变更数据采集,确保每个任务变更数据的精准性,保证异构数据库或者存在引擎同步数据的准确性,并通过任务状态发送单元将采集组件及执行的每个变更数据采集任务的任务运行状态信息,发送至数据任务运行状态存储模块进行存储,以便某个采集组件异常时,将其下运行的变更数据采集任务分发至其它采集组件进行续采集,并确保所述续采集时可以从上次位置继续,同时也完成了任务数据的自动备份,通过kafka数据处理单元接收数据采集控制单元采集到的变更数据,并将变更数据计入到Kafka Topic中,实现可达梦数据库流程操作变更数据的同步备份。
实施例3:
在实施例2的基础上,任务状态发送单元,包括:
组件运行监测子单元,用于对同一采集组件对应的多个运行状态按照预设时间间隔进行检测,判断所述采集组件运行地全部变更数据采集任务中是否存在运行位置衔接不连贯或者运行位置更换紊乱,若存在,则判定所述采集组件运行异常;
否则,判定所述采集组件运行正常。
本实施例中,运行位置衔接不连贯是指对同一达梦数据库节点的数据文件的变更数据的采集不连续,会导致采集的数据缺失不完整。
本实施例中,运行位置更换紊乱是指任务运行位置与任务对应的达梦数据库节点的实际数据变更位置不一致,会导致采集数据内容错误或者无法采集。
上述技术方案的有益效果:本发明通过组件运行监测子单元对同一采集组件对应的多个运行状态按照预设时间间隔进行检测,判断所述采集组件运行地全部变更数据采集任务中是否存在运行位置衔接不连贯或者运行位置更换紊乱,若存在,则判定所述采集组件运行异常;否则,判定所述采集组件运行正常,完成了对各个采集组件运行状态的自动监测,确保及时发现异常采集组件为下线异常采集组件提供依据的同时为各个变更数据的采集任务的精准完成奠定可靠基础。
实施例4:
在实施例1的基础上,任务管理中心,如图3所示,包括:
任务接收单元,用于接收用户提交的达梦数据库的变更数据采集任务以及组件下线存续任务,并进行任务记录,生成任务队列;
任务分发单元,用于基于当前正常运行地采集组件的当前任务负载量,对最新变更数据采集任务进行分发;
运行控制单元,用于在监测到采集组件运行异常时,控制异常采集组件下线,并将异常采集组件对应的变更数据采集任务发送至任务接收单元进行任务存续,等待任务分发单元进行任务再分发。
本实施例中,组件下线存续任务包括异常采集组件下线前运行的全部变更数据采集任务以及待下线采集组件(该采集组件运行正常)对应的需要再分配的变更数据采集任务。
本实施例中,任务队列是指等待分发的变更数据采集任务根据任务接收实际生成的序列,组件下线存续任务以存续起始时间为准。
本实施例中,当前任务负载量是指每个采集组件正在运行的变更数据采集任务数量。
上述技术方案的有益效果:本发明通过任务接收单元接收用户提交的达梦数据库的变更数据采集任务以及组件下线存续任务,并进行任务记录,生成任务队列,实现了对全部变更数据采集任务(包括全新任务和组件下线存续任务)的自动记录的同时完成了未分发任务的自动排队;其后通过任务分发单元基于当前正常运行地采集组件的当前任务负载量,对最新变更数据采集任务进行分发。
实施例5:
在实施例4的基础上,任务分发单元,包括:
组件智能启动子单元,用于基于任务运行状态存储模块,分别获取当前正常运行地采集组件的每个变更数据采集任务的运行状态,根据运行状态,确定各个采集组件的当前任务负载量;
分别将每个采集组件的当前任务负载量与预设负载量进行对比,判断是否存在可用采集组件,并计算全部可用采集组件对应的可执行任务量,当可执行任务量小于未分发变更数据采集任务对应的待分配总量时,启动新的采集组件添加到可用采集组件中;
否则,保持当前可用采集组件不变;
智能任务分发子单元,用于将未分发变更数据采集任务分发至对应的可用采集组件。
本实施例中,预设负载量是指采集组件可运行的最大变更数据采集任务数量。
本实施例中,可用采集组件是指当任务负载量没有达到预设负载量的采集组件。
本实施例中,可执行任务量是指全部可用采集组件剩余的任务负载总量的和。
如图4所示,采集组件1有两个运行任务,包括运行任务A1和运行任务B2,采集组件2启动时,自动将行任务B2分配给采集组件2,再次啊及组件执行多个变更数据采集任务时,实现新的采集组件自动启动的同时,完成了变更数据采集任务的再分配。
上述技术方案的有益效果:本发明通过组件智能启动子单元基于任务运行状态存储模块,分别获取当前正常运行地采集组件的每个变更数据采集任务的运行状态,根据运行状态,确定各个采集组件的当前任务负载量,分别将每个采集组件的当前任务负载量与预设负载量进行对比,判断是否存在可用采集组件,并计算全部可用采集组件对应的可执行任务量,当可执行任务量小于未分发变更数据采集任务对应的待分配总量时,启动新的采集组件添加到可用采集组件中,实现了在变更数据采集任务过多时,采集组件的自动扩展,确保资源的时刻充足,有效提高达梦数据库的流流处理操作同步能力,在不影响正在运行的变更数据采集任务的前提下通过智能任务分发子单元完成未分发变更数据采集任务的分配以及运行。
实施例6:
在实施例5的基础上,智能任务分发子单元,包括:
数据确认子单元,用于对任务接收单元记录的当前执行任务的数据同步类型以及采集数据范围进行确认;
其中,当前执行任务包括已分发变更数据采集任务和未分发变更数据采集任务;
智能处理子单元,用于获取达梦数据库的历史同步日志,基于达梦数据库对应的第一数据库存储分类对历史同步日志进行分类,获得日志分类组;
根据时间轴,分别对全部历史同步日志进行排序,获得变更序列,根据变更序列,计算每个日志分类组对应表空间的变更频率;
获取达梦数据库对应的第二数据库存储分类,基于第二数据库存储分类,对日志分类组进行聚类,获得不同表空间对应的多个数据文件的对应的子日志分类组,计算各个子日志分类组在对应的日志分类组中日志占比以及文件数据更新量;
基于表空间的变更频率以及日志占比,预测达梦数据库中每个数据文件的文件数据同步频率,结合数据文件对应的文件数据更新量,预测每个数据文件对应的数据同步负载量;
智能预测子单元,用于基于当前执行任务对应的数据同步类型以及采集数据范围,参考达梦数据库每个数据文件对应的数据同步负载量,计算每个可用采集组件的运行任务预测负载量以及每个未分发变更数据采集任务对应的预测运行负载量;
智能分发子单元,用于根据运行任务预测负载量以及预测运行负载量,参考每个可用采集组件的当前任务负载量,基于负载量均匀趋向原则,对未分发变更数据采集任务进行分配。
本实施例中,数据同步类型是指在采集数据范围内采集的数据的类型。
本实施例中,第一数据库存储分类是指达梦数据库的表空间分类;第二数据库存储分类是指达梦数据库中各个表空间对应的数据文件的分类。
本实施例中,日志分组是指件同一个表空间对应的历史同步日志分配在同一个组。历史同步日志是指达梦数据库向异构数据库或者存储引擎进行数据同步生成的日志。
本实施例中,变更序列是指对全部历史日志进行时间顺序排序得到的序列。
本实施例中,变更频率是指在变更序列中同一日志分类组对应的历史同步日志在固定时间间隔内出现的平均次数,全部历史同步日志的时间跨度至少包括三个及三个以上的固定时间间隔。
本实施例中,文件数据更新量是指数据文件对应的子日志分组中的变更数据总量。
本实施例中,数据同步频率是指在在变更序列中某一数据文件在固定时间间隔内出现的平均次数。
本实施例中,数据同步负载量是指达梦数据库某一数据文件进行数据变更时需要进行数据采集的预测量。
本实施例中,运行任务预测负载量是指每个当可用采集组件对应的全部运行变更数据采集任务对应的全部数据文件的变更数据采集要承受的数据总量。
本实施例中,预测运行负载量是指预测的每个未分发变更数据采集任务对应的全部数据文件的变更数据采集要承受的数据总量。
本实施例中,负载量均匀趋向原则是指尽可能保证正在运行的多个采集组件之间的运行负载量相同或运行负载量差异最小的原则。
上述技术方案的有益效果:本发明通过数据确认子单元完成对任务接收单元记录的当前执行任务的数据同步类型以及采集数据范围的确认为未分发变更数据采集任务的分配提供基础;并通过智能处理子单元基于达梦数据库的历史同步日志,得到达梦数据库各个表空间对应的数据变更频率,然后再对表空间对应的日志分组中的历史同步日志根据采集的数据类型进行聚类,根据聚类结果得到表空间内的各个数据文件的更新频率,然后根据数据文件的更新频率及其对应的表空间的数据变更频率,预测表空间内各个文件内数据的更新频率即文件数据同步频率,然后结合文件数据更新量,数据文件对应的变更数据采集的运行负载量(即数据同步负载量)。然后通过智能预测子单元预测每个当可用采集组件对应的全部运行变更数据采集任务对应的全部数据文件的变更数据采集要承受的数据总量(即运行任务预测负载量)以及每个未分发变更数据采集任务对应的预测运行负载量,为完成任务智能分发提供分配参考,为实现多个采集组件负载量的趋向均匀分配提供依数据支撑。最后通过智能分发子单元根据运行任务预测负载量以及预测运行负载量,参考每个可用采集组件的当前任务负载量,基于负载量均匀趋向原则,对未分发变更数据采集任务进行分配,最大可能的缩短不同运行采集组件的负载差距,避免运行采集组件之间负载差异较大导致部分采集组件的运行压力较大致使采集组件运行异常的问题,尽可能的保证多个运行采集组件保持者相近的运行压力,缩短不同异构数据或者存在引擎同步数据速度的差异的同时完成未分发变更数据采集任务地分配。
实施例7:
在实施例5的基础上,智能任务分发子单元,还包括:
任务分类子单元,用于基于未分发变更数据采集任务的任务来源,对未分发变更数据采集任务进行分类,获得组件下线存续任务和全新任务;
位置控制子单元,用于在未分发变更数据采集任务为组件下线存续任务时,通过任务运行状态存储模块获取存续任务对应的采集间断位置信息;
在组件下线存续任务分发完成后,基于采集间断位置信息,对其对应的采集组件的采集开始位置进行调节,控制所述采集组件从采集间断位置进行续采集。
本实施例中,全新任务是指用户提交的进行任务分发的变更数据采集任务。
本实施例中,组件下线存续任务是指需要进行任务再分发的变更数据采集任务。
本实施例中,采集间隔信息是指在采集组件下线时进行存续的数据主要包括变更数据采集任务的运行位置。
本实施例中,续采集是指被中断的变更数据采集任务继续运行。
上述技术方案的有益效果:本发明通过任务分类子单元完成了对任务接收单元接收到的变更数据采集任务的自动分类,为变更数据采集任务的运行起点确认提供了基础;通过位置控制子单元完成被中断的变更数据采集任务的起点的确定,实现了被中断的变更数据采集任务的中断续采集,有效避免重复采集增长某个异构数据库或者存储引擎的数据同步时间的同时也避免了资源的无效占用。
实施例8:
在实施例6的基础上,任务管理中心,如图3所示,还包括:
任务监测单元,用于当变更数据采集任务数量减少时,判断是否存在空闲采集组件,若存在,则控制空闲采集组件下线;
否则,获取全部采集组件当前的任务负载总量以及可负载总量,基于可负载总量以及任务负载总量,计算组件任务负载率;
当存在组件任务负载率大于等于预设阈值时,判定当前不存在可下线采集组件;
当存在组件任务负载率小于预设阈值时,判定当前存在可下线采集组件,基于组件任务负载率以及任务负载总量,参考每个采集组件的当前任务负载量,确定待下线采集组件,并将待下线采集组件对应的变更数据采集任务发送任务接收单元进行任务存续,并等待任务分发单元进行任务再分发。
本实施例中,空闲采集组件是指没有执行任何采集任务的采集组件。
本实施例中,任务负载总量是指正在运行的全部采集组件的总任务量。一件变更数据采集任务为一个任务负载。
本实施例中,可负载总量是指正在运行的全部采集组件的最大任务负载量的和。
本实施例中,组件任务负载率是指正在运行的全部采集组件的总的任务负载比例,是任务负载总量和可负载总量的比值。
本实施例中,预设阈值是指预设的全部运行采集组件的最低负载率。
本实施例中,待下线采集组件是指即将下线的采集组件,优先下线当前任务负载量较小的采集组件,可以在保证资源不浪费的前提下,尽可能的减少需要再分配的变更数据采集任务的数量,有效降低***的运算压力。
如图5所示,由于变更数据采集任务较少,将采集组件3进行下线处理,将采集组件3的运行任务B1进行再分配至采集组件1,采集组件1在保持原运行任务A1的正常运行下同时运行任务B1,采集组件2继续进行运行任务B1。在不影响非待下线采集组件运行任务的前提下,对待下线采集组件的运行任务进行再分配,保证待下线采集组件对应的运行任务的正常进行。
上述技术方案的有益效果:本发明通过任务监测单元当变更数据采集任务数量减少时,判断是否存在空闲采集组件,若存在,则控制空闲采集组件下线;否则,获取全部采集组件当前的任务负载总量以及可负载总量,基于可负载总量以及任务负载总量,计算组件任务负载率;当存在组件任务负载率大于等于预设阈值时,判定当前不存在可下线采集组件;当存在组件任务负载率小于预设阈值时,判定当前存在可下线采集组件,基于组件任务负载率以及任务负载总量,参考每个采集组件的当前任务负载量,确定待下线采集组件,并将待下线采集组件对应的变更数据采集任务发送任务接收单元进行任务存续,并等待任务分发单元进行任务再分发。在变更数据采集任务数量发生变化时,自动完成空闲采集组件或者非必要采集组件(即待下线采集组件)的自动下线控制,确保在变更数据采集任务减少时,将正在运行的采集组件的组件任务负载率控制在一定的水平内,在保证采集组件运行负载压力不大的前提下,有效避免资源浪费。
实施例9:
在实施例1的基础上,任务运行状态存储模块,如图6所示,包括:
状态记录单元,用于接收并记录采集组件发送的各个变更数据采集任务对应的任务运行状态信息;
间断续存单元,用于在监测到采集组件运行异常时,获取异常变更数据采集任务对应的运行位置生成采集间断位置信息。
上述技术方案的有益效果:本发明后通过状态记录单元记录各个变更数据采集任务的任务运行状态信息,实现了任务数据的自动备份;在在监测到采集组件运行异常时,通过间断续存单元获取异常变更数据采集任务对应的运行位置生成采集间断位置信息,实现异常采集组件任务运行状态的自动存续,以便某个采集组件异常时,将其下运行的变更数据采集任务分发至其它采集组件进行续采集,并确保所述续采集时可以从上次位置继续。
实施例10:
本发明提供一种可扩展的CDC方式达梦数据库同步***的应用包括实施例1-9任意一项所述的一种可扩展的CDC方式达梦数据库同步***在计算机以及数据处理领域的应用。
上述技术方案的有益效果:本发明然后通过任务管理中心将用户提交的变更数据采集任务分发至采集组件,实现了达梦数据库对采集任务的统一调度,并维护采集组件所有运行中的变更数据采集任务,确保每个变更数据采集任务的在运行异常时迅速完成变更数据采集任务向其他采集组件的再分发,保证变更数据采集任务的时刻都能正常运行。其后,通过多个采集组件实时采集达梦数据库的变更数据发送至kafka中,并将变更数据采集任务的任务运行状态信息上报至数据任务运行状态存储模块中,实现了多个达梦数据库节点的不同变更数据的采集同步的。然后通过任务运行状态存储模块存储各个变更数据采集任务的任务运行状态信息,以便某个采集组件异常时,将其下运行的变更数据采集任务分发至其它采集组件进行续采集,并确保所述续采集时可以从上次位置继续,最后通过不同的入库连接器连接采集组件中的kafka,将采集组件采集到的变更数据同步到不同的异构数据库或存储引擎,完成达梦数据库同时向多个数据库或存储引擎的数据同步。本发明实现了多个达梦数据库节点的不同变更数据地采集以及向多个异构数据库或存储引擎地同步,完成达梦数据库的快速同步、备份以及流处理操作。自动将变更数据采集任务自动分配给多个采集组件,并在变更数据采集任务数量发生变化时,自动进行采集组件的启动或者下线,保证在变更数据采集任务过多时资源的充足,或者在变更数据采集任务减少时资源的不浪费。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种可扩展的CDC方式达梦数据库同步***,其特征在于,包括:多个采集组件、任务管理中心、任务运行状态存储模块以及入库组件,其中,
采集组件,用于实时采集达梦数据库的变更数据发送至kafka中,并将变更数据采集任务的任务运行状态信息上报至数据任务运行状态存储模块中;
其中,每个采集组件同时执行多个变更数据采集任务;
任务管理中心,用于将用户提交的变更数据采集任务分发至采集组件,并维护采集组件所有运行中的变更数据采集任务;
任务运行状态存储模块,用于存储各个变更数据采集任务的任务运行状态信息;
入库组件,用于通过不同的入库连接器连接采集组件中的kafka,将采集组件采集到的变更数据同步到不同的异构数据库或存储引擎;
其中,任务管理中心,包括:
任务接收单元,用于接收用户提交的达梦数据库的变更数据采集任务以及组件下线存续任务,并进行任务记录,生成任务队列;
任务分发单元,用于基于当前正常运行地采集组件的当前任务负载量,对最新变更数据采集任务进行分发;
运行控制单元,用于在监测到采集组件运行异常时,控制异常采集组件下线,并将异常采集组件对应的变更数据采集任务发送至任务接收单元进行任务存续,等待任务分发单元进行任务再分发;
任务监测单元,用于当变更数据采集任务数量减少时,判断是否存在空闲采集组件,若存在,则控制空闲采集组件下线;
否则,获取全部采集组件当前的任务负载总量以及可负载总量,基于可负载总量以及任务负载总量,计算组件任务负载率;
当存在组件任务负载率大于等于预设阈值时,判定当前不存在可下线采集组件;
当存在组件任务负载率小于预设阈值时,判定当前存在可下线采集组件,基于组件任务负载率以及任务负载总量,参考每个采集组件的当前任务负载量,确定待下线采集组件,并将待下线采集组件对应的变更数据采集任务发送任务接收单元进行任务存续,并等待任务分发单元进行任务再分发。
2.根据权利要求1所述的一种可扩展的CDC方式达梦数据库同步***,其特征在于,采集组件,包括:
数据采集控制单元,用于接收任务管理中心分发的变更数据采集任务,并根据变更数据采集任务对应的采集数据范围,开始进行变更数据采集;
任务状态发送单元,用于基于所述变更数据采集任务的运行位置以及运行状态,结合执行所述变更数据采集任务的采集组件的身份编码,生成任务运行状态信息,发送至数据任务运行状态存储模块;
kafka数据处理单元,用于接收数据采集控制单元采集到的变更数据,并将变更数据计入到Kafka Topic中。
3.根据权利要求2所述的一种可扩展的CDC方式达梦数据库同步***,其特征在于,任务状态发送单元,包括:
组件运行监测子单元,用于对同一采集组件对应的多个运行状态按照预设时间间隔进行检测,判断所述采集组件运行地全部变更数据采集任务中是否存在运行位置衔接不连贯或者运行位置更换紊乱,若存在,则判定所述采集组件运行异常;
否则,判定所述采集组件运行正常。
4.根据权利要求1所述的一种可扩展的CDC方式达梦数据库同步***,其特征在于,任务分发单元,包括:
组件智能启动子单元,用于基于任务运行状态存储模块,分别获取当前正常运行地采集组件的每个变更数据采集任务的运行状态,根据运行状态,确定各个采集组件的当前任务负载量;
分别将每个采集组件的当前任务负载量与预设负载量进行对比,判断是否存在可用采集组件,并计算全部可用采集组件对应的可执行任务量,当可执行任务量小于未分发变更数据采集任务对应的待分配总量时,启动新的采集组件添加到可用采集组件中;
否则,保持当前可用采集组件不变;
智能任务分发子单元,用于将未分发变更数据采集任务分发至对应的可用采集组件。
5.根据权利要求4所述的一种可扩展的CDC方式达梦数据库同步***,其特征在于,智能任务分发子单元,包括:
数据确认子单元,用于对任务接收单元记录的当前执行任务的数据同步类型以及采集数据范围进行确认;
其中,当前执行任务包括已分发变更数据采集任务和未分发变更数据采集任务;
智能处理子单元,用于获取达梦数据库的历史同步日志,基于达梦数据库对应的第一数据库存储分类对历史同步日志进行分类,获得日志分类组;
根据时间轴,分别对全部历史同步日志进行排序,获得变更序列,根据变更序列,计算每个日志分类组对应表空间的变更频率;
获取达梦数据库对应的第二数据库存储分类,基于第二数据库存储分类,对日志分类组进行聚类,获得不同表空间对应的多个数据文件的对应的子日志分类组,计算各个子日志分类组在对应的日志分类组中日志占比以及文件数据更新量;
基于表空间的变更频率以及日志占比,预测达梦数据库中每个数据文件的文件数据同步频率,结合数据文件对应的文件数据更新量,预测每个数据文件对应的数据同步负载量;
智能预测子单元,用于基于当前执行任务对应的数据同步类型以及采集数据范围,参考达梦数据库每个数据文件对应的数据同步负载量,计算每个可用采集组件的运行任务预测负载量以及每个未分发变更数据采集任务对应的预测运行负载量;
智能分发子单元,用于根据运行任务预测负载量以及预测运行负载量,参考每个可用采集组件的当前任务负载量,基于负载量均匀趋向原则,对未分发变更数据采集任务进行分配。
6.根据权利要求4所述的一种可扩展的CDC方式达梦数据库同步***,其特征在于,智能任务分发子单元,还包括:
任务分类子单元,用于基于未分发变更数据采集任务的任务来源,对未分发变更数据采集任务进行分类,获得组件下线存续任务和全新任务;
位置控制子单元,用于在未分发变更数据采集任务为组件下线存续任务时,通过任务运行状态存储模块获取存续任务对应的采集间断位置信息;
在组件下线存续任务分发完成后,基于采集间断位置信息,对其对应的采集组件的采集开始位置进行调节,控制所述采集组件从采集间断位置进行续采集。
7.根据权利要求1所述的一种可扩展的CDC方式达梦数据库同步***,其特征在于,任务运行状态存储模块,包括:
状态记录单元,用于接收并记录采集组件发送的各个变更数据采集任务对应的任务运行状态信息;
间断续存单元,用于在监测到采集组件运行异常时,获取异常变更数据采集任务对应的运行位置生成采集间断位置信息。
8.一种可扩展的CDC方式达梦数据库同步方法包括权利要求1-7任意一项所述的一种可扩展的CDC方式达梦数据库同步***在计算机以及数据处理领域的应用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410194386.8A CN117763051B (zh) | 2024-02-22 | 2024-02-22 | 一种可扩展的cdc方式达梦数据库同步***及其应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410194386.8A CN117763051B (zh) | 2024-02-22 | 2024-02-22 | 一种可扩展的cdc方式达梦数据库同步***及其应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117763051A CN117763051A (zh) | 2024-03-26 |
CN117763051B true CN117763051B (zh) | 2024-04-26 |
Family
ID=90322334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410194386.8A Active CN117763051B (zh) | 2024-02-22 | 2024-02-22 | 一种可扩展的cdc方式达梦数据库同步***及其应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117763051B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222119A (zh) * | 2019-05-23 | 2019-09-10 | 武汉达梦数据库有限公司 | 一种异构数据库的数据转换同步方法、设备及存储介质 |
CN111930465A (zh) * | 2020-05-28 | 2020-11-13 | 武汉达梦数据库有限公司 | 一种基于Kubernetes的达梦主从集群部署方法和装置 |
CN116614277A (zh) * | 2023-05-24 | 2023-08-18 | 中国电子科技集团公司第三十研究所 | 基于机器学习与异常行为分析的网络******与方法 |
CN117473021A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于cdc方式的达梦数据库增量同步实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201704973D0 (en) * | 2017-03-28 | 2017-05-10 | Gb Gas Holdings Ltd | Data replication system |
-
2024
- 2024-02-22 CN CN202410194386.8A patent/CN117763051B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110222119A (zh) * | 2019-05-23 | 2019-09-10 | 武汉达梦数据库有限公司 | 一种异构数据库的数据转换同步方法、设备及存储介质 |
CN111930465A (zh) * | 2020-05-28 | 2020-11-13 | 武汉达梦数据库有限公司 | 一种基于Kubernetes的达梦主从集群部署方法和装置 |
CN116614277A (zh) * | 2023-05-24 | 2023-08-18 | 中国电子科技集团公司第三十研究所 | 基于机器学习与异常行为分析的网络******与方法 |
CN117473021A (zh) * | 2023-12-28 | 2024-01-30 | 广州睿帆科技有限公司 | 一种基于cdc方式的达梦数据库增量同步实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117763051A (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6816860B2 (en) | Database load distribution processing method and recording medium storing a database load distribution processing program | |
CN112379995B (zh) | 一种基于dag的单元化分布式调度***及方法 | |
CA2785398C (en) | Managing queries | |
US6393455B1 (en) | Workload management method to enhance shared resource access in a multisystem environment | |
CN109857558A (zh) | 一种数据流处理方法及*** | |
US8171474B2 (en) | System and method for managing, scheduling, controlling and monitoring execution of jobs by a job scheduler utilizing a publish/subscription interface | |
US20190014059A1 (en) | Systems and methods for allocating computing resources in distributed computing | |
CN111078396A (zh) | 一种基于多任务实例的分布式数据接入方法和*** | |
CN111064672A (zh) | 云平台通信***、选举方法及资源调度管理方法 | |
CN116777182B (zh) | 半导体晶圆制造执行任务派工方法 | |
CN113687956A (zh) | 消息路由分发方法、装置、计算机设备及存储介质 | |
CN112269647A (zh) | 节点调度、切换与协调方法及其相应的装置、设备、介质 | |
CN116010064A (zh) | Dag作业调度和集群管理的方法、***及装置 | |
CN111290767A (zh) | 具有业务快速恢复功能的容器组更新方法及*** | |
CN117763051B (zh) | 一种可扩展的cdc方式达梦数据库同步***及其应用 | |
CN116089079A (zh) | 一种基于大数据的计算机资源分配管理***及方法 | |
CN114598591B (zh) | 嵌入式平台节点故障恢复***及方法 | |
CN115629854A (zh) | 分布式任务调度方法、***、电子设备和存储介质 | |
CN114416717A (zh) | 一种数据处理方法及架构 | |
CN112835717A (zh) | 一种用于集群的集成应用处理方法和装置 | |
CN115981825B (zh) | 基于混合式共享状态视图架构的集群并行调度*** | |
JPH11120147A (ja) | 負荷分散制御方法 | |
CN113961628B (zh) | 一种集散式数据分析控制*** | |
CN111782386B (zh) | 一种基于历史业务流量的数据库调度方法及*** | |
CN116991618A (zh) | 信息处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |