CN111737355B - 基于MongoDB元数据管理的异构数据源同步的方法及*** - Google Patents

基于MongoDB元数据管理的异构数据源同步的方法及*** Download PDF

Info

Publication number
CN111737355B
CN111737355B CN202010616235.9A CN202010616235A CN111737355B CN 111737355 B CN111737355 B CN 111737355B CN 202010616235 A CN202010616235 A CN 202010616235A CN 111737355 B CN111737355 B CN 111737355B
Authority
CN
China
Prior art keywords
metadata
data
mongodb
information
change
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
Application number
CN202010616235.9A
Other languages
English (en)
Other versions
CN111737355A (zh
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.)
Guangdong Yuefei Finance Cloud Technology Co ltd
Original Assignee
Guangdong Yuefei Finance Cloud 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 Guangdong Yuefei Finance Cloud Technology Co ltd filed Critical Guangdong Yuefei Finance Cloud Technology Co ltd
Priority to CN202010616235.9A priority Critical patent/CN111737355B/zh
Publication of CN111737355A publication Critical patent/CN111737355A/zh
Application granted granted Critical
Publication of CN111737355B publication Critical patent/CN111737355B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F16/275Synchronous replication
    • 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于MongoDB元数据管理的异构数据源同步的方法,包括:S1、扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息;S2、基于扫描结果,在MongoDB数据库中构建一个通用的数据库元数据模型;S3、对MySQL数据库的binlog操作日志进行监听,解析操作日志后对数据操作行为进行区分,并进行后续处理;S4、获取分布式消息队列中待消费的数据变更信息;S5、根据数据变更信息,获取其涉及在MongoDB的元数据最新版本信息:S6、根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。本发明实现了关系型数据库MySQL与分布式列式数据库Kudu之间的数据实时同步问题,支持DML和DDL的数据操作变更,可维护不同历史版本的元数据结构信息。

Description

基于MongoDB元数据管理的异构数据源同步的方法及***
技术领域
本发明涉及信息技术领域,更具体地说,它涉及一种基于MongoDB元数据管理的异构数据源同步的方法及***。
背景技术
当前各个金融业务***生产数据库均为MySQL,为了应对大规模数据分析查询工作,需要将业务数据实时同步至查询性能更强,支持水平扩展、高可用、分布式的列式存储数据库Kudu上。但是目前比较成熟的数据同步方案,均是基于传统关系型数据库之间进行数据同步,如MySQL数据库的Canal框架和Oracle数据库的OGG组件。而传统关系型数据库与Hadoop平台分布式数据库这两类异构数据库之间的数据同步只支持增量数据同步,源端和目标端元数据必须完全一致时才可以进行,不支持DDL数据操作变更的同步,不支持DML数据操作的更新和删除同步,同步限制条件较高,不能涵盖业务***数据库的所有数据变更操作。
基于上述原因,亟需设计一种可以实现关系型数据库MySQL与分布式列式数据库Kudu之间的数据实时同步的方法。
发明内容
针对现有技术存在的不足,本发明的目的在于提供一种基于MongoDB元数据管理的异构数据源同步的方法及***,可以实现关系型数据库MySQL与分布式列式数据库Kudu之间的数据实时同步,并且可以管理维护不同历史版本的元数据结构信息。
为实现上述目的,本发明提供了如下技术方案:
基于MongoDB元数据管理的异构数据源同步的方法,其特征是,包括以下步骤:
S1、启动“元数据变更监听”服务,通过扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息;
S2、基于步骤S1的扫描结果,“元数据变更监听”服务在MongoDB数据库中构建一个通用的数据库元数据模型;
S3、通过“变动数据捕获”服务,对MySQL数据库的binlog操作日志进行监听,解析操作日志后对数据操作行为进行区分为数据变更操作和数据结构变更操作,并根据不同的数据操作行为进行相应的处理;
S4、通过“数据处理单元”获取分布式消息队列中待消费的数据变更信息;
S5、根据步骤S4所获取的数据变更信息,“数据处理单元”获取其涉及在MongoDB的元数据最新版本信息:
S6、“数据处理单元”根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。
作为优选方案:在S3步骤中,针对数据变更操作,将变更数据按照MongoDB存储元数据结构存序列化写入分布式消息队列中;针对元数据变更操作,只保留通用元数据变更操作,将元数据变更操作信息更新为MongoDB元数据模型最新版本。
作为优选方案:S5步骤中若该元数据信息不存在,则根据MongoDB最新版本创建Kudu元数据结构;若Kudu中存在该元数据信息,数据处理单元比对MongoDB和Kudu之间的元数据版本信息,如果Kudu元数据版本小于MongoDB所保留的最新版本,数据处理单元将更新Kudu元数据结构信息,以保持与MongoDB中元数据最新版本一致。
一种基于MongoDB元数据管理的异构数据源同步的***,其特征是,包括:
MySQL数据库;
Kudu数据库;
MongoDB数据库;
元数据变更监听模块,用于通过扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息,并基于扫描结果在MongoDB数据库中构建一个通用的数据库元数据模型;
变动数据捕获模块,用于对MySQL数据库的binlog操作日志进行监听,解析操作日志后将数据操作行为区分数据变更操作(DML)和数据结构变更操作(DDL),并根据不同的数据操作行为进行相应的处理;
分布式消息队列,用于数据变更信息的写入;
数据处理模块,用过获取分布式消息队列中待消费的数据变更信息,并根据获得的数据变更信息获取其涉及在MongoDB的元数据最新版本信息。
作为优选方案:针对数据变更操作,变动数据捕获模块将变更数据按照MongoDB存储元数据结构存序列化写入分布式消息队列中;针对元数据变更操作,只保留通用元数据变更操作,将元数据变更操作信息更新为MongoDB元数据模型最新版本。
作为优选方案:数据处理模块在获取MongoDB的元数据最新版本信息时,若该元数据信息不存在,则根据MongoDB最新版本创建Kudu元数据结构,若Kudu中存在该元数据信息,数据处理单元比对MongoDB和Kudu之间的元数据版本信息,如果Kudu元数据版本小于MongoDB所保留的最新版本,数据处理单元将更新Kudu元数据结构信息,以保持与MongoDB中元数据最新版本一致;数据处理模块还用于根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。
与现有技术相比,本发明的优点是:本发明提出的方法主要解决关系型数据库MySQL与分布式列式数据库Kudu之间的数据实时同步问题,包括支持DML和DDL的数据操作变更,并且可以管理维护不同历史版本的元数据结构信息。
附图说明
图1为实施例一中的方法的流程框图;
图2为实施例二中的***的示意图。
具体实施方式
实施例一:
参照图1,一种基于MongoDB元数据管理的异构数据源同步的方法,包括以下步骤:
S1、启动“元数据变更监听”服务,通过扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息。
S2、基于步骤S1的扫描结果,“元数据变更监听”服务在MongoDB数据库中构建一个通用的数据库元数据模型(Metadata)。
S3、通过“变动数据捕获”服务,对MySQL数据库的binlog操作日志进行监听。解析操作日志后将数据操作行为区分数据变更操作(DML)和数据结构变更操作(DDL)。
a、针对数据变更操作,将变更数据按照MongoDB存储元数据结构存序列化写入分布式消息队列中。
b、针对元数据变更操作,只保留通用元数据变更操作,将元数据变更操作信息更新为MongoDB元数据模型最新版本。
S4、通过“数据处理单元”获取分布式消息队列中待消费的数据变更信息。
S5、根据步骤S4所获取的数据变更信息,“数据处理单元”获取其涉及在MongoDB的元数据最新版本信息:
Ⅰ、若该元数据信息不存在,则根据MongoDB最新版本创建Kudu元数据结构;
Ⅱ、若Kudu中存在该元数据信息,数据处理单元比对MongoDB和Kudu之间的元数据版本信息。如果Kudu元数据版本小于MongoDB所保留的最新版本,数据处理单元将更新Kudu元数据结构信息,以保持与MongoDB中元数据最新版本一致。
S6、“数据处理单元”根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。
实施例二:
参照图2,一种基于MongoDB元数据管理的异构数据源同步的***,包括:
MySQL数据库;
Kudu数据库;
MongoDB数据库;
元数据变更监听模块,用于通过扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息,并基于扫描结果在MongoDB数据库中构建一个通用的数据库元数据模型。
变动数据捕获模块,用于对MySQL数据库的binlog操作日志进行监听,解析操作日志后将数据操作行为区分数据变更操作(DML)和数据结构变更操作(DDL);针对数据变更操作,将变更数据按照MongoDB存储元数据结构存序列化写入分布式消息队列中;针对元数据变更操作,只保留通用元数据变更操作,将元数据变更操作信息更新为MongoDB元数据模型最新版本。
分布式消息队列,用于数据变更信息的写入;
数据处理模块,用过获取分布式消息队列中待消费的数据变更信息,并根据获得的数据变更信息获取其涉及在MongoDB的元数据最新版本信息,若该元数据信息不存在,则根据MongoDB最新版本创建Kudu元数据结构,若Kudu中存在该元数据信息,数据处理单元比对MongoDB和Kudu之间的元数据版本信息,如果Kudu元数据版本小于MongoDB所保留的最新版本,数据处理单元将更新Kudu元数据结构信息,以保持与MongoDB中元数据最新版本一致;数据处理模块还用于根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.基于MongoDB元数据管理的异构数据源同步的方法,其特征是,包括以下步骤:
S1、启动“元数据变更监听”服务,通过扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息;
S2、基于步骤S1的扫描结果,“元数据变更监听”服务在MongoDB数据库中构建一个通用的数据库元数据模型;
S3、通过“变动数据捕获”服务,对MySQL数据库的binlog操作日志进行监听,解析操作日志后对数据操作行为进行区分为数据变更操作和数据结构变更操作,并根据不同的数据操作行为进行相应的处理;
S4、通过“数据处理单元”获取分布式消息队列中待消费的数据变更信息;
S5、根据步骤S4所获取的数据变更信息,“数据处理单元”获取其涉及在MongoDB的元数据最新版本信息:
S6、“数据处理单元”根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。
2.根据权利要求1所述的基于MongoDB元数据管理的异构数据源同步的方法,其特征是:在S3步骤中,针对数据变更操作,将变更数据按照MongoDB存储元数据结构存序列化写入分布式消息队列中;针对元数据变更操作,只保留通用元数据变更操作,将元数据变更操作信息更新为MongoDB元数据模型最新版本。
3.根据权利要求1所述的基于MongoDB元数据管理的异构数据源同步的方法,其特征是:S5步骤中若该元数据信息不存在,则根据MongoDB最新版本创建Kudu元数据结构;若Kudu中存在该元数据信息,数据处理单元比对MongoDB和Kudu之间的元数据版本信息,如果Kudu元数据版本小于MongoDB所保留的最新版本,数据处理单元将更新Kudu元数据结构信息,以保持与MongoDB中元数据最新版本一致。
4.一种基于MongoDB元数据管理的异构数据源同步的***,其特征是,包括:
MySQL数据库;
Kudu数据库;
MongoDB数据库;
元数据变更监听模块,用于通过扫描MySQL源数据端待同步表结构,初始化源端数据表的元数据信息,并基于扫描结果在MongoDB数据库中构建一个通用的数据库元数据模型;
变动数据捕获模块,用于对MySQL数据库的binlog操作日志进行监听,解析操作日志后将数据操作行为区分数据变更操作(DML)和数据结构变更操作(DDL),并根据不同的数据操作行为进行相应的处理;
分布式消息队列,用于数据变更信息的写入;
数据处理模块,用过获取分布式消息队列中待消费的数据变更信息,并根据获得的数据变更信息获取其涉及在MongoDB的元数据最新版本信息。
5.根据权利要求4所述的基于MongoDB元数据管理的异构数据源同步的***,其特征是:针对数据变更操作,变动数据捕获模块将变更数据按照MongoDB存储元数据结构存序列化写入分布式消息队列中;针对元数据变更操作,只保留通用元数据变更操作,将元数据变更操作信息更新为MongoDB元数据模型最新版本。
6.根据权利要求4所述的基于MongoDB元数据管理的异构数据源同步的***,其特征是:数据处理模块在获取MongoDB的元数据最新版本信息时,若该元数据信息不存在,则根据MongoDB最新版本创建Kudu元数据结构,若Kudu中存在该元数据信息,数据处理单元比对MongoDB和Kudu之间的元数据版本信息,如果Kudu元数据版本小于MongoDB所保留的最新版本,数据处理单元将更新Kudu元数据结构信息,以保持与MongoDB中元数据最新版本一致;数据处理模块还用于根据MongoDB元数据信息和消息队列数据,实时转换构造Kudu的DML变更数据,并执行Kudu数据更新。
CN202010616235.9A 2020-06-29 2020-06-29 基于MongoDB元数据管理的异构数据源同步的方法及*** Active CN111737355B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010616235.9A CN111737355B (zh) 2020-06-29 2020-06-29 基于MongoDB元数据管理的异构数据源同步的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010616235.9A CN111737355B (zh) 2020-06-29 2020-06-29 基于MongoDB元数据管理的异构数据源同步的方法及***

Publications (2)

Publication Number Publication Date
CN111737355A CN111737355A (zh) 2020-10-02
CN111737355B true CN111737355B (zh) 2023-06-23

Family

ID=72653889

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010616235.9A Active CN111737355B (zh) 2020-06-29 2020-06-29 基于MongoDB元数据管理的异构数据源同步的方法及***

Country Status (1)

Country Link
CN (1) CN111737355B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559475B (zh) * 2020-12-11 2023-01-10 上海哔哩哔哩科技有限公司 数据实时捕获和传输方法及***
CN113051347B (zh) * 2021-03-25 2024-03-29 未鲲(上海)科技服务有限公司 异构数据库之间数据同步方法、***、设备及存储介质
CN113342578A (zh) * 2021-06-28 2021-09-03 上海万向区块链股份公司 一种实现MySQL数据自由恢复的方法及***
CN114048193A (zh) * 2022-01-12 2022-02-15 树根互联股份有限公司 一种数据管控方法、装置及计算机可读存储介质
CN115794827B (zh) * 2022-11-29 2023-07-21 广发银行股份有限公司 一种数据表结构管理***和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701181A (zh) * 2016-01-06 2016-06-22 中电科华云信息技术有限公司 一种动态异构元数据获取方法及***
CN107783975A (zh) * 2016-08-24 2018-03-09 北京京东尚科信息技术有限公司 分布式数据库同步处理的方法和装置
US10459647B1 (en) * 2017-03-02 2019-10-29 Amazon Technologies, Inc. Multiple storage class representation in versioned storage

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106156165A (zh) * 2015-04-16 2016-11-23 阿里巴巴集团控股有限公司 异构数据源之间的数据同步方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105701181A (zh) * 2016-01-06 2016-06-22 中电科华云信息技术有限公司 一种动态异构元数据获取方法及***
CN107783975A (zh) * 2016-08-24 2018-03-09 北京京东尚科信息技术有限公司 分布式数据库同步处理的方法和装置
US10459647B1 (en) * 2017-03-02 2019-10-29 Amazon Technologies, Inc. Multiple storage class representation in versioned storage

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
异构环境下数据库增量同步更新机制;王玉标;饶锡如;何盼;;计算机工程与设计(03);全文 *

Also Published As

Publication number Publication date
CN111737355A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN111737355B (zh) 基于MongoDB元数据管理的异构数据源同步的方法及***
US11604804B2 (en) Data replication system
CN112445863B (zh) 一种数据实时同步方法及***
CN110222237A (zh) 数据库表和xml报文的转换方法及其***
CN110175213A (zh) 一种基于SCN方式的Oracle数据库同步***及方法
CN111563102A (zh) 缓存更新方法、服务器、***及存储介质
CN102291416A (zh) 一种客户端与服务器端双向同步的方法及***
CN111125260A (zh) 一种基于SQL Server的数据同步方法及***
CN109558452B (zh) 一种查询建表操作的同步方法
CN102752372A (zh) 一种基于文件的数据库同步方法
WO2012126177A2 (zh) 从数据库中读取数据的方法及装置
CN104506625A (zh) 一种提升云数据库元数据节点可靠性的方法
CN113468170A (zh) 一种自动化实现数据实时同步的***
CN109947801A (zh) 数据库数据同步***、方法及装置
CN111274257A (zh) 一种基于数据的实时同步方法及***
CN111752920A (zh) 用于管理元数据的方法、***及存储介质
CN116975159B (zh) 一种增量数据同步的处理方法
CN104252505A (zh) 数据库管理平台中数据库实例的同步方法和装置
CN116089545B (zh) 一种采集存储介质变更数据入数据仓库的方法
CN111259082A (zh) 大数据环境下实现全量数据同步的方法
CN116340114A (zh) 一种流式处理日志告警方法
CN111400321A (zh) 基于oracle数据库自动回收高水位的方法
CN115098567B (zh) 一种基于bi平台的低代码平台数据传输方法
CN116450660A (zh) 一种数据同步中主键冲突的处理方法及装置
CN107168822B (zh) Oracle streams的异常修复***及方法

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