一种多数据存储方式的数据同步系统的制作方法

文档序号:32796474发布日期:2023-01-03 22:29阅读:49来源:国知局
一种多数据存储方式的数据同步系统的制作方法

1.本发明涉及数据存储技术领域,具体地说是一种多数据存储方式的数据同步系统。


背景技术:

2.现代数据库的种类与用途越来越多,有针对数据临时存储的消息队列,有针对数据查询速率的内存数据库,也有针对持久化存储的数据库。所以在如今,越来越多的项目会同时采用这两种或多种数据存储方式,但同时使用这两种或多种不同的数据存储方式,如果使用人工方式同步不同数据库中的数据,不仅使得维护成本攀升,也会造成一定时间内的两边数据不一致的情况。并且仅靠人工的软件,监控运行状态和发现运行故障,已经无法维持系统稳定运行。而此方法不仅自动将某一个数据库中获取的新数据传入其他数据库中,并且记录了各种运行状态和不同模块事件的重要数据,能够帮助运维人员理解系统状态,并且分析、查找故障根本原因。
3.传统上,数据同步与数据维护需要运维人员手动的进行数据源数据库的数据导出与数据目标数据库的数据导入,这不仅需要大量的传输时间,也会要求整个系统服务停机一段时间来保证各数据库之间的数据的完整性一致性,并且不同数据库中存储数据的格式也不一致,对于数据的格式转换运维人员通常基于人工手段检查日志来发现异常分析故障,比如关键字搜索和规则匹配等等,这极大的增加了维护成本。而庞大的系统项目的正常运行依赖于各个节点的稳定且高效的工作,一旦系统的一部分数据没有进行同步,用户查询的数据不是最新真实的数据,可能造成的损失将会是用户无法接受的。其次传统的导入方式一旦有一条数据格式出错,将会影响整次的导入报错。因此,基于以上情况,人工导入导出数据库来进行多数据库的同步的方法耗力、耗时、并且不能达到预期的查错效果。
4.数据库运维中、如何及时高效的对多数据库数据进行同步,是需要解决的技术问题。


技术实现要素:

5.本发明的技术任务是针对以上不足,提供一种多数据存储方式的数据同步系统,来解决数据库运维中、如何及时高效的对多数据库数据进行同步的技术问题。
6.第一方面,本发明的一种多数据存储方式的数据同步系统,用于实现一个项目里多个数据存储方式的数据同步,所述系统包括:
7.数据源模块,所述数据源模块用于指定源数据库、目标数据库以及解析方式,对于指定的每个源数据库,用于监听所述源数据库并读取所述源数据库中写入的新数据,并将所述新数据作为原始数据输出;
8.数据处理模块,所述数据处理模块与所述数据源模块交互并从数据源模块接收原始数据,对于接收的原始数据,用于基于对应的解析方式对所述原始数据进行解析处理,得到与目标数据库格式适配的处理后数据;
9.数据目标模块,所述数据目标模块与所述数据处理模块交互并从数据处理模块接收处理后数据,用于将所述处理后数据写入对应的目标数据库进行持久化存储;
10.日志信息模块,所述日志信息模块用于监听所述数据源模块、数据处理模块以及数据目标模块并进行异常检测,并形成各个模块的日志信息。
11.作为优选,所述数据源模块配置有多个数据同步器,对于每个数据同步器,所述数据源模块用于指定所述数据同步器的源数据库、目标数据库以及解析方式;
12.所述数据同步器用于以独立进程的方式运行并监听对应源数据库内是否有新数据写入,监听到源数据库内写入有新数据时,所述数据同步器用于从源数据库中读取新数据并将新数据作为原始数据传输至数据处理模块。
13.作为优选,所述数据源模块用于从源数据库读取新数据时,对读取地址进行标记形成标记记录。
14.作为优选,所述数据处理模块用于通过如下步骤对原始数据进行解析处理:
15.将大批量的原始数据进行分割,分割为逐条数据;
16.对每条数据进行格式转换,将数据转换为目标数据库支持的数据格式;
17.每条数据均转换为目标数据库支持的数据格式后,判断数据的valid字段是否可用,将可用的数据传输至数据目标模块。
18.作为优选,对于每条数据,将当前数据转换为目标数据库支持的数据格式时,如果当前数据的数据格式错误、无法转换为目标数据库支持的数据格式,形成报错信息并反馈至日志信息模块,并忽略当前数据,对下一条数据进行格式转换。
19.作为优选,所述数据目标模块用于记录当前数据的写入地址作为标记,并记录写入的处理后数据的条数和时间作为记录信息。
20.作为优选,所述日志信息模块中配置有多个检测参数,包括info、debug、 error;
21.所述日志信息模块用于基于每项检测参数对数据源模块、数据处理模块以及数据目标模块进行异常检测形成,每个模块对应的日志信息包括运行状态信息和报错信息;
22.如果日志信息中存在error信息,需要运维人员查看对应的数据为何报错以及该如何解决;
23.如果日志信息中存在info信息与debug信息,方便运维人员查看error 信息前后各逻辑的正确与否。
24.作为优选,所述数据源模块、数据处理模块、数据目标模块之间通过golang的管道功能进行数据传输。
附图说明
25.下面结合附图对本发明进一步说明。
26.图1为实施例1一种多数据存储方式的数据同步系统的工作流程框图。
具体实施方式
27.本发明实施例提供一种多数据存储方式的数据同步系统,用于解决数据库运维中、如何及时高效的对多数据库数据进行同步的技术问题。
28.实施例:
29.本发明一种多数据存储方式的数据同步系统,用于实现一个项目里多个数据存储方式的数据同步,该系统包括数据源模块、数据处理模块、数据目标模块、以及日志信息模块。
30.数据源模块用于指定源数据库、目标数据库以及解析方式,对于指定的每个源数据库,用于监听所述源数据库并读取所述源数据库中写入的新数据,并将所述新数据作为原始数据输出。
31.本实施例中,数据源模块包括多个数据同步器,每个数据同步器指定有对应的源数据库、目标数据库和解析方式,每个数据同步器以独立进程的方式配置于对应的源数据库并对对应的源数据库进行持续监听,当监听到源数据库中有新数据时,将读取新数据并将该新数据作为原始数据传输至数据处理模块。
32.作为具体实施,用户写入源数据库中新数据或其他数据同步器同步至源数据库新数据时,数据同步器监听到该源数据库中写入有新数据,则从源数据库中读取到新数据,并通过golang的管道功能将新数据传输给数据处理模块。同时,数据源模块对于该次的读取到的地点进行记录,下次便从该条记录记录的位置进行读取,以保证下次读取到的数据均为新数据。
33.数据处理模块与所述数据源模块交互并从数据源模块接收原始数据,对于接收的原始数据,用于基于对应的解析方式对所述原始数据进行解析处理,得到与目标数据库格式适配的处理后数据。
34.本实施例中数据处理模块用于将数据源模块传输过来的大批量数据进行分割,并解析成目标数据库适配的格式,并将垃圾数据以及格式错误的数据丢弃,将正确的数据通过管道传输给数据目标模块。
35.因为写入数据源的数据为大批量数据,所以数据处理模块将数据分成单行的数据,若有数据报错,会将报错内容与该条数据返回给用户,忽略该条数据继续解析下一条数据。由此避免了因为一条数据格式错误的原因,整次同步都报错返回的错误。数据处理模块用于通过如下步骤进行解析:
36.(1)将数据源传输过来的大量数据分割成逐条数据;
37.(2)将数据转换成数据目标支持的数据格式,若有格式错误无法转换的数据,反馈给运维人员进行手动处理,并且忽略该数据进行下一条数据的解析;
38.(3)将所有解析好的数据判断valid字段是否可用,将可用的数据通过 golang的管道传输到数据目标中,不可用的数据不作处理。
39.以kafka为例,写入的格式为标准json格式,数据处理模块用于通过json 解析或结构体传参赋值将原始数据转换成数据目标支持的数据格式。
40.数据目标模块与所述数据处理模块交互并从数据处理模块接收处理后数据,用于将所述处理后数据写入对应的目标数据库进行持久化存储。
41.本实施例中将数据处理模块传输过来的数据写入数据目标数据库,例如写入tdengine进行持久化存储,并保存记录信息(写入条数、写入时间以及写入的数据表名),以方便运维人员进行检查纠错与维护。
42.日志信息模块用于监听所述数据源模块、数据处理模块以及数据目标模块并进行异常检测,并形成各个模块的日志信息。
43.根据各个模块的日志信息,日志信息模块分析数据同步器程序的运行状态以及运行流程,如果有报错信息,也会清楚的反馈给运维人员是哪个部分出的错,为什么出的错,方便运维人员分析。
44.作为具体实施,日志信息模块中配置有多个检测参数,包括info、debug、 error以及其他参数,日志信息模块用于基于每项检测参数对数据源模块、数据处理模块以及数据目标模块进行异常检测形成异常检测记录,异常检测记录中包括运行状态信息和报错信息。如果异常检测记录中存在error信息,需要运维人员查看对应的数据为何报错以及该如何解决;如果异常检测记录中存在info信息与debug信息,方便运维人员查看error信息前后各逻辑的正确与否。
45.上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1