CN110597891B - MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 - Google Patents
MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 Download PDFInfo
- Publication number
- CN110597891B CN110597891B CN201810602527.XA CN201810602527A CN110597891B CN 110597891 B CN110597891 B CN 110597891B CN 201810602527 A CN201810602527 A CN 201810602527A CN 110597891 B CN110597891 B CN 110597891B
- Authority
- CN
- China
- Prior art keywords
- database
- data
- postgresql
- mysql
- unit
- 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
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
MySQL数据库聚合为PostgreSQL数据库的设备,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括:前置设定部;多源异步复制部;同步检查部;数据聚合部;数据抽取部;全量同步部;SQL语句生成部;数据一致性校验部。本发明通过将分库分表后的MySQL数据库或者表聚合为PostgreSQL,从而使得已经采用了关系型数据库管理系统MySQL数据库能够聚合转化为PostgreSQL数据库,从而使得数据库在OLAP场合下的查询性能比原先的MySQL数据库在OLAP上的性能提高数倍。将分库分表的数据(库)进行聚合得到了PostgreSQL聚合库,这样因为只需要查询一个库,只需要编写一个库的查询代码,所以查询代码的编写时间也能够得到节约,操作简单,方便对数据库管理员顺畅的使用。
Description
技术领域
本发明涉及数据库转换领域,具体涉及一种将MySQL数据库聚合转换为PostgreSQL的设备、方法和系统。
背景技术
当今的数据处理大致可以分成两大类:联机事务处理OLTP(on-line transactionprocessing)、联机分析处理OLAP(On-Line Analytical Processing)。OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。OLAP是数据库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
具体来讲,OLTP,也称为面向交易的处理系统,其基本特征是顾客的原始数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果。这样做的最大优点是可以即时地处理输入的数据,及时地回答,因此该系统也称为实时系统(Real time System)。衡量联机事务处理系统OLTP的一个重要性能指标是系统性能,具体体现为实时响应时间(Response Time),即用户在终端上送入数据之后,到计算机对这个请求给出答复所需要的时间。OLTP是由数据库引擎负责完成的。
随着数据库技术的发展和应用,数据库存储的数据量从20世纪80年代的兆(M)字节及千兆(G)字节过渡到现在的兆兆(T)字节和千兆兆(P)字节,同时,用户的查询需求也越来越复杂,涉及的已不仅是查询或操纵一张关系表中的一条或几条记录,而且要对多张表中千万条记录的数据进行数据分析和信息综合,传统的关系数据库系统已不能全部满足这一要求。为此,采取发展其前端产品来弥补关系数据库管理系统支持的不足,力图统一分散的公共应用逻辑,在短时间内响应非数据处理专业人员的复杂查询要求就被作为解决这一难题的手段,为此联机分析处理(OLAP)就应运而生,该系统是数据系统最主要的应用,专门设计用于支持复杂的分析操作,可以根据分析人员的要求快速、灵活地进行大数据量的复杂查询处理,并且以一种直观而易懂的形式将查询结果提供给决策人员。
OLTP数据库旨在使事务应用程序仅写入所需的数据,以便尽快处理单个事务,因此,目前对于常用的MySQL等关系型数据库,为了处理OLTP的上述海量数据的事务处理要求,主流的解决方案是采用分库分表的方法,这种方法对于上述的典型的OLTP类型的场景,能极大的提示数据库系统的性能。
显然,对于现有的已经采用了关系型数据库管理系统(比如Oralce,MySQL,SQLServer)的客户而言,其在使用分库分表操作后,虽然能够处理现在的海量数据,应对OLTP类事务,但对于分库后的OLAP场景,却面临着这些问题:
第一,因为数据库分散在不同的服务器上,无法直接运行聚合查询SQL(Structured Query Language,结构化查询语言)。
第二,即使用通过MySQL系统的多源复制MMR(MySQL Multi-Source Replication)把数据全部整合到一个服务器上,但也要多此运用联机语句union 进行连接查询,而这意味着工作量很大,而且代码执行效率低下:假如分了1024个库,那么这条查询语句就需要使用联机语句union进行1024个子查询,而这些操作,显然无论是效率还是代码可读性度都非常的低下,而且重复操作会使得最后的查询结果的出错率升高。
发明内容
本发明是为了解决上述关系型数据库在分库分表后处理海量数据的OLAP场景出现的无法直接运行SQL语言而且多次union联机查询效率不高、出错率高的问题而进行的,目的在于提供一种基于MMR优化的MySQL聚合为PostgreSQL数据库的设备、系统、方法以及存储介质。
本发明提供了一种MySQL数据库聚合为PostgreSQL数据库的设备,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括:
多源异步复制部,用于输入多个分片复制参数并通过多个端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表;
同步检查部,用于检查每一个所述端口下的异步复制是否出现异常;
数据聚合部,用于对所有的所述多源头的异步复制得到的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表;
数据抽取部,用于对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构;
全量同步部,用于将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据;
SQL语句生成部,用于对所述多源异步复制部在复制过程中产生的日志文件进行解析,并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句。
本发明提供的MySQL数据库聚合为PostgreSQL数据库的设备,还可以具有这样的特征,其特征在于,还包括:
前置设定部,用于对数据库聚合前的日志文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式;以及
数据一致性校验部,用于对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验。
本发明提供的MySQL数据库聚合为PostgreSQL数据库的设备,还可以具有这样的特征,其特征在于,其中,所述数据一致性校验部具有:
hash值校验单元,用于通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;或
总行数校验单元,用于比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
本发明提供的MySQL数据库聚合为PostgreSQL数据库的设备,还可以具有这样的特征,其特征在于,其特征在于:
其中,所述同步检查部包括第一至第四单元:
第一单元,用于对所述多源异步复制部中接收到的每一个所述端口进行数量统计;
第二单元,用于使得所述端口连接MySQL数据库并得到主从同步状态信息;
第三单元,用于判断该端口上连接的设备是否包含有第二主库,如果有就由第一单元进行处理,如果没有就进入第四单元;
第四单元,用于进一步判断SQL线程和输入输出线程是否出现异常,如果出现异常,所述多源异步复制部就停止复制;
第五单元,控制所述第二、第三、第四单元重复运行直至遍历每一个所述端口。
本发明还提供一种MySQL数据库聚合为PostgreSQL数据库的系统,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括至少一个运行MySQL的MySQL设备和至少一个运行PostgreSQL的PostgreSQL设备,其特征在于:其中,所述MySQL设备或所述PostgreSQL设备中至少一个上述的MySQL数据库聚合为PostgreSQL数据库的设备,所述MySQL设备或所述PostgreSQL设备经由通信网络通信连接,所述MySQL设备或所述PostgreSQL设备均为为计算机系统。
本发明还提供一种MySQL数据库聚合为PostgreSQL数据库的方法,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括以下步骤:
S1,输入多个分片复制参数并通过多个端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表;
S2,检查每一个所述端口下的异步复制是否出现异常;
S3,对所有的所述多源头的异步复制得到的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表;
S4,对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构;
S5,将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据;
S6,对步骤S1在复制过程中产生的日志文件进行解析,并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句。
本发明提供的MySQL数据库聚合为PostgreSQL数据库的方法,还可以具有这样的特征,其特征在于,还包括:前置设定步骤,对数据库聚合前的文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式;以及数据一致性校验步骤,对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验。
本发明提供的MySQL数据库聚合为PostgreSQL数据库的方法,还可与具有这样的特征,其特征在于,其中,所述数据一致性校验步骤包括:Hash值校验步骤,通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;总行数校验步骤,比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
本发明提供的MySQL数据库聚合为PostgreSQL数据库的方法,还可以具有这样的特征,其特征在于:其中,步骤S2包括以下子步骤:
S2-1,对步骤S1中接收到的每一个所述端口进行数量统计;
S2-2,所述端口连接MySQL数据库并得到主从同步状态信息;
S2-3,判断该端口上连接的设备是否包含有第二主库,如果有就转入步骤S2-1进行处理,如果没有就进入下一步骤;
S2-4,进一步判断SQL线程和输入输出线程是否出现异常如果出现异常,步骤S1就停止复制;
S2-5,步骤S2-2至S2-4重复运行直至遍历每一个所述端口。
本发明还提供一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上的MySQL数据库聚合为PostgreSQL数据库的方法。
发明的作用和效果
根据本发明所涉及的基于MMR优化的将MySQL数据库聚合为PostgreSQL数据库的方法,因为具有多源异步复制部,能够输入多个分片复制参数并通过用户指定的端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表;具有同步检查部,能够检查每一个所述特定端口下的所述异步复制的同步信息;具有数据聚合部,能够对所有的所述多源头的异步复制复制得到的的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表;具有数据抽取部,能够对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构;具有全量同步部,能够将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据;具有SQL语句生成部,能够根据所述多源异步复制部在复制过程中产生的日志文件进行解析并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句;具有数据一致性校验部,能够对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验,检验通过即得到所述PostgreSQL数据库,所以,本发明通过将分库分表后的MySQL数据库或者表聚合为PostgreSQL,从而使得已经采用了关系型数据库管理系统MySQL数据库能够聚合转化为PostgreSQL数据库,从而使得数据库在OLAP场合下的查询性能比原先的MySQL数据库在OLAP上的性能提高数倍。
而且,多源异步复制部,能够输入多个分片复制参数并通过用户指定的端口进行多源头的异步复制(多源复制MMR,MySQL Multi-Source Replication),使得一次复制行为能够将所有的分散的表、数据进行聚合。
进一步,因为将分库分表的数据(库)进行聚合得到了PostgreSQL聚合库,这样因为只需要查询一个库,只需要编写一个库的查询代码,所以查询代码的编写时间也能够得到节约。
更进一步,因为整套系统结构可以在设定好存储参数后全自动的运行,实现数据流从分布式存储的的MySQL OLTP系统到集中式存储的PostgreSQL OLAP的平稳转换,所以,操作简单,方便对数据库管理员顺畅的使用。
附图说明
图1为MySQL数据库聚合为PostgreSQL数据库的系统的组成框图;
图2为本发明的实施例中MySQL数据库聚合为PostgreSQL数据库的设备的结构框图;
图3为本发明提供的一种MySQL数据库聚合为PostgreSQL数据库的方法的流程图;
图4为检查异步复制的异常信息的过程示意图;
图5为数据库类型转换过程示意图;以及
图6为同步过程的示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明基于MMR优化的MySQL聚合为PostgreSQL数据库的设备、系统、方法以及存储介质组成、结构、连接关系、具体工作流程以及工作原理、作用和效果做具体阐述。
图1为MySQL数据库聚合为PostgreSQL数据库的系统的组成框图。
如图1所示,在本实施例中,MySQL数据库聚合为PostgreSQL数据库的系统1000,具有至少一个运行MySQL的MySQL设备和至少一个运行PostgreSQL的PostgreSQL设备,MySQL数据库聚合为PostgreSQL数据库的设备100即可以是某一个MySQL设备,也可以是一个PostgreSQL设备。
所述MySQL设备、所述PostgreSQL设备经由通信网络200通信连接,所述通信网络200为局域网、广域网或是互联网,所述MySQL设备、所述PostgreSQ以及MySQL数据库聚合为PostgreSQL数据库的设备device100均为为计算机系统,这里的计算机系统是广义的计算机系统(硬件和软件),即能够进行存储和运算功能的能按照人的要求接受和存储信息,自动进行数据处理和计算,并输出结果信息的机器系统,其可用的软件操作子系统包括MSWindows,Linux,unix,Mac等。
在本实施例中,所述MySQL设备、所述PostgreSQL设备为微型计算机PC或是服务器、工作站,可以是MySQL数据库聚合为PostgreSQL数据库的设备100与MySQL设备、PostgreSQL设备共用一套计算机系统的硬件(这样这个MySQL或PostgreSQL设备同时也是MySQL数据库聚合为PostgreSQL数据库的设备100),也可以单独设置一台设备为MySQL数据库聚合为PostgreSQL数据库的设备100,软件子系统使用的是Linux。
以下实施例以实际中比较常见的模式:MySQL数据库聚合为PostgreSQL数据库的设备100与MySQL设备共用一套计算机系统的硬件为例,并且在单位内部使用局域网进行说明。
通信网络的连接媒介可以是无线的(比如WiFi),也可以是有线的(光纤或是电缆)。
图2为本发明的实施例中MySQL数据库聚合为PostgreSQL数据库的设备的结构框图。
MySQL数据库聚合为PostgreSQL数据库的设备100(与图中的MySQL设备共用一套硬件)分别和其他MySQL设备、多个PostgreSQL通过通信网络(有线或无线网络)通信连接,具有前置设定部101、多源异步复制部102、同步检查部103、数据聚合部104、数据抽取部105、全量同步部106、SQL语句生成部107、数据一致性校验部108、控制部109。
前置设定部101,用于对数据库聚合前的日志文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式。
前置设定部中的所述存储参数包括
my.cnf文件中的:
master-info-repository=TABLE(主库的复制信息的存储位置这个参数设定为TABLE)
relay-log-info-repository=TABLE(中继日志复制信息的存储位置这个参数设定为TABLE)
binlog_format=ROW(二进制日志的复制格式设定为ROW)
log-bin=mysql-bin(将二进制日志log-bin文件写入到文件名为mysql-bin这个文件中并存储)
因为在进行并行复制开启后对于原master.inf这个文件的更新将会大幅度提升,对于计算机的内存和计算资源的占用竞争会变大,而将“master-info-repository=TABLE”即主库的复制信息的存储位置这个参数设置为TABLE表格后,能够使得该复制过程能够在竞争中性能提升,复制效率更高。
因为relay.info明文存储不安全,把relay.info中的信息记录在table表格中相对安全;另外存储在table可以避免relay.info更新不及时,SLAVE重启后导致的主从复制出错。
mysql复制主要有三种方式:基于SQL语句的复制(statement-basedreplication,SBR),基于行的复制(row-based replication,RBR),混合模式复制(mixed-based replication,MBR)。对应的,binlog的格式也有三种:STATEMENT,ROW,MIXED。
①STATEMENT模式(SBR)
每一条会修改数据的sql语句会被记录到binlog中。优点是并不需要记录每一条sql语句和每一行的数据变化,减少了binlog日志量,节约IO,提高性能。缺点是在某些情况下会导致master-slave中的数据不一致(如sleep()函数,last_insert_id(),以及user-defined functions(udf)等会出现问题)。
②ROW模式(RBR)
不记录每条sql语句的上下文信息,仅需记录哪条数据被修改了,修改成什么样了。而且不会出现某些特定情况下的存储过程、或function、或trigger的调用和触发无法被正确复制的问题。缺点是会产生大量的日志,尤其是alter table的时候会让日志暴涨。
③MIXED模式(MBR)
以上两种模式的混合使用,一般的复制使用STATEMENT模式保存binlog,对于STATEMENT模式无法复制的操作使用ROW模式保存binlog,MySQL会根据执行的SQL语句选择日志保存方式。
在本实施例中:
binlog_format=ROW
即,选择ROW的模式进行复制,这是因为该种模式在任何情况下都可以被复制,这对复制来说是最安全可靠的;而且该模式在复制以下几种语句时的行锁更少:
*INSERT...SELECT
*包含AUTO_INCREMENT字段的INSERT
*没有附带条件或者并没有修改很多记录的UPDATE或DELETE语句。
而且复制后在执行INSERT,UPDATE,DELETE语句时锁更少,以下的种种优势使得从服务器上采用多线程来执行复制(MMR)成为可能,而且效率高,也最安全可靠,特别适合于本发明的从多个分库分表的分散在不同的服务器上的MySQL数据库(表)进行复制、聚合的情形。
replay log文件中的:
STOP SLAVE;(关闭主从同步)
SET GLOBAL master_info_repository='TABLE';(设定整个复制过程中,主库的复制信息的存储位置这个参数为TABLE)
SET GLOBAL relay_log_info_repository='TABLE';(设定整个复制过程中,中继日志复制信息的存储位置这个参数为TABLE)
多源异步复制部102,用于输入多个分片复制参数并通过多个端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表。
为了输入多个分片复制参数以及端口,这些参数包括:运行MySQL的主库设备名称,接收分库聚合后的数据库的从库设备名称,主库设备用于复制的端口,主库数据库的登陆密码,复制过程中日志文件的的名称,复制时的channel名称,为设置这些参数,需要运行以下的命令来输入:
CHANGE MASTER TO MASTER_HOST='master1',MASTER_USER='rpl',\
(将主库设备指定为master1,将接收复制后文件的设备指定为rpl)
MASTER_PORT=3451,MASTER_PASSWORD=”\
(指定主库设备用于复制的端口为3451,并请输入登陆密码)
MASTER_LOG_FILE='master1-bin.000006',\
(指定复制过程的日志文件的名称)
MASTER_LOG_POS=628FOR CHANNEL channexxx';
(为此处复制的chanelxxx指定位置为628)
START SLAVE FOR CHANNEL channexxx;
(使用chanelxxx开始主从复制)
同步检查部103,用于检查每一个所述端口下的异步复制是否出现异常,包括第一至第五单元。
第四单元,用于进一步判断SQL线程和输入输出线程是否出现异常进行判断,如果出现异常,所述多源异步复制部就停止复制;
第一单元1031,用于对所述多源异步复制部102中接收到的每一个所述端口,进行计数统计。
第二单元1032,用于使得所述端口连接MySQL数据库并得到主从同步状态信息。在本实施例中,其是用于对所述端口使用pymysql模块连接MySQL数据库,执行show slavestatus命令,得到主从同步状态信息。
第三单元1033,于判断该端口上连接的设备是否包含有第二主库,如果有就由第一单元进行处理,如果没有就进入第四单元。在本实施例中,该第三单元1033是用于对所述主从同步信息中的seconds_behind_master这一列的值进行判断,如果等于0,则进一步判断,如果大于0,则等待一段时间之后再由所述第一单元进行处理。
第四单元1034,用于进一步判断SQL线程和输入输出线程是否出现异常进行判断,如果出现异常所述多源异步复制部就停止复制。本实施例中,当所述第三单元判断结构0时,进一步对sql_threadSQl进程和io_thread输入输出进程列进行判断,如果两者有其中一个不等于“Yes”,则停止程序。
第五单元,控制所述第二、第三、第四单元重复运行直至遍历每一个所述端口。
数据聚合部104,用于对所有的所述多源头的异步复制复制得到的的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表。
数据抽取部105,用于对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构,包括第六至第十一单元。
第六单元1051,用于获取所述MySQL数据库表中所有的表的名字,本实施例中,是用于从information_schema中得到该库中所有的表的名字。
第七单元1052,用于获取所有的表名字的表结构定义语句,本实施例总,是用于对所述表通过show create table命令语句得到所有的表名字的表结构定义语句。
第八单元1053,用于将具有相同的表前缀、相同的表结构定义语句的表确定为同一张表。
第九单元1054,用于对这些被确定为同一张表的表结构定义语句按照所转换关系进行转换得到PostgreSQL的表结构定义语句。
下表为PostgreSQL和MySQL的字段类型映射规则表
第十单元1055,用于控制第七、八、九单元重复运行直至遍历每一个表。
第十一单元1056,用于将所有的由第九单元转换得到的所述表结构定义语句进行整合即得到所述PostgreSQL的表结构。
全量同步部106,用于将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据,具有第十二至第十五单元。
第十二单元1061,用于将源端的MySQL数据聚合库表中的数据表以数据表文件为名导出为多个文本文件,本实施例中,是用于从源端的MySQL数据库总,通过select*fromtable into out file命令,将数据以表为文件名,分别导出到多个文本文件中。
第十三单元1062,用于根据分库分表规则,把同一个聚合表中的所述文本文件追加到一起。
第十四单元1063,用于在目标端的PostgreSQL中把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集,本实施例中,是用于在目标端的PostgreSQL中,通过load命令,把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集。
第十五单元1064,用于对所述结果集的行数和追加到一起的所述文本文件中的行数进行对比,如果出现不对应,记录下不对应的的表名字并存储,本实施例总,是用于对所述结果集的行数和追加到一起的所述文本文件中的行数进行对比,如果出现不对应,记录下不对应的的表名字以及数据,便于后期修补数据。
SQL语句生成部107,用于对所述多源异步复制部在复制过程中产生的日志文件进行解析,并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句,本实施例中,是用于根据所述多源异步复制部在复制过程中产生的日志文件进行解析并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句,即对MySQL中的二进制日志进行解析,用来自上一次同步后获取增量变化的数据,然后根据PostgreSQL和MySQL映射规则进行类型转换,最后生成在PostgreSQL中可执行的SQL语句,在PostgreSQL数据库中重放这些语句,这样达到了增量数据同步的过程。
数据一致性校验部108,用于对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验,本实施例中,是用于对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验,检验通过即得到所述PostgreSQL数据库,具有:
hash值校验单元1081,用于通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;或
总行数校验单元1082,用于比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
两个单元在调用该函数的时候可以定义,前者hash值校验单元1081数据一致性高,但是校验时间比较长,后者总行数校验单元1082一致性比较低,但是校验的时间比较短,根据实际情况进行选择,或者两个检验都进行,在本实施例中,这两个单元都有,根据实际情况进行选择。对于某些场合为了保证结果的准确性,hash值校验单元1081和总行数校验单元1082都会进行校验,并给出校验结果,只有两个都合格的情况下,才能确认合格,得到的PostgreSQL数据库才是正确的数据库的。
控制部109,用于进行控制。
为了进一步说明MySQL数据库聚合为PostgreSQL数据库的系统的工作流程和工作原理,以下结合附图来说明整个系统的运行流程。
图3为本发明提供的一种MySQL数据库聚合为PostgreSQL数据库的方法的流程图。
如图3所示,MySQL数据库聚合为PostgreSQL数据库的方法,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,包括以下步骤:
前置设定步骤,对数据库聚合前的文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式。
步骤S1,输入多个分片复制参数并通过用户指定的端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表。
图4为检查异步复制的异常信息的过程示意图。
步骤S2,检查每一个所述端口下的异步复制是否出现异常,包括如图4所示的以下子步骤:
步骤S2-1,对步骤S1中连接到的每一个所述端口,进行计数统计。
步骤S2-2,所述端口连接MySQL数据库并得到主从同步状态信息。具体的,在本实施例中,是对某一个所述端口使用pymysql模块连接MySQL数据库,执行show slave status命令,得到主从同步状态信息。
步骤S2-3,判断该端口上连接的设备是否包含有第二主库,如果有就转入步骤S2-1进行处理,如果没有就进入下一步骤,在本实施例中,是对所述主从同步状态信息中的seconds_behind_master这一列的值进行判断,如果等于0,则进一步判断,如果大于0,则等待一段时间之后再由所述第一单元进行处理。
步骤S2-4,进一步判断SQL线程和输入输出线程是否出现异常,如果出现异常,所述多源异步复制部就停止复制,本实施例中,当步骤S2-3中判断结果为0时,进一步对sql_thread和io_thread列进行判断,如果两者有其中一个不等于“Yes”,则停止程序,否则进入下一步。
步骤S2-5,重复执行步骤S2-2至S2-4直至遍历每一个所述端口。
步骤S3,对所有的所述多源头的异步复制复制得到的的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表。
图5为数据库类型转换过程示意图。
步骤S4,对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构,包括如图5所示的以下的子步骤:
步骤S4-1,获取所述MySQL数据库表中所有的表的名字,本实施例中,是从information_schema中得到该库中所有的表的名字;
步骤S4-2,获取所有的表名字的表结构定义语句,本实施例中,具体的是对于某一个表通过show create table命令语句得到所有的表名字的表结构定义语句;
步骤S4-3,根据分库分表规则将具有相同的表前缀、相同的表结构定义语句的表确定为同一张表;
步骤S4-4,将这些被确定为同一张表的表结构定义语句转换成PostgreSQL的表结构定义语句,本实施例中,是对这些被确定为同一张表的表结构定义语句按照所转换关系进行转换得到PostgreSQL的表结构定义语句;
步骤S4-5,重复执行步骤S4-2至S4-4直至遍历每一个表;
步骤S4-6,将所有的由步骤S4-4转换得到的所述表结构定义语句进行整合即得到所述PostgreSQL的表结构。
图6为同步过程的示意图。
步骤S5,将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据,包括如图6所示的以下的子步骤:
步骤S5-1,将源端的MySQL数据聚合库表中的数据表以数据表文件为名导出为多个文本文件,本实施例中,是从源端的MySQL数据库中,通过select*fromtable into outfile命令,将数据以表为文件名,分别导出到多个文本文件中;
步骤S5-2,根据分库分表规则,把同一个聚合表中的所述文本文件追加到一起;
步骤S5-3,在目标端的PostgreSQL中把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集,本实施例中,是在目标端的PostgreSQL中,通过load命令,把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集;
步骤S5-4,对所述结果集的行数和追加到一起的所述文本文件中的行数进行对比,如果出现不对应,记录下不对应的的表名字以及数据,便于后期修补数据。
步骤S6,根据步骤S1在复制过程中产生的日志文件进行解析并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句。
数据一致性校验步骤,对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验。数据一致性校验步骤包括:
hash值校验子步骤,通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;
总行数校验子步骤,比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
为了实施以上的基于MMR优化的将MySQL数据库聚合为PostgreSQL数据库的系统以及基于MMR优化的将MySQL数据库聚合为PostgreSQL数据库的方法,本发明还提供一种存储介质,其上存储有计算机程序,其能够被计算机系统安装,在本实施例中其用于安装在运行MySQL数据库的源端设备上,该存储介质其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
前置设定步骤,对数据库聚合前的文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式。
步骤S1,输入多个分片复制参数并通过用户指定的端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表。
步骤S2,检查每一个所述端口下的异步复制是否出现异常,包括如图4所示的以下子步骤:
步骤S2-1,对步骤S1中连接到的每一个所述端口,进行计数统计。
步骤S2-2,所述端口连接MySQL数据库并得到主从同步状态信息。具体的,在本实施例中,是对某一个所述端口使用pymysql模块连接MySQL数据库,执行show slave status命令,得到主从同步状态信息。
步骤S2-3,判断该端口上连接的设备是否包含有第二主库,如果有就转入步骤S2-1进行处理,如果没有就进入下一步骤,在本实施例中,是对所述主从同步状态信息中的seconds_behind_master这一列的值进行判断,如果等于0,则进一步判断,如果大于0,则等待一段时间之后再由所述第一单元进行处理。
步骤S2-4,进一步判断SQL线程和输入输出线程是否出现异常,如果出现异常,所述多源异步复制部就停止复制,本实施例中,当步骤S2-3中判断结果为0时,进一步对sql_thread和io_thread列进行判断,如果两者有其中一个不等于“Yes”,则停止程序,否则进入下一步。
步骤S2-5,重复执行步骤S2-2至S2-4直至遍历每一个所述端口。
步骤S3,对所有的所述多源头的异步复制复制得到的的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表。
步骤S4,对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构,包括如图5所示的以下的子步骤:
步骤S4-1,获取所述MySQL数据库表中所有的表的名字,本实施例中,是从information_schema中得到该库中所有的表的名字;
步骤S4-2,获取所有的表名字的表结构定义语句,本实施例中,具体的是对于某一个表通过show create table命令语句得到所有的表名字的表结构定义语句;
步骤S4-3,根据分库分表规则将具有相同的表前缀、相同的表结构定义语句的表确定为同一张表;
步骤S4-4,将这些被确定为同一张表的表结构定义语句转换成PostgreSQL的表结构定义语句,本实施例中,是对这些被确定为同一张表的表结构定义语句按照所转换关系进行转换得到PostgreSQL的表结构定义语句;
步骤S4-5,重复执行步骤S4-2至S4-4直至遍历每一个表;
步骤S4-6,将所有的由步骤S4-4转换得到的所述表结构定义语句进行整合即得到所述PostgreSQL的表结构。
步骤S5,将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据,包括如图6所示的以下的子步骤:
步骤S5-1,将源端的MySQL数据聚合库表中的数据表以数据表文件为名导出为多个文本文件,本实施例中,是从源端的MySQL数据库中,通过select*fromtable into outfile命令,将数据以表为文件名,分别导出到多个文本文件中;
步骤S5-2,根据分库分表规则,把同一个聚合表中的所述文本文件追加到一起;
步骤S5-3,在目标端的PostgreSQL中把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集,本实施例中,是在目标端的PostgreSQL中,通过load命令,把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集;
步骤S5-4,对所述结果集的行数和追加到一起的所述文本文件中的行数进行对比,如果出现不对应,记录下不对应的的表名字以及数据,便于后期修补数据。
步骤S6,根据步骤S1在复制过程中产生的日志文件进行解析并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句。
数据一致性校验步骤,对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验。数据一致性校验步骤包括:
哈希值校验子步骤,通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;
总行数校验子步骤,比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
实施例的作用与效果在于:根据本实施例所涉及的基于MMR优化的将MySQL数据库聚合为PostgreSQL数据库的方法,因为具有多源异步复制部,能够输入多个分片复制参数并通过用户指定的端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表;具有同步检查部,能够检查每一个所述特定端口下的所述异步复制的同步信息;具有数据聚合部,能够对所有的所述多源头的异步复制复制得到的的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表;具有数据抽取部,能够对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构;具有全量同步部,能够将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据;具有SQL语句生成部,能够根据所述多源异步复制部在复制过程中产生的日志文件进行解析并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句;具有数据一致性校验部,能够对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验,检验通过即得到所述PostgreSQL数据库,所以,本发明通过将分库分表后的MySQL数据库或者表聚合为PostgreSQL,从而使得已经采用了关系型数据库管理系统MySQL数据库能够聚合转化为PostgreSQL数据库,从而使得数据库在OLAP场合下的查询性能比原先的MySQL数据库在OLAP上的性能提高数倍。
而且,多源异步复制部,能够输入多个分片复制参数并通过用户指定的端口进行多源头的异步复制(多源复制MMR,MySQL Multi-Source Replication),使得一次复制行为能够将所有的分散的表、数据进行聚合。
进一步,因为将分库分表的数据(库)进行聚合得到了PostgreSQL聚合库,这样因为只需要查询一个库,只需要编写一个库的查询代码,所以查询代码的编写时间也能够得到节约。
更进一步,因为整套系统结构可以在设定好存储参数后全自动的运行,实现数据流从分布式存储的的MySQL OLTP系统到集中式存储的PostgreSQL OLAP的平稳转换,所以,操作简单,方便对数据库管理员顺畅的使用。
上述实施方式为本发明的优选案例,并不用来限制本发明的保护范围。
Claims (10)
1.一种MySQL数据库聚合为PostgreSQL数据库的设备,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括:
多源异步复制部,用于输入多个分片复制参数并通过多个端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表;
同步检查部,用于检查每一个所述端口下的异步复制是否出现异常;
数据聚合部,用于对所有的所述多源头的异步复制得到的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表;
数据抽取部,用于对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构;
全量同步部,用于将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据;
所述数据抽取部包括第六至第十一单元:
第六单元,用于获取所述MySQL数据库表中所有的表的名字;
第七单元,用于获取所有的表名字的表结构定义语句;
第八单元,用于将具有相同的表前缀、相同的表结构定义语句的表确定为同一张表;
第九单元,用于对这些被确定为同一张表的表结构定义语句按照所转换关系进行转换得到PostgreSQL的表结构定义语句;
第十单元,用于控制第七、八、九单元重复运行直至遍历每一个表;
第十一单元,用于将所有的由第九单元转换得到的所述表结构定义语句进行整合即得到所述PostgreSQL的表结构;
全量同步部包括第十二至第十五单元:
第十二单元,用于将源端的MySQL数据聚合库表中的数据表以数据表文件为名导出为多个文本文件;
第十三单元,用于根据分库分表规则,把同一个聚合表中的所述文本文件追加到一起;
第十四单元,用于在目标端的PostgreSQL中把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集;
第十五单元,用于对所述结果集的行数和追加到一起的所述文本文件中的行数进行对比,如果出现不对应,记录下不对应的表名字并存储;
SQL语句生成部,用于对所述多源异步复制部在复制过程中产生的日志文件进行解析,并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句。
2.根据权利要求1所述的MySQL数据库聚合为PostgreSQL数据库的设备,其特征在于,还包括:
前置设定部,用于对数据库聚合前的日志文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式;以及
数据一致性校验部,用于对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验。
3.根据权利要求2所述的MySQL数据库聚合为PostgreSQL数据库的设备,其特征在于,其中,所述数据一致性校验部具有:
hash值校验单元,用于通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;或
总行数校验单元,用于比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
4.根据权利要求1所述的MySQL数据库聚合为PostgreSQL数据库的设备,其特征在于:
其中,所述同步检查部包括第一至第四单元:
第一单元,用于对所述多源异步复制部中接收到的每一个所述端口进行数量统计;
第二单元,用于使得所述端口连接MySQL数据库并得到主从同步状态信息;
第三单元,用于判断该端口上连接的设备是否包含有第二主库,如果有就由第一单元进行处理,如果没有就进入第四单元;
第四单元,用于进一步判断SQL线程和输入输出线程是否出现异常,如果出现异常,所述多源异步复制部就停止复制;
第五单元,控制所述第二、第三、第四单元重复运行直至遍历每一个所述端口。
5.一种MySQL数据库聚合为PostgreSQL数据库的系统,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括至少一个运行MySQL的MySQL设备和至少一个运行PostgreSQL的PostgreSQL设备,其特征在于:
其中,所述MySQL设备或所述PostgreSQL设备中至少一个为权利要求1-4中任意一项所述的MySQL数据库聚合为PostgreSQL数据库的设备,
所述MySQL设备或所述PostgreSQL设备经由通信网络通信连接,
所述MySQL设备或所述PostgreSQL设备均为为计算机系统。
6.一种MySQL数据库聚合为PostgreSQL数据库的方法,用于将源端MySQL数据库进行分库后聚合成目标端PostgreSQL数据库,其特征在于,包括:
S1,输入多个分片复制参数并通过多个端口进行多源头的异步复制,得到多个分库分表的MySQL数据库表;
S2,检查每一个所述端口下的异步复制是否出现异常;
S3,对所有的所述多源头的异步复制得到的所述MySQL数据库表进行聚合,得到MySQL数据聚合库表;
S4,对所述MySQL数据聚合库表的库表结构进行收集,并通过预定的MySQL与PostgreSQL的数据类型的转换关系进行转换,并将转换后的结果翻译成PostgreSQL的表结构;
S5,将MySQL数据库中的数据全量同步到PostgreSQL数据库中并生成同步后的增量数据;
S6,对步骤S1在复制过程中产生的日志文件进行解析,并根据所述增量数据基于所述转换关系进行转换,最后得到在PostgreSQL中可执行的SQL语句;
所述S4包括:
S4-1,获取所述MySQL数据库表中所有的表的名字;
S4-2,获取所有的表名字的表结构定义语句;
S4-3,将具有相同的表前缀、相同的表结构定义语句的表确定为同一张表;
S4-4,对这些被确定为同一张表的表结构定义语句按照所转换关系进行转换得到PostgreSQL的表结构定义语句;
S4-5,控制第七、八、九单元重复运行直至遍历每一个表;
S4-6,将所有的由第九单元转换得到的所述表结构定义语句进行整合即得到所述PostgreSQL的表结构;
所述S5包括:
S5-1,将源端的MySQL数据聚合库表中的数据表以数据表文件为名导出为多个文本文件;
S5-2,根据分库分表规则,把同一个聚合表中的所述文本文件追加到一起;
S5-3,在目标端的PostgreSQL中把追加到一起的所述文本文件的内容分别加载到对应的数据表中去,得到结果集;
S5-4,对所述结果集的行数和追加到一起的所述文本文件中的行数进行对比,如果出现不对应,记录下不对应的表名字并存储。
7.根据权利要求6所述的MySQL数据库聚合为PostgreSQL数据库的方法,其特征在于,还包括:
前置设定步骤,对数据库聚合前的文件存储参数进行设定,文件存储参数包括:文件的存储格式、文件的存储地址以及文件复制的模式;以及
数据一致性校验步骤,对MySQL数据库中的数据和聚合后的PostgreSQL数据库中的数据进行数据一致性检验。
8.根据权利要求6所述的MySQL数据库聚合为PostgreSQL数据库的方法,其特征在于,其中,所述数据一致性校验步骤包括:
Hash值校验步骤,通过字符串拼接每一行的数据,用md5算法求出源端的和目标端的hash值,如果在源端和目标端该行数据的hash值相同,则一致性检验通过;
总行数校验步骤,比对源端MySQL数据库和目标端PostgreSQL数据库中每一张表的总行数,行数相同即判断为数据一致即一致性检验通过。
9.根据权利要求1所述的MySQL数据库聚合为PostgreSQL数据库的方法,其特征在于:
其中,步骤S2包括以下子步骤:
S2-1,对步骤S1中接收到的每一个所述端口进行数量统计;
S2-2,所述端口连接MySQL数据库并得到主从同步状态信息;
S2-3,判断该端口上连接的设备是否包含有第二主库,如果有就转入步骤S2-1进行处理,如果没有就进入下一步骤;
S2-4,进一步判断SQL线程和输入输出线程是否出现异常如果出现异常,步骤S1就停止复制;
S2-5,步骤S2-2至S2-4重复运行直至遍历每一个所述端口。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求6至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810602527.XA CN110597891B (zh) | 2018-06-12 | 2018-06-12 | MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810602527.XA CN110597891B (zh) | 2018-06-12 | 2018-06-12 | MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110597891A CN110597891A (zh) | 2019-12-20 |
CN110597891B true CN110597891B (zh) | 2022-06-21 |
Family
ID=68848908
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810602527.XA Active CN110597891B (zh) | 2018-06-12 | 2018-06-12 | MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110597891B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111209344A (zh) * | 2020-02-07 | 2020-05-29 | 浪潮软件股份有限公司 | 数据同步方法及装置 |
CN111680313B (zh) * | 2020-06-08 | 2022-06-28 | 南京领行科技股份有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN112269775A (zh) * | 2020-10-26 | 2021-01-26 | 万达信息股份有限公司 | 一种异构cpu体系下数据全量迁移的方法 |
CN113468154A (zh) * | 2021-06-25 | 2021-10-01 | 浙江数链科技有限公司 | 基于MySQL的大表减容方法、装置、电子装置和存储介质 |
CN115904369B (zh) * | 2022-11-02 | 2023-10-13 | 长扬科技(北京)股份有限公司 | 一种网络安全源数据高效聚合及关联分析的方法与系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870357A (zh) * | 2012-12-17 | 2014-06-18 | 中国移动通信集团河南有限公司 | 一种进行数据复制的方法及系统 |
CN104376062A (zh) * | 2014-11-11 | 2015-02-25 | 中国有色金属长沙勘察设计研究院有限公司 | 一种异构数据库平台数据的同步方法 |
CN107423452A (zh) * | 2017-09-02 | 2017-12-01 | 国网辽宁省电力有限公司 | 一种电网异构数据库同步复制迁移方法 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7370064B2 (en) * | 2002-08-06 | 2008-05-06 | Yousefi Zadeh Homayoun | Database remote replication for back-end tier of multi-tier computer systems |
WO2006083958A2 (en) * | 2005-02-01 | 2006-08-10 | Newsilike Media Group, Inc. | Systems and methods for use of structured and unstructured distributed data |
JP2006338145A (ja) * | 2005-05-31 | 2006-12-14 | Nippon Telegr & Teleph Corp <Ntt> | 多重化データベースシステム及びその同期化方法、仲介装置、仲介プログラム |
CA2695383A1 (en) * | 2007-07-31 | 2009-02-05 | Etelos, Inc. | Software marketplace and distribution system |
CN103842995A (zh) * | 2011-08-01 | 2014-06-04 | 标记公司 | 在分布式数据库中的一般化的协调 |
CN103020281B (zh) * | 2012-12-27 | 2016-01-27 | 中国科学院计算机网络信息中心 | 一种基于空间数据数值索引的数据存储与检索方法 |
CA2892471C (en) * | 2013-01-11 | 2023-02-21 | Db Networks, Inc. | Systems and methods for detecting and mitigating threats to a structured data storage system |
CN103838614B (zh) * | 2014-02-19 | 2017-12-22 | 华为技术有限公司 | 一种数据处理方法及装置 |
CN107122355B (zh) * | 2016-02-24 | 2021-07-06 | 阿里巴巴集团控股有限公司 | 数据迁移系统和方法 |
CN107122360B (zh) * | 2016-02-24 | 2021-06-15 | 阿里巴巴集团控股有限公司 | 数据迁移系统和方法 |
CN107766541B (zh) * | 2017-10-30 | 2021-10-29 | 北京国电通网络技术有限公司 | 配用电全局全量数据传输及存储方法、装置、电子设备 |
-
2018
- 2018-06-12 CN CN201810602527.XA patent/CN110597891B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870357A (zh) * | 2012-12-17 | 2014-06-18 | 中国移动通信集团河南有限公司 | 一种进行数据复制的方法及系统 |
CN104376062A (zh) * | 2014-11-11 | 2015-02-25 | 中国有色金属长沙勘察设计研究院有限公司 | 一种异构数据库平台数据的同步方法 |
CN107783975A (zh) * | 2016-08-24 | 2018-03-09 | 北京京东尚科信息技术有限公司 | 分布式数据库同步处理的方法和装置 |
CN107423452A (zh) * | 2017-09-02 | 2017-12-01 | 国网辽宁省电力有限公司 | 一种电网异构数据库同步复制迁移方法 |
Non-Patent Citations (3)
Title |
---|
"MySQL5.7:多源复制实践";彭东稳;《https://www.ywnds.com/?p=7154》;20161122;1-13 * |
"MYSQL数据库迁移到POSTGRESQL数据库(人工迁移)";rujingjv;《https://blog.51cto.com/383133430/1686169》;20150819;1-5 * |
"浅谈Mysql5.7的replication相关增强";追梦客;《http://blog.csdn.net/qq_21387171/article/details/51321221》;20160505;1-3 * |
Also Published As
Publication number | Publication date |
---|---|
CN110597891A (zh) | 2019-12-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110597891B (zh) | MySQL聚合为PostgreSQL数据库的设备、系统、方法、存储介质 | |
US8572575B2 (en) | Debugging a map reduce application on a cluster | |
Meliou et al. | Tiresias: the database oracle for how-to queries | |
US20170083573A1 (en) | Multi-query optimization | |
CN108572996B (zh) | 数据库表结构的同步方法、装置、电子设备和存储介质 | |
US7401085B2 (en) | System and method for controlling the release of updates to a database configuration | |
WO2015062181A1 (zh) | 用于实现多源异构数据资源自动同步的方法 | |
CN107391653A (zh) | 一种分布式NewSQL数据库系统及图片数据储存方法 | |
CN107122360A (zh) | 数据迁移系统和方法 | |
US9009175B2 (en) | System and method for database migration and validation | |
Yang et al. | F1 Lightning: HTAP as a Service | |
EP3958142A1 (en) | Projections for big database systems | |
CN114328759A (zh) | 一种数据仓库的数据构建与管理方法及终端 | |
WO2015168988A1 (zh) | 一种数据索引创建方法、装置及计算机存储介质 | |
Al Mahruqi et al. | A semi-automated framework for migrating web applications from SQL to document oriented NoSQL database. | |
US11567957B2 (en) | Incremental addition of data to partitions in database tables | |
Sinthong et al. | AFrame: Extending DataFrames for large-scale modern data analysis (Extended Version) | |
JP5084750B2 (ja) | データベース・システムにおける統計ビューの管理 | |
Preethi et al. | Big data analytics using Hadoop tools—Apache Hive vs Apache Pig | |
CN111966656B (zh) | 存储文件高负载场景模拟方法、系统、终端及存储介质 | |
CN114925142A (zh) | 一种orm框架的多类型数据库兼容方法、装置、设备及介质 | |
CN108763489B (zh) | 一种优化Spark SQL执行工作流的方法 | |
CN113568892A (zh) | 一种基于内存计算对数据源进行数据查询的方法和设备 | |
CN112463447A (zh) | 一种基于分布式数据库实现物理备份的优化方法 | |
CN112835887A (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 |