CN113254535B - 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 - Google Patents

一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 Download PDF

Info

Publication number
CN113254535B
CN113254535B CN202110638794.4A CN202110638794A CN113254535B CN 113254535 B CN113254535 B CN 113254535B CN 202110638794 A CN202110638794 A CN 202110638794A CN 113254535 B CN113254535 B CN 113254535B
Authority
CN
China
Prior art keywords
table name
data
synchronized
name
field
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
CN202110638794.4A
Other languages
English (en)
Other versions
CN113254535A (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.)
Chengdu Xinchao Media Group Co Ltd
Original Assignee
Chengdu Xinchao Media Group 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 Chengdu Xinchao Media Group Co Ltd filed Critical Chengdu Xinchao Media Group Co Ltd
Priority to CN202110638794.4A priority Critical patent/CN113254535B/zh
Publication of CN113254535A publication Critical patent/CN113254535A/zh
Application granted granted Critical
Publication of CN113254535B publication Critical patent/CN113254535B/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • 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

Abstract

本发明公开了一种mongodb到mysq l的数据同步方法、装置及计算机可读存储介质,所述方法包括:获取动态表单构建规则,动态表单构建规则包括表名构建规则以及表单查询地址;根据表名构建规则,生成表单表名;根据表单表名以及表单查询地址,从mongodb数据库中查找出与表单查询地址以及表单表名相对应的mongodb数据表,作为待同步数据表;将待同步数据表存储至预设目录中,以使kett le服务器从所述预设目录中读取待同步数据表,并将待同步数据表发送至关系型数据库管理系统,以完成待同步数据表的数据同步;本发明利用动态表单构建规则,可实现动态表名的获取,从而避免了因表名变化而需要重新开发任务的问题,不仅大大提高了数据同步效率,还降低了工作量。

Description

一种mongodb到mysql的数据同步方法、装置及计算机可读存 储介质
技术领域
本发明属于数据同步技术领域,具体涉及一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质。
背景技术
mongodb是目前常用的一种基于分布式文件存储的数据库,其灵活的数据存储方式备受当今IT从业人员的青睐;而在软件开发等过程中,常需要将半结构化的数据处理成结构化的数据,即将mongodb数据库中的数据通过kettle(一种开源的数据仓库工具)同步到mysql中(一种关系型数据库管理系统),以便进行数据的整合以及开发。
目前,mongodb数据库中的数据是以数据表的形式存在的,而每个数据表的表名可能是按照时间分表来得到的,也可能按照哈希分表得到的;因此,现有在使用kettle进行数据同步时存在以下问题:kettle只能读取固定表名,才能实现数据表的读取,进而完成数据的解析,实现数据的同步,而一旦表名发生了变化,就需要重新开发kettle同步任务,不仅降低了数据同步效率,还大大增加工作量。
发明内容
本发明的目的是提供一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质,以解决现有将mongodb数据同步至mysql所存在的效率慢以及工作量大的问题。
为了实现上述目的,本发明采用以下技术方案:
本发明提供了一种mongodb到mysql的数据同步方法,包括:
命令解析器获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址;
命令解析器根据所述表名构建规则,生成表单表名;
命令解析器根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表;
命令解析器将所述待同步数据表存储至预设目录中;
kettle服务器从预设目录中读取待同步数据表;
kettle服务器解析所述待同步数据表,得到待同步数据;
kettle服务器将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
基于上述公开的内容,本发明通过获取动态表单构建规则,可利用构建规则中的表名构建规则,生成需要进行数据同步的数据表的表名,进而可直接根据表名以及表单查询地址在mongodb数据库中进行数据表的查找,以得到待同步数据表,完成数据的同步;即本发明可实现动态表名的读取,进而避免了因表名变化而需要重新开发任务以重新读取数据表的问题,不仅大大的提高了数据同步效率,还降低了工作量。
在一个可能的设计中,所述表名构建规则包括:表名前缀字段以及表名后缀字段;
其中,根据所述表名构建规则,生成表单表名,包括:
获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
根据所述目标日期和所述表名后缀字段,得到表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
根据所述表名构建规则,生成表单表名,包括:
根据所述表名后缀字段,得到所述表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
基于上述公开的内容,本发明公开了表单表名的具体生成方法,其对应有两种生成方式,第一种则是对应按照时间命名的数据表的表名:即首先获取目标日期(即获取要同步的数据所处的时间段,例如,是按天同步则是某一天的日期;按月则是某月的日期;按年则是某一年的日期),接着再获取表名后缀字段(由用户预设,用于表征数据同步的方式,例如,表名后缀字段为yyyy-MM-dd,则表示按天同步数据);然后,再根据表名后缀字段以及目标日期得到表名关键字段(例如,表名后缀字段为yyyy-MM-dd,获取的日期为2021-5-26,那么则表示是按天同步,此时关键字段则是具体到某天的日期,即2021-5-26);最后,关键字段加上表名前缀,即可得出表单表名(表名前缀字段也由用户预设,例如为test,那么表名则为:test-2021-5-26)。
第二种则是对应按照哈希值命名的数据表,即只要根据表名后缀字段即可得到表名关键字段,实质为:表名后缀字段就为表名关键字段(例如,表名后缀字段为0,1,2,3和4;那么则说明有4个表,而表名关键字段则为0,1,2,3和4);此时,加上表名前缀,即可得到表单表名,(即test-0,test-1,test-2,test-3以及test-4)。
通过上述设计,即可实时生成表单表名,不仅避免了因表名变化而需要重新开发任务以重新读取数据表的问题,还可在按照哈希分表时,一次性生成对应数据表的表单表名,从而完成多个数据表的一次性读取,无需创建多个任务。
在一个可能的设计中,解析所述待同步数据表,得到待同步数据,包括:
获取预设解析规则,其中,所述预设解析规则包括待解析字段;
从所述待同步数据表内,查找出与所述待解析字段对应的数据字段的字段值;
利用所述字段值,组成所述待同步数据。
基于上述公开的内容,本发明公开了解析待同步数据表的具体方法,其实质为:按照预设解析规则解析待同步数据表中的数据,即在待同步数据中查找出与待解析字段对应的字段值,并将查找出的字段值作为待同步数据;例如,待解析字段为age以及name,那么就在待同步数据表中查找出age以及name字段对应的字段值,作为待同步数据。
在一个可能的设计中,所述预设目录包括指定存储目录和部署有kettle服务器的运行目录;
相应的,从预设目录中读取待同步数据表,包括:
接收命令解析器发送的运行目录的路径信息;
根据所述路径信息,从所述运行目录中读取所述待同步数据表;或
从预设目录中读取待同步数据表,包括:
每隔预设时间间隔,查询所述指定存储目录,以便从所述指定存储目录中读取所述待同步数据表。
基于上述公开的内容,本发明公开了kettle服务器读取待同步数据表的具体方法,其对应有两种方式,其一为:命令解析器将待同步数据表存储至部署有kettle服务器的运行目录中(即在该运行目录下的任一子目录均可,不是固定的存储路径),然后将存储的路径信息发送至kettle服务器,而kettle服务器则可根据路径信息查找对应的存储目录,并进行待同步数据表的读取;其二为:命令解析器将待同步数据表存储至指定存储目录中(即存储至指定的路径中),然后kettle服务器每隔预设时间间隔去查询指定存储目录即可(例如,每隔5s查询一次)。
第二方面,本发明提供了另一种mongodb到mysql的数据同步方法,包括:
Kettle服务器获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址;
所述kettle服务器根据所述表名构建规则,生成表单表名;
所述kettle服务器根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表;
所述kettle服务器解析所述待同步数据表,得到待同步数据;
所述kettle服务器将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
第三方面,本发明提供了一种mongodb到mysql的数据同步装置,以装置为命令解析器为例,包括:获取单元、表名生成单元、查找单元以及存储单元;
所述获取单元,用于获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址;
所述表名生成单元,用于根据所述表名构建规则,生成表单表名;
所述查找单元,用于根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表;
所述存储单元,用于将所述待同步数据表存储至预设目录中,以使kettle服务器从所述预设目录中读取所述待同步数据表,并将所述待同步数据表发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
在一个的可能的设计中,所述表名生成单元包括:日期获取子单元、关键字生成子单元以及表名构造子单元;
所述日期获取子单元,用于获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
所述关键字生成子单元,用于根据所述目标日期和所述表名后缀字段,得到表名关键字段;
所述表名构造子单元用于利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
所述关键字生成子单元,还用于根据所述表名后缀字段,得到所述表名关键字段;
所述表名构造子单元,还利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
第四方面,本发明提供了第二种mongodb到mysql的数据同步装置,以装置为kettle服务器为例,包括:读取单元、解析单元以及发送单元;
所述读取单元,用于从预设目录中读取待同步数据表,其中,所述待同步数据表是先利用动态表单构建规则中的表名构建规则生成表单表名,然后再根据表单表名以及动态表单构建规则中的表单查询地址,从mongodb数据库中查找得出的;
所述解析单元,用于解析所述待同步数据表,得到待同步数据;
所述发送单元,用于将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
在一个可能的设计中,所述解析单元包括:解析规则获取子单元以及字段查找子单元;
所述解析规则获取子单元,用于获取预设解析规则,其中,所述预设解析规则包括待解析字段;
所述字段查找子单元,用于从所述待同步数据表内,查找出与所述待解析字段对应的数据字段的字段值;
所述字段查找子单元,还用于利用所述字段值,组成所述待同步数据。
在一个可能的设计中:
所述读取单元,具体用于接收命令解析器发送的运行目录的路径信息;
所述读取单元,具体用于根据所述路径信息,从所述运行目录中读取所述待同步数据表;或
所述读取单元,还具体用于每隔预设时间间隔,查询所述指定存储目录,以便从所述指定存储目录中读取所述待同步数据表。
第五方面,本发明提供了第三种mongodb到mysql的数据同步装置,以装置为计算机主设备为例,包括依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如第一方面、第二方面、第一方面中任意一种可能设计或第二方面中任意一种可能设计的所述mongodb到mysql的数据同步方法。
第六方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面、第二方面、第一方面中任意一种可能设计或第二方面中任意一种可能设计的所述mongodb到mysql的数据同步方法。
第七方面,本发明供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如第一方面、第二方面、第一方面中任意一种可能设计或第二方面中任意一种可能设计所述mongodb到mysql的数据同步方法。
附图说明
图1为本发明提供的mongodb到mysql的数据同步系统的系统架构示意图;
图2为本发明提供的第一种mongodb到mysql的数据同步方法的步骤流程示意图;
图3为本发明提供的第二种mongodb到mysql的数据同步方法的步骤流程示意图;
图4为本发明提供的命令解析器的结构示意图;
图5为本发明提供的kettle服务器的结构示意图;
图6为本发明提供的计算机主设备的结构示意图。
具体实施方式
下面结合附图及具体实施例来对本发明作进一步阐述。在此需要说明的是,对于这些实施例方式的说明虽然是用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
应当理解,尽管本文可能使用术语第一、第二等等来描述各种单元,但是这些单元不应当受到这些术语的限制。这些术语仅用于区分一个单元和另一个单元。例如可以将第一单元称作第二单元,并且类似地可以将第二单元称作第一单元,同时不脱离本发明的示例实施例的范围。
应当理解,对于本文中可能出现的术语“和/或”,其仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,单独存在B,同时存在A和B三种情况;对于本文中可能出现的术语“/和”,其是描述另一种关联对象关系,表示可以存在两种关系,例如,A/和B,可以表示:单独存在A,单独存在A和B两种情况;另外,对于本文中可能出现的字符“/”,一般表示前后关联对象是一种“或”关系。
实施例
如图1所示,为本发明提供一种系统架构,包括:命令解析器(即命令行shell)、kettle服务器(即KDE Extraction,Transportation,Transformation and LoadingEnvironment,一种开源的数据仓库工具)以及关系型数据库管理系统(即mysql),其中,命令解析器用于根据动态表单构建规则(包括表名构建规则以及表单查询地址),生成表单表名,以根据表单表名以及表单查询地址从mongodb数据库中查找出待同步数据表,并将待同步数据表存储至预设目录中;而kettle服务器则用于从预设目录中读取待同步数据表进行解析,以得到待同步数据,并将待同步数据发送至关系型数据库管理系统;最后,关系型数据库管理系统即可接收待同步数据,从而完成待同步数据表的数据同步。
本实施例第一方面所提供的mongodb到mysql的数据同步方法,可实现mongodb数据库中动态表名的读取,从而避免了表名变化所导致的重建任务的弊端,不仅大大的提高了同步效率,还降低了工作量。
如图1所示,本实施例第一方面所提供的mongodb到mysql的数据同步方法,可以但不限于包括如下步骤S101~S107。
S101.命令解析器获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址。
步骤S101则是获取动态表单构建规则的过程,即获取表名构建规则以及表单查询地址;其中,表名构建规则用于生成需要从mongodb数据库同步至关系型数据库管理系统的数据表的表名,而表单查询地址,则是用于查询前述数据表在mongodb数据库中的存储位置,以便后续根据表单查询地址以及生成的表单表名,从mongodb数据库中查找出待同步数据表。
在本实施例中,动态表单构建规则由用户预设,命令解析器只需调用该规则即可;即通过动态表单构建规则,命令解析器能够实时生成需要同步的数据表的表名,因此,即使mongodb数据库中数据表的表名发生变化,命令解析器依旧能够读取表名,其实现了mongodb数据库中动态表名的获取,避免了表名变化需要重建kettle任务以重新读取表名的问题。
在本实施例中,举例表名构建规则可以但不限于包括:表名前缀字段以及表名后缀字段;其中,表名前缀字段用于表征表单表名的开头(可以但不限于表示该表内数据的来源库名),而表名后缀字段则是用于表征表单表名是按照时间进行命名的还是按照哈希进行命名的;因此,通过表名前缀字段以及表名后缀字段,即可构建出表单表名。
由于前述就已说明,mongodb数据库中的各个mongodb数据表的表名是按照时间或哈希来命名的,因此在本实施例中,举例动态表单构建规则具有两种形式,即表名后缀字段包含用于表征前述两种命名方式的字段。
下述以一个实例来阐述动态表单构建规则,如下述表1所示:
Figure BDA0003106864060000061
前述表1中,表名后缀字段为yyyy-MM-dd,则表明是按天同步数据;yyyy-MM则表示按照月来同步数据;yyyy则表示按年来同步数据;而表名后缀字段为数字,则表示是按照哈希来命名,即有几个数字,代表有几个表;因此,前述动态表单构建规则1、2和3,均是表示按照时间来进行命名;而动态表单构建规则4则表示按照哈希来命名。
在本实施例中,对于在命令解析器中预设何种动态表单构建规则,可根据用户具体使用环境而定;例如,当用户需要按天同步数据,那么就预设动态表单构建规则1;同理,若需要按月同步数据,则预设动态表达构建规则2;而若需要同步按哈希分表的数据,那么则预设动态表单构建规则4。
在本实施例中,举例动态表单构建规则中还可包括:mongodb数据库的账号、密码以及此次同步的数据表所属数据库的库名。
在获取动态表单构建规则后,即可根据动态表单构建规则中的表名构建规则,生成表单表名,以便后续进行数据表的查找,如以下步骤S102所示。
S102.命令解析器根据所述表名构建规则,生成表单表名。
步骤S102则是根据表名构建规则实时生成需要进行同步的数据表的表名,以便后续利用生成的表名进行数据表的查找,得到待同步数据表。
由于前述就已公开,表名构建规则包括表名前缀字段以及表名后缀字段,因此,步骤S102的实质则为:根据表名前缀以及后缀字段构建表单表名。
同时,由于前述就已说明,mongodb数据库中数据表的命名分为两种方式(即按时间命名或按哈希命名),因此,生成表单表名也分为两种方式,其可以但不限于如下步骤S102a~S102c或S102d~S102e。
其中,第一种表单表名构造方式为:
S102a.获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段。
S102b.根据所述目标日期和所述表名后缀字段,得到表名关键字段。
S102c.利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
下述结合表1,以一个实例来进行说明:
假设本次获取的动态表单构建规则中的表名前缀字段为:test;表名后缀字段为:yyyy-MM-dd;目标日期为:2021-5-26;那么由表1可知,此表名后缀字段所表示的意思则是:按天同步数据;那么,此时获取的表名关键字段则是具体到某一天的日期,即2021-5-26。
因此,根据前述步骤S102a~S102c得出的表单表名则为:test-2021-5-26;那么该表单表名表示的含义则为:该表中的数据来源于mongodb数据库中的test库,且表中的数据为2021-5-26这一天内所有的数据。
同理,动态表单构建规则中的表名后缀字段为:yyyy-MM,那么则表示:按月同步数据,那么,步骤S102b中获取的表名关键字则为:具体到某一个月的月份,即2021年5月;因此,表单表名则为:test-2021-5;此表名表达的含义为:该表中的数据来源于mongodb数据库中的test库,且表中的数据为2021年5月这一个月内所有的数据。
又如,若动态表单构建规则中的表名后缀字段为:yyyy,那么则表示:按年同步数据,那么,步骤S102b中获取的表名关键字则为:具体到某一年的年份,即2021年;因此,表单表名则为:test-2021;此表名表达的含义为:该表中的数据来源于mongodb数据库中的test库,且表中的数据为2021年这一个年内所有的数据。
因此,在本实施例中,只要预设了前述动态表单构建规则,那么即可根据该规则实时生成表单表名;例如,动态表单构建规则中的表名后缀字段是按天同步数据,那么当天生成的表单表名若为test-2021-5-26,那么在下一天生成的表单表名则是:test-2021-5-27,即按照每天的日期进行更新;同理,若为按月更新,当月的表单表名为:test-2021-5,而在其下一个月,生成的表单表名则为:test-2021-6,即按照每月的月份进行更新;而若为按年更新,当年生成的表单表名为:test-2021,那么下一年生成的表单表名则为:test-2022,即按年的年份进行更新;所以,本发明可实现动态表名的获取,而无需根据表名新建任务进行数据表的读取,从而提高同步效率以及降低工作量。
第二种表单表名构造方式为:
S102d.根据所述表名后缀字段,得到所述表名关键字段。
S102e.利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
步骤S102c以及步骤S102e则是按照哈希命名来构建表单表名的方式,还是结合表1以一个实例来阐述:
假设,动态表单构建规则中的表名后缀字段为:0,1,2,3,4,那么则表示:存在5个表,即mongodb数据表是按照哈希来命名的;那么,步骤S102c中获取的表名关键字则为:0,1,2,3,4;因此,构建的表单表名则为:test-0;test-1;test-2;test-3以及test-4。
因此,结合表1可知,在本实施例中,当表名后缀字段为数字时,可实时生成按照哈希分表的多个mongodb数据表的表名,从而可根据生成的表名一次性完成多个nongodb数据表的读取,避免了现有kettle在读取按照哈希分表得到的mongodb数据表时,需要建立多个任务以读取多个数据表的问题,进一步的提高了同步效率以及降低了工作量。
由此通过前述步骤S102a~S102c以及步骤S102d~S102e,即可同时满足按时间以及按哈希分表方式生成的表单表名,从而为后续待同步数据表的查找提供查找依据。
在得到表单表名后,即可利用表单表名以及表单查询地址进行数据表的查找,如以下步骤S103所示。
S103.命令解析器根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表。
由于在mongodb数据库中,存在多个子数据库,而每个子数据库中又存储有多个mongodb数据表,因此,需要同时使用表单查询地址以及表单表名,从而实现待同步数据表的查找。
即步骤S103则是先根据表单查询地址,定位得到需要同步的mongod数据表存储的子数据库,然后在子数据库中查找出与表单表名对应的mongodb数据表,作为待同步数据表。
例如,mongodb数据库中存在A、B和C三个子数据库,其中,A的地址为192.168.83.201:8635;B的地址为192.168.83.201:8636;C的地址为192.168.83.201:8637;且A中存在3个数据表,表名分别为:test-2021-5-24、test-2021-5-25以及test-2021-5-26;B中存在2个数据表,表名分别为:test-2021-5以及test-2021-4;C中存在4个数据表,表名分别为:test-2021、test-2020、test-2019以及test-2018。
在前述基础上,得出的表单表名为:test-2021-5-26;同时结合表1可知,表单查询地址为:192.168.83.201:8635;因此,根据表单查询地址,即可得出需要同步的数据表存储在子数据库A中;同时,再根据表单表名,可得出需要同步至关系型数据库管理系统的数据表对应的表名为test-2021-5-26,即待同步数据表则为表名为test-2021-5-26对应的mongodb数据表。
在得出需要同步至关系型数据库管理系统的待同步数据表后,即可将其存储至预设目录中,以便后续kettle服务器进行读取;如以下步骤S104和步骤S105所示。
S104.命令解析器将所述待同步数据表存储至预设目录中。
S105.kettle服务器从预设目录中读取待同步数据表。
在本实施例中,命令解析器存储待同步数据表具有两种存储方式,即分别存储至指定存储目录中(即指定存储路径,存储路径固定,不会发生变化)或存储至部署有kettle服务器的运行目录中(每一次存储的路径不同,可以为运行目录中的任一子目录中);因此,kettle服务器读取待同步数据表也相应有两种方式;如以下步骤S105a~S105b或S105c所示。
其中,当命令解析器将待同步数据表存储至运行目录中时,那么则会将运行目录的路径信息发送至kettle服务器,而kettle服务器从预设目录中读取待同步数据表,可以但不限包括如下步骤S105a~S105b。
S105a.接收命令解析器发送的运行目录的路径信息。
S105b.根据所述路径信息,从所述运行目录中读取所述待同步数据表。
步骤S105a~S105b的原理则为:kettle服务器根据路径信息,去查找对应的运行目录,然后,再从运行目录中读取待同步数据表。
而当命令解析器将待同步数据表存储至指定存储目录时,那么kettle服务器从预设目录中读取待同步数据表,可以但不限包括如下步骤S105c。
S105c.每隔预设时间间隔,查询所述指定存储目录,以便从所述指定存储目录中读取所述待同步数据表。
在本实施例中,为了便于命令解析器存储待同步数据表以及kettle服务器读取待同步数据表,可以但不限于将指定存储目录的路径信息由用户预设至kettle服务器以及命令解析器中,而当命令解析器查找出待同步数据表后,即可根据预设的路径信息,将待同步数据表存储至指定存储目录;而kettle服务器即可根据对应的路径信息每隔预设时间间隔(例如,每隔5s、10s或15s等,也由用户预设)查询指定存储目录,从而实现待同步数据表的读取。
由此通过前述步骤S105a~S105b以及S105c,即可实现待同步数据表读取,以便后续对待同步数据表进行解析,以得到待同步数据,如以下步骤S106所示。
S106.kettle服务器解析所述待同步数据表,得到待同步数据。
步骤S106则是解析待同步数据表的过程;在本实施例中,为了避免现有kettle服务器解析数据表所存在的无法解析复杂语句的问题,本实施例还通过设置预设解析规则,来实现待同步数据表中复杂语句的解析,可以但不限于包括如下步骤S106a、步骤S106b以及步骤S106c。
S106a.获取预设解析规则,其中,所述预设解析规则包括待解析字段。
S106b.从所述待同步数据表内,查找出与所述待解析字段对应的数据字段的字段值。
S106c.利用所述字段值,组成所述待同步数据。
步骤S106a~S106c的原理为:通过预设待解析的字段,从而从待同步数据表中直接查找出待解析字段对应的字段值,进而将字段值作为待同步数据;也就是相当于直接解析出了需要同步的数据内容,从而避免无法对复杂语句进行解析的问题。
下述以一个实例来阐述S106a~S106c:
例如,假设待解析字段包括:name和age;而待同步数据表内的数据为:
{"grade":{
"name":"张三",
"age":"2"
}}
那么name对应的字段值则为:张三,而age对应的字段值则为:2,那么则说明“张三”和“2”则作为待同步数据,需要同步至关系型数据库管理系统中。
而当待同步数据表中的数据为一个数组时,其解析原理与前述一致,例如:
待同步数据表中的数据为:
[
"grade":{
"name":"张三",
"age":"2"
},
"grade":{
"name":"李四",
"age":"5"
}
]
那么name对应的字段值则为:张三以及李四,而age对应的字段值则为:2和5,那么则说明“张三”、“2”、“李四”以及“5”均作为待同步数据,需要同步至关系型数据库管理系统中。
由此通过前述阐述,本发明直接预设待解析字段,可直接解析出待同步数据;因此,即使待同步数据表中存在多重嵌套的复杂语句,但只要存在待解析字段,就能够实现数据的解析,避免了现有kettle服务器无法实现复杂语句解析的问题。
在得出待同步数据后,即可待同步数据发送至关系型数据库管理系统,以便完成数据的同步,如以下步骤S107所示。
S107.kettle服务器将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
由此通过前述步骤S101~S107所详细描述的mongodb到mysql的数据同步方法,一方面,本发明利用动态表单构建规则,可实现动态表名的获取,从而避免了因表名变化而需要重新开发任务的问题,不仅大大提高了数据同步效率,还降低了工作量;另一方面,本发明可一次性读取表单表名对应的mongodb数据表,因此,避免了按照哈希分表需要建立多个任务以读取多个数据表的问题,进一步的提高了同步效率以及降低了工作量;另外本发明利用预设解析规则解析待同步数据表,可直接得出需要同步的数据内容,不仅可实现复杂数据的解析,还无需数据表中的语句格式固定,提高了数据同步的兼容性。
另外,在本实施例中,举例关系型数据库管理系统接收待同步数据完成数据同步的实质为:根据待同步数据构建数据同步表,即将待同步数据写入关系型数据库管理系统中的数据表中,从而完成数据同步。
在本实施例中,举例关系型数据库管理系统完成数据的同步可以但不限于包括如下步骤S108~S112。
S108.关系型数据库管理系统获取建表语句,其中,所述建表语句用于创建基于关系型数据库管理系统的数据表。
S109.关系型数据库管理系统根据所述建表语句,判断关系型数据库管理系统中是否创建有第一数据表。
S110.若是,则将待同步数据写入所述第一数据表中,得到数据同步表。
S111.若否,则运行所述建表语句,以得到第二数据表。
S112.将所述映射字段集中的每个映射字段写入所述第二数据表中,得到所述数据同步表。
在本实施例中,建表语句用于在关系型数据库管理系统中进行表的创建,因此,根据建表语句,可实现表的创建。
在关系型数据库管理系统中,只要建表语句运行后,即可生成基于关系型数据库管理系统的数据表,那么相应的,只要基于建表语句创建了表后,那么关系型数据库管理系统则可根据建表语句进行查询,因此,在进行数据同步时,则会首先根据建表语句,判断关系型数据库管理系统中是否存在有表;若存在有表,则说明该建表语句已经运行过,只需将待同步数据写入该数据表中即可。
如若存在前述第一数据表,此时则需要运行建表语句,先创建一个表(即第二数据表),然后再将待同步数据写入第二数据表,即可得到数据同步表。
下述以一个实例来阐述前述步骤S108~S112:
假设建表语句为:
Figure BDA0003106864060000121
其中,“create table if not exists”这一语句表达的含义为:在关系型数据库管理系统中的数据库中查询是否创建有表;若根据该语句查询到存在第一数据表,那么此时只需要将待同步数据填入该表中即可;表中填入规则则是:年龄数据中填入表示年龄的字段(以前述为例则是:2),姓名数据中填入表示姓名的字段(即前述的张三)。
而若根据前述建表语句查询到关系型数据库管理系统中不存在有表,那么则会先运行建表语句,从而创建新表,即得到第二数据表,此时,再将待同步数据写入第二数据表中,即可得到数据同步表,完成待同步数据表到关系型数据库管理系统的同步。
另外,在本实施例中,关于数据同步表的名称,其命名规则与前述步骤S102原理相同,均是预设,可以但不限于:预设至预设解析规则中(即预设解析规则还包括同步表名后缀字段以及同步表名前缀字段),在预设解析规则中,即可得到数据同步表的同步表名后缀字段以及同步表名前缀字段。
而同步表名后缀字段可以但不限于包括:yyyy-MM-dd、yyyy-MM、yyyy以及数字(与前述表名构建规则原理一致);在本实施例中,当其表名后缀字段为空时,则说明需要将待同步数据导入一个表中。
例如,当预设解析规则中的同步表名前缀字段为test,同步表名后缀字段为yyyy-MM-dd时,此时,则表示同步的为当日数据,即数据同步表的名称为:test-2021-5-26。
又如,当通过前述步骤S103得出的表为test-0、test-1、test-2、test-3以及test-4;即得出的是通过哈希来命名的表,具有5个表;而若预设解析规则中得到的同步表名后缀字段为空,那么则需要将解析前述test-0、test-1、test-2、test-3以及test-4得到的待同步数据写入一个表中,从而得到数据同步表。
在本实施例中,举例预设解析规则还可以但不限于包括:数据同步的地址(即构建的数据同步表的地址)、数据同步的库名(即构建的数据同步表在关系型数据库管理系统中属于哪个数据库)、关系型数据库管理系统的账号以及密码。
下述以一个实例来总结前述预设解析规则所包含的内容:如下述表2所示:
Figure BDA0003106864060000131
通过表2,即可实现待同步数据表的解析,得到待同步数据,以及构建数据同步表的名称,实现mongodb数据至关系型数据库管理系统的数据同步。
如图3所示,本实施例第二方面提供了第二种mongodb到mysql的数据同步方法,其与第一方面的不同之处在于:通过kettle服务器获取动态表单构建规则,从而生成表单表名,以及利用表单表名和表单查询地址查找得到待同步数据表,其实现步骤可以但便于如下步骤S201~S205。
S201.Kettle服务器获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址。
S202.所述kettle服务器根据所述表名构建规则,生成表单表名。
S203.所述kettle服务器根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表。
S204.所述kettle服务器解析所述待同步数据表,得到待同步数据。
S205.所述kettle服务器将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
本实施例第二方面中,kettle服务器根据表名构建规则生成表单表名,以及根据表单表名和表单查询地址进行待同步数据查找的原理与前述步骤S101~S103相同,于此不多加赘述。
本实施例第二方面所达到的技术效果,与前述第一方面相同,于此不多加赘述。
如图4所示,本实施例第三方面提供了一种实现实施例第一方面中所述的mongodb到mysql的数据同步方法的硬件装置,以硬件装置为命令解析器为例,包括:获取单元、表名生成单元、查找单元以及存储单元。
所述获取单元,用于获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址。
所述表名生成单元,用于根据所述表名构建规则,生成表单表名。
所述查找单元,用于根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表。
所述存储单元,用于将所述待同步数据表存储至预设目录中,以使kettle服务器从所述预设目录中读取所述待同步数据表,并将所述待同步数据表发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
在一个的可能的设计中,所述表名生成单元包括:日期获取子单元、关键字生成子单元以及表名构造子单元。
所述日期获取子单元,用于获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段。
所述关键字生成子单元,用于根据所述目标日期和所述表名后缀字段,得到表名关键字段。
所述表名构造子单元用于利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
所述关键字生成子单元,还用于根据所述表名后缀字段,得到所述表名关键字段。
所述表名构造子单元,还利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
本实施例提供的硬件装置的工作过程、工作细节和技术效果,可以参见实施例第一方面,于此不再赘述。
如图5所示,实施例第四方面提供了一种实现实施例第一方面中所述的mongodb到mysql的数据同步方法的硬件装置,以硬件装置为kettle服务器为例,包括:读取单元、解析单元以及发送单元。
所述读取单元,用于从预设目录中读取待同步数据表,其中,所述待同步数据表是先利用动态表单构建规则中的表名构建规则生成表单表名,然后再根据表单表名以及动态表单构建规则中的表单查询地址,从mongodb数据库中查找得出的。
所述解析单元,用于解析所述待同步数据表,得到待同步数据。
所述发送单元,用于将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步。
在一个可能的设计中,所述解析单元包括:解析规则获取子单元以及字段查找子单元。
所述解析规则获取子单元,用于获取预设解析规则,其中,所述预设解析规则包括待解析字段。
所述字段查找子单元,用于从所述待同步数据表内,查找出与所述待解析字段对应的数据字段的字段值。
所述字段查找子单元,还用于利用所述字段值,组成所述待同步数据。
在一个可能的设计中:
所述读取单元,具体用于接收命令解析器发送的运行目录的路径信息。
所述读取单元,具体用于根据所述路径信息,从所述运行目录中读取所述待同步数据表。
所述读取单元,还具体用于每隔预设时间间隔,查询所述指定存储目录,以便从所述指定存储目录中读取所述待同步数据表。
如图6所示,本实施例第五方面提供另一种实现实施例第一方面中所述的mongodb到mysql的数据同步方法的硬件装置,以装置为计算机主设备为例,包括:依次通信相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如实施例第一方面或第二方面所述的mongodb到mysql的数据同步方法。
具体举例的,所述存储器可以但不限于包括随机存取存储器(random accessmemory,RAM)、只读存储器(Read Only Memory image,ROM)、闪存(Flash Memory)、先进先出存储器(First Input First Output,FIFO)和/或先进后出存储器(First In Last Out,FILO)等等;所述处理器可以不限于采用型号为STM32F105系列的微处理器、精简指令集计算机(reduced instruction set computer,RSIC)微处理器、X86等架构处理器或集成嵌入式神经网络处理器(neural-network processing units,NPU)的处理器;所述收发器可以但不限于为无线保真(WIFI)无线收发器、蓝牙无线收发器、通用分组无线服务技术(General Packet Radio Service,GPRS)无线收发器、紫蜂协议(基于IEEE802.15.4标准的低功耗局域网协议,ZigBee)无线收发器、3G收发器、4G收发器和/或5G收发器等。此外,所述装置还可以但不限于包括有电源模块、显示屏和其它必要的部件。
本实施例提供的计算机主设备的工作过程、工作细节和技术效果,可以参见实施例第一方面或第二方面,于此不再赘述。
本实施例第六方面提供了一种存储包含有实施例第一方面所述的mongodb到mysql的数据同步方法的指令的计算机可读存储介质,即所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如第一方面所述的mongodb到mysql的数据同步方法。其中,所述计算机可读存储介质是指存储数据的载体,可以但不限于包括软盘、光盘、硬盘、闪存、优盘和/或记忆棒(Memory Stick)等,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
本实施例提供的计算机可读存储介质的工作过程、工作细节和技术效果,可以参见实施例第一方面或第二方面,于此不再赘述。
本实施例第七方面提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使所述计算机执行如实施例第一方面所述的mongodb到mysql的数据同步方法,其中,所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于分布式文件存储的数据库mongodb到关系型数据库管理系统mysql的数据同步方法,其特征在于,包括:
获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址;
根据所述表名构建规则,生成表单表名;
根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表;
将所述待同步数据表存储至预设目录中,以使kettle服务器从所述预设目录中读取所述待同步数据表,并将所述待同步数据表发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步;
所述表名构建规则包括:表名前缀字段以及表名后缀字段,其中,所述表名前缀字段用于表征表单表名的开头,所述表名后缀字段是按照时间命名或按照哈希值命名的;
其中,根据所述表名构建规则,生成表单表名,包括:
获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
根据所述目标日期和按照时间命名的表名后缀字段,得到表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
根据所述表名构建规则,生成表单表名,包括:
根据按照哈希值命名的表名后缀字段,得到所述表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
2.一种mongodb到mysql的数据同步方法,其特征在于,包括:
从预设目录中读取待同步数据表,其中,所述待同步数据表是先利用动态表单构建规则中的表名构建规则生成表单表名,然后再根据表单表名以及动态表单构建规则中的表单查询地址,从mongodb数据库中查找得出的;
解析所述待同步数据表,得到待同步数据;
将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步;
所述预设目录包括指定存储目录和部署有kettle服务器的运行目录;
相应的,从预设目录中读取待同步数据表,包括:
接收命令解析器发送的运行目录的路径信息;
根据所述路径信息,从所述运行目录中读取所述待同步数据表;或
从预设目录中读取待同步数据表,包括:
每隔预设时间间隔,查询所述指定存储目录,以便从所述指定存储目录中读取所述待同步数据表;
所述表名构建规则包括:表名前缀字段以及表名后缀字段,其中,所述表名前缀字段用于表征表单表名的开头,所述表名后缀字段是按照时间命名或按照哈希值命名的;
其中,利用所述表名构建规则,生成表单表名,包括:
获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
根据所述目标日期和按照时间命名的表名后缀字段,得到表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
根据所述表名构建规则,生成表单表名,包括:
根据按照哈希值命名的表名后缀字段,得到所述表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
3.如权利要求2所述的方法,其特征在于,解析所述待同步数据表,得到待同步数据,包括:
获取预设解析规则,其中,所述预设解析规则包括待解析字段;
从所述待同步数据表内,查找出与所述待解析字段对应的数据字段的字段值;
利用所述字段值,组成所述待同步数据。
4.一种mongodb到mysql的数据同步方法,其特征在于包括:
kettle服务器获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址;
所述kettle服务器根据所述表名构建规则,生成表单表名;
所述kettle服务器根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表;
所述kettle服务器解析所述待同步数据表,得到待同步数据;
所述kettle服务器将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步;
所述表名构建规则包括:表名前缀字段以及表名后缀字段,其中,所述表名前缀字段用于表征表单表名的开头,所述表名后缀字段是按照时间命名或按照哈希值命名的;
其中,所述kettle服务器根据所述表名构建规则,生成表单表名,包括:
所述kettle服务器获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
所述kettle服务器根据所述目标日期和按照时间命名的表名后缀字段,得到表名关键字段;
所述kettle服务器利用所述表名前缀字段以及所述表名关键字段,组成表单表名;或
所述kettle服务器根据所述表名构建规则,生成表单表名,包括:
所述kettle服务器根据按照哈希值命名的表名后缀字段,得到所述表名关键字段;
所述kettle服务器利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
5.一种mongodb到mysql的数据同步装置,其特征在于,包括:获取单元、表名生成单元、查找单元以及存储单元;
所述获取单元,用于获取动态表单构建规则,其中,所述动态表单构建规则包括用于构建表单表名的表名构建规则以及表单查询地址;
所述表名生成单元,用于根据所述表名构建规则,生成表单表名;
所述查找单元,用于根据所述表单表名以及所述表单查询地址,从mongodb数据库中查找出与所述表单查询地址以及所述表单表名相对应的mongodb数据表,作为待同步数据表;
所述存储单元,用于将所述待同步数据表存储至预设目录中,以使kettle服务器从所述预设目录中读取所述待同步数据表,并将所述待同步数据表发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步;
所述表名构建规则包括:表名前缀字段以及表名后缀字段,其中,所述表名前缀字段用于表征表单表名的开头,所述表名后缀字段是按照时间命名或按照哈希值命名的;
所述表名生成单元包括:日期获取子单元、关键字生成子单元以及表名构造子单元;
所述日期获取子单元,用于获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
所述关键字生成子单元,用于根据所述目标日期和按照时间命名的表名后缀字段,得到表名关键字段;
所述表名构造子单元用于利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
所述关键字生成子单元,还用于根据按照哈希值命名的表名后缀字段,得到所述表名关键字段;
所述表名构造子单元,还利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
6.一种mongodb到mysql的数据同步装置,其特征在于,包括:读取单元、解析单元以及发送单元;
所述读取单元,用于从预设目录中读取待同步数据表,其中,所述待同步数据表是先利用动态表单构建规则中的表名构建规则生成表单表名,然后再根据表单表名以及动态表单构建规则中的表单查询地址,从mongodb数据库中查找得出的;
所述解析单元,用于解析所述待同步数据表,得到待同步数据;
所述发送单元,用于将所述待同步数据发送至关系型数据库管理系统,以完成所述待同步数据表从mongodb数据库到关系型数据库管理系统的数据同步;
所述预设目录包括指定存储目录和部署有kettle服务器的运行目录;
所述读取单元,具体用于接收命令解析器发送的运行目录的路径信息;
所述读取单元,具体用于根据所述路径信息,从所述运行目录中读取所述待同步数据表;或
所述读取单元,还具体用于每隔预设时间间隔,查询所述指定存储目录,以便从所述指定存储目录中读取所述待同步数据表;
所述表名构建规则包括:表名前缀字段以及表名后缀字段,其中,所述表名前缀字段用于表征表单表名的开头,所述表名后缀字段是按照时间命名或按照哈希值命名的;
其中,利用所述表名构建规则,生成表单表名,包括:
获取目标日期,其中,所述目标日期包括所述待同步数据表中所有数据所处的所有时间段;
根据所述目标日期和按照时间命名的表名后缀字段,得到表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名;或
根据所述表名构建规则,生成表单表名,包括:
根据按照哈希值命名的表名后缀字段,得到所述表名关键字段;
利用所述表名前缀字段以及所述表名关键字段,组成所述表单表名。
7.一种mongodb到mysql的数据同步装置,包括:依次相连的存储器、处理器和收发器,其中,所述存储器用于存储计算机程序,所述收发器用于收发消息,所述处理器用于读取所述计算机程序,执行如权利要求1、2~3或4任意一项所述的mongodb到mysql的数据同步方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,执行如权利要求1、2~3或4任意一项所述的mongodb到mysql的数据同步方法。
CN202110638794.4A 2021-06-08 2021-06-08 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质 Active CN113254535B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110638794.4A CN113254535B (zh) 2021-06-08 2021-06-08 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110638794.4A CN113254535B (zh) 2021-06-08 2021-06-08 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN113254535A CN113254535A (zh) 2021-08-13
CN113254535B true CN113254535B (zh) 2022-12-13

Family

ID=77187075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110638794.4A Active CN113254535B (zh) 2021-06-08 2021-06-08 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN113254535B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114153659B (zh) * 2021-11-29 2022-09-20 众和空间(北京)科技有限责任公司 一种数据的双模式存储及同步系统
CN114637744A (zh) * 2022-02-18 2022-06-17 深圳联想懂的通信有限公司 一种数据库处理方法、装置、电子设备及存储介质
CN116049268B (zh) * 2023-03-22 2023-06-16 广东粤港澳大湾区国家纳米科技创新研究院 局部动态表单展示的实现方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633069A (zh) * 2017-09-22 2018-01-26 北京康爱营养科技股份有限公司 一种快捷高效的数据同步方法
CN110609826A (zh) * 2019-09-20 2019-12-24 四川长虹电器股份有限公司 一种数据抽取的方法
CN110704458A (zh) * 2019-08-15 2020-01-17 平安科技(深圳)有限公司 数据同步方法、装置、计算机设备及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102202073B (zh) * 2010-03-24 2014-05-07 杭州华三通信技术有限公司 一种分布式系统及其数据同步方法
CN104123392A (zh) * 2014-08-11 2014-10-29 吉林禹硕动漫游戏科技股份有限公司 一种关系型数据库迁移到HBase数据库的工具和方法
CN107729366B (zh) * 2017-09-08 2021-01-05 广东省建设信息中心 一种普适多源异构大规模数据同步系统
CN110209726B (zh) * 2018-02-12 2023-10-20 金篆信科有限责任公司 分布式数据库集群系统、数据同步方法及存储介质
CN110275913A (zh) * 2019-04-25 2019-09-24 深圳壹账通智能科技有限公司 数据供应方法、装置、及存储介质和电子装置
CN110209680A (zh) * 2019-04-25 2019-09-06 深圳壹账通智能科技有限公司 基于Hive外部表的数据更新方法、装置、及电子装置
CN110532275A (zh) * 2019-08-09 2019-12-03 国云科技股份有限公司 一种跨域数据和文件更新同步的实现方法
CN111913960A (zh) * 2020-07-29 2020-11-10 深圳云之家网络有限公司 一种表单处理方法及相关设备
CN112328702B (zh) * 2020-12-04 2024-03-26 中信银行股份有限公司 数据同步方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107633069A (zh) * 2017-09-22 2018-01-26 北京康爱营养科技股份有限公司 一种快捷高效的数据同步方法
CN110704458A (zh) * 2019-08-15 2020-01-17 平安科技(深圳)有限公司 数据同步方法、装置、计算机设备及存储介质
CN110609826A (zh) * 2019-09-20 2019-12-24 四川长虹电器股份有限公司 一种数据抽取的方法

Also Published As

Publication number Publication date
CN113254535A (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN113254535B (zh) 一种mongodb到mysql的数据同步方法、装置及计算机可读存储介质
CN109299110B (zh) 数据查询方法、装置、存储介质和电子设备
US10275475B2 (en) Scalable analysis platform for semi-structured data
US10452661B2 (en) Automated database schema annotation
US20170199875A1 (en) Database operation using metadata of data sources
CN105138661A (zh) 一种基于Hadoop的网络安全日志k-means聚类分析系统及方法
WO2020160265A1 (en) Data storage apparatus, translation apparatus, and database access method
CN106407302B (zh) 支持通过简单sql调用中间件数据库特有功能的方法
CN102955843B (zh) 一种键值数据库的多键查找实现方法
US11275759B2 (en) Data storage method and apparatus, server, and storage medium
CN111008521B (zh) 生成宽表的方法、装置及计算机存储介质
CN104346331A (zh) Xml数据库的检索方法及系统
CN109299101A (zh) 数据检索方法、装置、服务器和存储介质
CN109144514B (zh) Json格式数据解析存储方法及装置
WO2014186745A1 (en) Generating and implementing local search engines over large databases
CN115712667B (zh) 一种图数据融合分析方法、装置及存储介质
WO2016107440A1 (zh) 一种电子地图的生成、显示方法和装置
US20110252039A1 (en) System, apparatus and method for processing content on a computing device
CN104301182A (zh) 一种慢速网站访问异常信息的查询方法及装置
CN113468340A (zh) 一种产业知识图谱的构建系统及构建方法
CN101739249A (zh) 服务客户端自动构建系统
Fontenay sdmxuse: command to import data from statistical agencies using the SDMX standard
CN112799666B (zh) 容器集群视图自动构建方法、系统、计算机设备及介质
CN113626446B (zh) 数据存储和查找方法、装置、电子设备及介质
US20240143658A1 (en) Methods and apparatuses for inserting data into graph database

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