[发明专利]一种可实现数据快速装载的数据同步方法和装置在审
| 申请号: | 201910981942.5 | 申请日: | 2019-10-16 |
| 公开(公告)号: | CN111026768A | 公开(公告)日: | 2020-04-17 |
| 发明(设计)人: | 梅纲;付铨;周淳;张驻西 | 申请(专利权)人: | 武汉达梦数据库有限公司 |
| 主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/27 |
| 代理公司: | 深圳市六加知识产权代理有限公司 44372 | 代理人: | 向彬 |
| 地址: | 430000 湖北省武汉市东湖新技术开*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 实现 数据 快速 装载 同步 方法 装置 | ||
本发明涉及数据同步技术领域,具体涉及一种可实现数据快速装载的数据同步方法和装置,方法包括:从数据源读取数据,并将读取的数据放入缓存中;生产者线程将缓存中的数据分批生成多个数据文件,并将生成的数据文件放入任务队列中;消费者线程调用目的数据库专有的批量数据装载命令,将任务队列中待装载的数据文件逐一装载到目的数据库;其中,生产者线程对应的数据文件生成过程和消费者线程对应的数据批量装载过程为并行进行。本发明采用生产者‑消费者的模型,装载时分批连续生成数据文件,并调用目的数据库专有的装载命令来装载数据,数据文件的生成和数据装载命令的执行可并行进行,减少了串行执行时的性能损失,提高同步效率。
【技术领域】
本发明涉及数据同步技术领域,具体涉及一种可实现数据快速装载的数据同步方法和装置。
【背景技术】
目前,典型的数据同步流程通常包括两个步骤:一是将数据从数据源中读取出来放到缓存中,即数据读取;二是从缓存中读取数据装载到目的数据库中,即数据装载。假设源端为关系数据库,则当前典型的数据同步流程如图1所示,其数据装载过程一般都是调用JDBC(Java Data Base Connectivity)或者ODBC(Open Database Connectivity)接口实现对目的数据库的访问。JDBC或者ODBC都是通用的数据库编程接口,可提供一套完整的、独立于任何特定数据库的编程接口,使得应用程序无需绑定到每种数据库不同的编程接口。数据库厂商发布数据库时会同时发布符合JDBC和ODBC标准的驱动程序,以便应用程序使用该驱动程序访问数据库。由于JDBC或者ODBC是通用的标准,因此调用JDBC或者ODBC接口装载数据时的操作流程一般也是固定的,如图2所示。
图2所示的数据装载流程对于一般的数据库应用是没有问题的,但是在进行大数据量的装载时性能往往难以满足用户需求,这是因为JDBC和ODBC接口为保证通用性,通常不支持数据库产品特有的批量数据装载命令,难以实现数据快速装载。要实现数据的快速装载,需利用数据库专有的批量数据装载命令来实现。数据库专有的批量数据装载命令,一般是提供给数据库管理员直接用于快速导入导出数据,内部进行了较多的优化,相比通用接口,其优势是性能比使用JDBC和ODBC接口的方式快几倍到十几倍,可进行数据的快速批量装载;但其劣势是使用时要求数据必须以指定格式的文件的形式存在于磁盘上,而且不同目的数据库的批量数据装载命令和要求的数据格式都不相同,不具有通用性。以下为mysql数据库的批量数据装载命令示例:
load data infile/data/mysql/test.txtinto table t1fieldsterminatedby',';
该命令表示将/data/mysql/test.txt文件中的数据装载到t1表中,文件test.txt为文本文件,字段之间以“,”逗号为分隔符。目前常见的数据集成工具对于上述形式的批量装载的支持,均要求被装载的数据文件必须已存在于磁盘上,不能直接进行数据源到目的表数据的批量装载。用户要使用批量装载则必须先将源表数据导出到文件中,然后再使用批量装载命令进行数据装载,两个步骤必须串行执行,使用起来较为麻烦、效率低且性能损失较大。
鉴于此,克服上述现有技术所存在的缺陷是本技术领域亟待解决的问题。
【发明内容】
本发明需要解决的技术问题是:
数据同步中使用批量装载时要求数据必须以指定格式的文件形式存在于磁盘上,必须先将源表数据导出到文件中,然后再使用批量装载命令进行数据装载,两步串行执行,流程复杂、效率低且性能损失大;不同目的数据库的批量装载命令和要求数据格式都不相同,不具有通用性。
本发明通过如下技术方案达到上述目的:
第一方面,本发明提供了一种可实现数据快速装载的数据同步方法,数据装载节点内设有生产者线程、任务队列和消费者线程,则数据同步方法包括:
从数据源读取数据,并将读取的数据放入缓存中;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉达梦数据库有限公司,未经武汉达梦数据库有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910981942.5/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置





