CN111008244A - 一种用于数据库的同步和分析方法及系统 - Google Patents

一种用于数据库的同步和分析方法及系统 Download PDF

Info

Publication number
CN111008244A
CN111008244A CN201911159233.5A CN201911159233A CN111008244A CN 111008244 A CN111008244 A CN 111008244A CN 201911159233 A CN201911159233 A CN 201911159233A CN 111008244 A CN111008244 A CN 111008244A
Authority
CN
China
Prior art keywords
data
mongodb
greenplus
analysis
synchronization
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.)
Pending
Application number
CN201911159233.5A
Other languages
English (en)
Inventor
梁丽琴
郑汉军
许光锋
郑乐乐
郑少明
黄惠海
林山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xiamen Anscen Network Technology Co ltd
Original Assignee
Xiamen Anscen Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Xiamen Anscen Network Technology Co ltd filed Critical Xiamen Anscen Network Technology Co ltd
Priority to CN201911159233.5A priority Critical patent/CN111008244A/zh
Publication of CN111008244A publication Critical patent/CN111008244A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明给出了一种用于数据库的同步和分析方法及系统,包括获取MongoDB中的操作日志,解析获取MongoDB的数据操作,其中操作日志中包括数据的新增、删除和更新操作;响应于捕获MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;利用Bireme消费Kafka消息队列中的更改记录消息,将MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将数据同步更新至目标数据源Greenplum中;响应于Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。这种方式可以实现对源数据库影响最小的完成数据的实时同步,能够在不影响现有架构的情况下完成定时对海量数据进行统计分析。

Description

一种用于数据库的同步和分析方法及系统
技术领域
本发明涉及数据库应用技术领域,尤其是一种用于数据库的同步和分析方法及系统。
背景技术
在计算机系统结构研究领域中,大规模并行处理(Massively ParallelProcessing,MPP)是指计算机系统中使用大量的、同构的、简单的处理单元(PE,ProcessingEIement),通过PE之间的并行工作获得较高的系统性能。采用MPP体系结构中,一般使用大量的PE节点,PE之间采用高性能的交换网络进行连接,每个PE拥有本地存储器,各个PE之间通过消息传递进行通信。MPP系统中PE的并行程度较高,减少了共享存储所带来的系统开销,适合大规模的系统扩展。另一方面。MPP系统的程序设计较为复杂,主要表现在计算任务的划分及其与PE节点之间的映射上。
大规模并行处理(Massively Parallel Processing,MPP)数据库是一种大量处理器在其中并行地进行一套计算的数据库。在MPP系统中,多个处理器以协作的方式处理程序,其中,每一个处理器处理所述程序的不同部分和/或不同数据。MPP系统的计算资源是分布式的,运行在不同的物理/虚拟节点上。MPP数据库系统可以基于无共享(Shared-Nothing,SN)或共享磁盘(Shared Disk,SD)架构,其中,数据库中的表被划分成多个分区分配至不同的处理节点。对于数据库查询,根据数据分布和优化的执行方案划分每次查询的任务,将其分配至所述处理节点。每个处理节点中的处理实体仅管理自己部分的数据。但是,在执行过程中,所述处理实体可以相互进行通信,以交换必要信息。
由于现有的MPP数据库的处理方式是将数据存储在MongoDB中,在对数据进行统计分析的过程中遇到两个问题。首先数据统计分析需要涉及到对跨库、跨表的复杂关联查询,而MongoDB对其支持较差。其次在数据量大的情况下直接对库进行统计会严重影响到其他查询性能。所以需要一种方式能够在不影响现有架构的情况下完成定时对海量数据进行统计分析。
发明内容
为了解决现有技术中MongoDB对跨库、跨表的复杂关联查询支持较差等问题,本发明提出了一种用于数据库的同步和分析方法及系统,用以解决现有技术存在的上述问题。
在第一个方面,本发明提出了一种用于数据库的同步和分析方法,该方法包括以下步骤:
S1:获取MongoDB中的操作日志,解析获取MongoDB的数据操作,其中操作日志中包括数据的新增、删除和更新操作;
S2:响应于捕获MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;
S3:利用Bireme消费Kafka消息队列中的更改记录消息,将MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将数据同步更新至目标数据源Greenplum中;以及
S4:响应于Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。
优选的,MongoDB包括主节点和从节点,主节点中记录有操作日志。利用MongoDB复制提供了数据的冗余备份,可在多个服务器上存储数据副本,提高了数据的可用性,同时保证了数据的安全性。
进一步优选的,步骤S1具体为利用Debezium平台捕获MongoDB中的数据实时动态变化,即操作日志。利用Debezium提供的低延迟的流式处理平台,可以避免错过数据的动态变化,保证所有事件都能正确的被捕获处理。
优选的,步骤S3具体为:配置Bireme,响应于目标数据源Greenplum的地址、用户名和密码与MongoDB中对应的地址、用户名和密码一致,将MongoDB中需要同步的数据同步至目标数据源Greenplum中。利用Bireme可以同时从多个数据源并行读取数据,将数据同步加载到目标数据库,提升数据同步的性能。
优选的,步骤S4还包括配置Quartz调度规则对Greenplum中利用sql进行数据的统计分析。凭借配置Quartz调度规则可以实现定时数据统计分析,提升了使用性能。
进一步优选的,调度规则为通过任务调度和/或按调度时间来进行调度作业。不同调度规则的配置可以保证不同的使用需求。
进一步优选的,步骤S4中的统计分析包括多表关联或单表的复杂统计分析。凭借不同的分析方式,可以完成不同要求的多表或单表的统计分析。
根据本发明的第二方面,提出了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机处理器执行时上述方法。
根据本发明的第三方面,提出了一种用于数据库的同步和分析系统,该系统包括:
MongoDB解析单元:配置用于获取MongoDB中的操作日志,解析获取MongoDB的数据操作,其中操作日志中包括数据的新增、删除和更新操作;
Kafka连接单元:配置用于响应于捕获MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;
数据同步单元:配置用于利用Bireme消费Kafka消息队列中的更改记录消息,将MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将数据同步更新至目标数据源Greenplum中;以及
数据分析单元:配置用于响应于Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。
优选的,该系统还包括Quartz调度单元:配置用于配置Quartz调度规则对Greenplum中利用sql进行数据的统计分析。
本发明提出了一种用于数据库的同步和分析方法及系统,采用Debezium+Kafka+Bireme的来同步MongoDB库的数据,基于MongoDB的副本集技术,通过解析MongoDB的oplog从而捕获到Mongo的新增、更新和删除操作,然后将数据写入到Kafka消息队列中。而Bireme是一个数据仓库增量同步工具,消费Debezium同步Kafka中的数据,转换成Delete和Insert集合,从而将数据更新到目标数据源中(Greenplum)。这种方式可以实现对源数据库影响最小的数据的实时同步,能够在不影响现有架构的情况下完成定时对海量数据进行统计分析。
附图说明
包括附图以提供对实施例的进一步理解并且附图被并入本说明书中并且构成本说明书的一部分。附图图示了实施例并且与描述一起用于解释本发明的原理。将容易认识到其它实施例和实施例的很多预期优点,因为通过引用以下详细描述,它们变得被更好地理解。通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是本发明可以应用于其中的示例性系统架构图;
图2是本发明的一个实施例的用于数据库的同步和分析方法的流程图;
图3是本发明的一个具体的实施例的用于数据库的同步和分析方法的流程图;
图4是本发明的一个实施例的用于数据库的同步和分析系统的框架图;
图5是适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
图1示出了可以应用本申请实施例的用于数据库的同步和分析方法的示例性系统架构100。
如图1所示,系统架构100可以包括数据服务器101,网络102和主服务器103。网络102用以在数据服务器101和主服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
主服务器103可以是提供各种服务的服务器,例如对数据服务器101上传的信息进行处理的数据处理服务器。数据处理服务器可以对捕获的MongoDB的操作日志进行解析,并将解析数据写入Kafka消息队列中。
需要说明的是,本申请实施例所提供的用于数据库的同步和分析方法一般由主服务器103执行,相应地,用于数据库的同步和分析系统一般设置于主服务器103中。
需要说明的是,数据服务器和主服务器可以是硬件,也可以是软件。当为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。
应该理解,图1中的数据服务器、网络和主服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的一个实施例的用于数据库的同步和分析方法,图2示出了根据本发明的实施例的用于数据库的同步和分析方法的流程图。如图2所示,该方法包括以下步骤:
S201:获取MongoDB中的操作日志,解析获取MongoDB的数据操作,其中操作日志中包括数据的新增、删除和更新操作;基于MongoDB的副本集技术,可以更为容易地捕捉到数据的新增、删除或更新的操作。
在具体的实施例中,MongoDB的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。MongoDB各个节点常见的搭配方式可包括一主一从和一主多从的配合方式。主节点记录在其上的所有操作日志oplog,从节点定期从主节点获取这些操作日志oplg,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
在优选的实施例中,利用Debezium平台捕获MongoDB的数据实时动态变化,Debezium为所有的数据库更改事件提供了一个统一的模型,所以不用担心每一种数据库管理系统的错综复杂性。另外,由于Debezium用持久化的、有副本备份的日志来记录数据库数据变化的历史,因此可以随时停止再重启,而不会错过它停止运行时发生的事件,保证了所有的事件都能被正确地、完全地处理掉。
S202:响应于捕获MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。利用Kafka可以允许独立的扩展或者修改两边的处理过程,只需确保他们之间遵守同样的接口约束,具有很强的扩展性、灵活性、可恢复性。
S203:利用Bireme消费Kafka消息队列中的更改记录消息,将MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将数据同步更新至目标数据源Greenplum中。
在具体的实施例中,Bireme是一个Greenplum/HashData数据仓库的增量同步工具。支持MySQL、PostgreSQL和MongoDB数据源,采用小批量加载的方式提升数据同步的性能,默认加载延迟时间为10秒钟。
在具体的实施例中,采用Debezium+Kafka+Bireme的来同步MongoDB库的数据,其中Debezium是用于捕获数据实时动态变化的分布平台,基于MongoDB的副本集技术,通过解析MongoDB的oplog从而捕获到Mongo的新增、更新和删除操作,然后将数据写入到Kafka消息队列中。而Bireme是一个数据仓库增量同步工具,消费Debezium同步Kafka中的数据,转换成Delete和Insert集合,从而将数据更新到目标数据源中(Greenplum)。这种方式可以实现对源数据库影响最小的完成数据的实时同步。
S204:响应于Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。利用sql极大的灵活性和强度的功能可以较为轻松的完成对数据的统计和分析。
在具体的实施例中,Greenplum是一个开源的、分布式的MPP数据库解决方案。主要是用于信息分析处理的OLAP类型系统。通过ShareNothing架构完成对海量数据的存储和处理,通过实时、准实时的数据加载来实现数据的更新。因为业务需求需要对MongoDB数据库中数据进行关联分析,但是MongoDB数据对跨库、跨表的复杂关联查询支持太差。
在具体的实施例中,统计分析包括单表的复杂统计分析和多表关联的复杂统计分析,以满足不同需求的数据库的数据分析要求。
在优选的实施例中,还包括调度规则来对数据进行定时统计分析。具体可以为配置Quartz调度规则对Greenplum中利用sql进行数据的统计分析。Quartz调度规则可以为通过任务调度和/或按调度时间来进行调度作业。
应当认识到,除了使用Quartz调度之外,还可以采用其他的任务调度方式,例如Timer、JCronTab或ScheduledExecutor,同样可以实现本发明的技术效果。
图3示出了本发明的一个具体的实施例的用于数据库的同步和分析方法流程图,该方法包括:
301:MongoDB开启副本集。启动主MongoDB:mongo--port 27007--dbpath"/data/mongodata/27007/data"--replSet rs0;启动副本MongoDB:mongo--port 27017--dbpath"/data/mongodata/27007/data";进入主mongo命令窗口添加副本集:rs.add(127.0.0.1:27017)。
302:Debezium捕获数据。配置Debezium的MongoDB连接器,文件名MongoDB.Properties。
name=mongo-connector
connector.class=io.debezium.connector.mongodb.MongoDbConnector
mongodb.hosts=rs0/127.0.0.1:27007
mongodb.name=debeziumMongo
mongodb.user=root
mongodb.password=12345
collection.whitelist=db1.collection1,db1.collection2
其中name是任务的名字,需要唯一;mongodb.hosts:MongoDB主服务器地址和端口;mongodb.name是MongoDB副本集或分片集群的逻辑名称;mongodb.user和mongodb.password:MongoDB的用户名和密码;collection.whitelist:要同步集合,格式数据库名.集合名。
303:Kafka队列。启动Kafka连接器:bin/connect-standalone.shconfig/connect-standalone.properties mongodb.properties。
304:Bireme同步数据。配置Bireme同步数据:文件名etc/config.properties:
target.url=jdbc:postgresql://127.0.0.1:5432/syncdb
target.user=syncdb
target.passwd=syncdb
data_source=debeziumMongo
debeziumMongo.type=debezium
debeziumMongo.kafka.server=127.0.0.1:9092
debeziumMongo.kafka.groupid=bireme
debeziumMongo.kafka.namespace=debeziumMongo
state.server.addr=0.0.0.0
state.server.port=8080
其中target.url、target.user、target.passwd分别是Greenplum的地址、用户名和密码;data_source需要与上面的mongodb.name一致;debeziumMongo.kafka.server、debeziumMongo.kafka.groupid、debeziumMongo.kafka.namespace分别是连接Debezium写到的kafka地址,kafka消费的组名和对应的名称空间。state.server.addr和state.server.port是Bireme服务的端口。
文件名:etc/debeziumMongo.properties
db1.collection1=public.tb1
db1.collection2=public.tb1
其中db1.collection1和db1.collection2是源MongoDB数据库中要同步的表,public.tb1是Greenplum的目的表。
然后启动数据同步:bin/bireme start。
305:Greenplum数据库。使用Greenplum存储通过Bireme同步过来的数据,同时结合Greenplum可支持海量数据存储和多表联结和全表扫描等复杂查询的特点,对于Greenplum中的数据使用sql来实现多表关联或者单表的复杂统计分析,解决了MongDB对跨库、跨表的复杂关联查询支持差的问题。
306:Quartz调度。对于通过Greenplum中sql实现的统计分析,需要固化到程序中并实现定时调度。将统计分析实现到作业任务中,配置任务时间调度规则,通过任务调度按调度时间来调度作业,实现对数据的定时统计分析。
图4示出了本发明的一个实施例的用于数据库的同步和分析系统框架图。该系统包括依次连接的MongoDB解析单元401、Kafka链接单元402、数据同步单元403和数据分析单元404。
在具体的实施例中,MongoDB解析单元401:配置用于获取MongoDB中的操作日志,解析获取MongoDB的数据操作,其中操作日志中包括数据的新增、删除和更新操作;Kafka链接单元402:配置用于响应于捕获MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;数据同步单元403:配置用于利用Bireme消费Kafka消息队列中的更改记录消息,将MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将数据同步更新至目标数据源Greenplum中;以及数据分析单元404:配置用于响应于Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。
在优选的实施例中,该系统还包括Quartz调度单元,配置用于配置Quartz调度规则对Greenplum中利用sql进行数据的统计分析。将统计分析实现到作业任务中,配置任务时间调度规则,通过任务调度按调度时间来调度作业,实现对数据的定时统计分析。
下面参考图5,其示出了适于用来实现本申请实施例的电子设备的计算机系统500的结构示意图。图5示出的电子设备仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图5所示,计算机系统500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有系统500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本申请的方法中限定的上述功能。
需要说明的是,本申请所述的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本申请的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明提出的一种用于数据库的同步和分析方法及系统,使用基于MPP数据库实时同步和定时统计分析的方法,在不影响现有架构的情况下解决对数据的统计分析需求,引入MPP数据库,通过Debezium利用MongoDB副本集技术,解析MongoDB的操作日志oplog获取到数据库的更改记录并到Kafka队列中,然后Bireme消费Kafka中更改记录消息,解析为Greenplum的Insert和Delete语句实现数据的同步,进一步采用Quartz的作业,完成对表的关联统计分析,并将统计结果存储,该方案可以有效解决MongoDB对涉及跨库、跨表的复杂关联查询的支持较差的问题,并且在数据量大的情况下直接对库进行统计并不会影响其他查询性能,可以方便的在不影响现有架构的情况下完成定时对海量数据的统计分析。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括MongoDB解析单元、Kafka连接单元、数据同步单元和数据分析单元。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定。
作为另一方面,本申请还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取MongoDB中的操作日志,解析获取MongoDB的数据操作,其中操作日志中包括数据的新增、删除和更新操作;响应于捕获MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;利用Bireme消费Kafka消息队列中的更改记录消息,将MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将数据同步更新至目标数据源Greenplum中;响应于Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。
以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (10)

1.一种用于数据库的同步和分析方法,其特征在于,包括以下步骤:
S1:获取MongoDB中的操作日志,解析获取所述MongoDB的数据操作,其中所述操作日志中包括数据的新增、删除和更新操作;
S2:响应于捕获所述MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;
S3:利用Bireme消费所述Kafka消息队列中的更改记录消息,将所述MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将所述数据同步更新至所述目标数据源Greenplum中;以及
S4:响应于所述Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。
2.根据权利要求1所述的用于数据库的同步和分析方法,其特征在于,所述MongoDB包括主节点和从节点,所述主节点中记录有所述操作日志。
3.根据权利要求1或2所述的用于数据库的同步和分析方法,其特征在于,所述步骤S1具体为利用Debezium平台捕获所述MongoDB中的数据实时动态变化,即所述操作日志。
4.根据权利要求1所述的用于数据库的同步和分析方法,其特征在于,所述步骤S3具体为:配置Bireme,响应于所述目标数据源Greenplum的地址、用户名和密码与所述MongoDB中对应的地址、用户名和密码一致,将所述MongoDB中需要同步的数据同步至所述目标数据源Greenplum中。
5.根据权利要求1所述的用于数据库的同步和分析方法,其特征在于,所述步骤S4还包括配置Quartz调度规则对所述Greenplum中利用sql进行数据的统计分析。
6.根据权利要求5所述的用于数据库的同步和分析方法,其特征在于,所述调度规则为通过任务调度和/或按调度时间来进行调度作业。
7.根据权利要求5所述的用于数据库的同步和分析方法,其特征在于,所述步骤S4中的统计分析包括多表关联或单表的复杂统计分析。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被计算机处理器执行时实施权利要求1至7中任一项所述的方法。
9.一种用于数据库的同步和分析系统,其特征在于,包括:
MongoDB解析单元:配置用于获取MongoDB中的操作日志,解析获取所述MongoDB的数据操作,其中所述操作日志中包括数据的新增、删除和更新操作;
Kafka连接单元:配置用于响应于捕获所述MongoDB的数据操作,将被操作的数据写入Kafka消息队列中;
数据同步单元:配置用于利用Bireme消费所述Kafka消息队列中的更改记录消息,将所述MongoDB的数据解析为目标数据源Greenplum中的插入和删除语句,进而将所述数据同步更新至所述目标数据源Greenplum中;以及
数据分析单元:配置用于响应于所述Greenplum存储通过Bireme同步的数据,利用sql进行数据的统计分析。
10.根据权利要求9所述的一种用于数据库的同步和分析系统,其特征在于,还包括Quartz调度单元:配置用于配置Quartz调度规则对所述Greenplum中利用sql进行数据的统计分析。
CN201911159233.5A 2019-11-22 2019-11-22 一种用于数据库的同步和分析方法及系统 Pending CN111008244A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911159233.5A CN111008244A (zh) 2019-11-22 2019-11-22 一种用于数据库的同步和分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911159233.5A CN111008244A (zh) 2019-11-22 2019-11-22 一种用于数据库的同步和分析方法及系统

Publications (1)

Publication Number Publication Date
CN111008244A true CN111008244A (zh) 2020-04-14

Family

ID=70113852

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911159233.5A Pending CN111008244A (zh) 2019-11-22 2019-11-22 一种用于数据库的同步和分析方法及系统

Country Status (1)

Country Link
CN (1) CN111008244A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782667A (zh) * 2020-06-22 2020-10-16 成都校精灵科技有限公司 一种MongoDB更新数据的驱动方法、系统及存储介质
CN112487087A (zh) * 2020-11-17 2021-03-12 中国人寿保险股份有限公司 一种增量数据实时同步的方法及相关设备
CN112527945A (zh) * 2021-02-10 2021-03-19 中关村科学城城市大脑股份有限公司 一种地理空间大数据处理方法及装置
CN112667698A (zh) * 2021-01-04 2021-04-16 山西云媒体发展有限公司 一种基于融媒体平台的MongoDB数据同步方法
CN113297240A (zh) * 2021-06-01 2021-08-24 杭州每刻科技有限公司 一种PostgreSQL数据库同步方法和系统
CN114168605A (zh) * 2021-12-08 2022-03-11 镁佳(北京)科技有限公司 一种数据上报方法、装置和设备
CN114238258A (zh) * 2021-11-30 2022-03-25 企查查科技有限公司 数据库数据处理方法、装置、计算机设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166390A1 (en) * 2010-12-23 2012-06-28 Dwight Merriman Method and apparatus for maintaining replica sets
CN106648994A (zh) * 2017-01-04 2017-05-10 华为技术有限公司 一种备份操作日志的方法,设备和系统
CN109241187A (zh) * 2018-09-01 2019-01-18 山东共达电声股份有限公司 基于Kafka消息队列的MongoDB日志采集和分析系统
CN109753531A (zh) * 2018-12-26 2019-05-14 深圳市麦谷科技有限公司 一种大数据统计方法、系统、计算机设备及存储介质
CN109857812A (zh) * 2019-02-27 2019-06-07 珠海天燕科技有限公司 一种处理缓存中数据的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120166390A1 (en) * 2010-12-23 2012-06-28 Dwight Merriman Method and apparatus for maintaining replica sets
CN106648994A (zh) * 2017-01-04 2017-05-10 华为技术有限公司 一种备份操作日志的方法,设备和系统
CN109241187A (zh) * 2018-09-01 2019-01-18 山东共达电声股份有限公司 基于Kafka消息队列的MongoDB日志采集和分析系统
CN109753531A (zh) * 2018-12-26 2019-05-14 深圳市麦谷科技有限公司 一种大数据统计方法、系统、计算机设备及存储介质
CN109857812A (zh) * 2019-02-27 2019-06-07 珠海天燕科技有限公司 一种处理缓存中数据的方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEIXIN_33857679: "bireme数据源同步工具--maxwell+kafka+bireme", 《HTTPS://BLOG.CSDN.NET/WEIXIN_33857679/ARTICLE/DETAILS/91661542》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111782667A (zh) * 2020-06-22 2020-10-16 成都校精灵科技有限公司 一种MongoDB更新数据的驱动方法、系统及存储介质
CN111782667B (zh) * 2020-06-22 2024-05-17 成都校精灵科技有限公司 一种MongoDB更新数据的驱动方法、系统及存储介质
CN112487087A (zh) * 2020-11-17 2021-03-12 中国人寿保险股份有限公司 一种增量数据实时同步的方法及相关设备
CN112667698A (zh) * 2021-01-04 2021-04-16 山西云媒体发展有限公司 一种基于融媒体平台的MongoDB数据同步方法
CN112667698B (zh) * 2021-01-04 2023-02-28 山西云媒体发展有限公司 一种基于融媒体平台的MongoDB数据同步方法
CN112527945A (zh) * 2021-02-10 2021-03-19 中关村科学城城市大脑股份有限公司 一种地理空间大数据处理方法及装置
CN113297240A (zh) * 2021-06-01 2021-08-24 杭州每刻科技有限公司 一种PostgreSQL数据库同步方法和系统
CN114238258A (zh) * 2021-11-30 2022-03-25 企查查科技有限公司 数据库数据处理方法、装置、计算机设备、存储介质
CN114238258B (zh) * 2021-11-30 2024-02-20 企查查科技股份有限公司 数据库数据处理方法、装置、计算机设备、存储介质
CN114168605A (zh) * 2021-12-08 2022-03-11 镁佳(北京)科技有限公司 一种数据上报方法、装置和设备

Similar Documents

Publication Publication Date Title
CN111008244A (zh) 一种用于数据库的同步和分析方法及系统
Padhy Big data processing with Hadoop-MapReduce in cloud systems
Jayalath et al. From the cloud to the atmosphere: Running MapReduce across data centers
Lim et al. How to Fit when No One Size Fits.
US10127275B2 (en) Mapping query operations in database systems to hardware based query accelerators
CN111324610A (zh) 一种数据同步的方法及装置
US20120284231A1 (en) Distributed, asynchronous and fault-tolerant storage system
CN113282611B (zh) 一种流数据同步的方法、装置、计算机设备及存储介质
CN113407600B (zh) 一种动态实时同步多源大表数据的增强实时计算方法
CN112965945A (zh) 数据存储方法、装置、电子设备及计算机可读介质
Gu et al. Toward efficient and simplified distributed data intensive computing
CN112632035A (zh) 面向自主可控数据库迁移方法及存储介质
US20200364241A1 (en) Method for data synchronization between a source database system and target database system
CN112685499A (zh) 一种工作业务流的流程数据同步方法、装置及设备
CN117677943A (zh) 用于混合数据处理的数据一致性机制
CN111259066A (zh) 服务器集群数据同步方法及装置
CN116108057A (zh) 一种分布式数据库访问方法、装置、设备及存储介质
WO2016206100A1 (zh) 一种数据表的分区管理方法及装置
Venner et al. Pro apache hadoop
CN111444148A (zh) 基于MapReduce的数据传输方法和装置
CN113760950B (zh) 指标数据查询方法、装置、电子设备以及存储介质
US11360866B2 (en) Updating stateful system in server cluster
CN113220530B (zh) 数据质量监控方法及平台
Qu et al. Distributed snapshot maintenance in wide-column NoSQL databases using partitioned incremental ETL pipelines
CN117390040B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200414

RJ01 Rejection of invention patent application after publication