一种数据库集群数据高速导入方法

文档序号:6371542阅读:138来源:国知局
专利名称:一种数据库集群数据高速导入方法
技术领域
本发明属于数据库技术领域,特别涉及一种数据库集群数据高速导入方法。
背景技术
随着信息时代的来临,数据出现爆炸式增长。面对海量数据,企业对数据库系统的处理能力和计算强度要求越来越高,因此,数据库集群开始逐步替代单一服务器模式的数据库,成为企业应对海量数据的首选。数据库集群通过高速网络将多个数据库服务器联合起来组成集群,可以实现综合性能优于单个大型服务器。数据的海量不单单指数据规模大,还体现在数据增长快。因此,企业要求数据库集群在具备高效的数据计算处理能力同时,还需要具备高速的数据导入能力。另外,企业在首次部署数据库集群后,需要快速将海量的历史数据入库,以便尽快提供服务。如何能够高速地完成数据导入成为各个数据库集群关注的问题。目前,各大主流数据库集群产品都是依靠系统自身来完成数据的导入,如图I所
/Jn o数据库集群内部包含一个(或多个)控制节点,负责驱动各个数据库节点,协调整个系统的工作。控制节点包括数据导入、并行计算、负载均衡与安全管理等功能,其中数据导入功能模块负责对数据导入存储,如图2所示,数据导入功能模块主要包括以下两方面功能1、按照设定的分片策略(哈希、范围、循环方式)计算数据的存储位置;2、通过导入接口将数据发往数据库节点,完成数据的存储。这种将数据导入、数据计算等操作统一集成于控制节点内的实现方式存在两个主要的问题I、资源争用导致控制节点成为瓶颈数据导入过程中的分片计算需要对每一条记录进行处理,占用大量的CPU计算。将数据发往数据库节点时需要进行数据缓存,占用大量的内存资源;同时也会占用控制节点同数据库节点之间的网络资源。因此,在进行数据的高速、持续导入时,势必会因大量的CPU、内存、网络资源开销,致使控制节点成为瓶颈,从而影响数据库集群的整体性能。2、服务器性能限制数据导入效率数据库集群的服务器性能决定了其数据导入效率,当数据库集群出现高负载时,会造成数据导入的阻塞、延迟,数据的延迟导入进而会影响对新数据处理计算的实时性。该影响会随着数据导入量的增加而愈加明显。采用多控制节点的数据库集群可以将数据导入分派到多个控制节点并行处理,但这种分派的方式只能在一定程度上减轻数据导入过程中的资源争用,但无法从根本上解决数据的高速导入的性能问题。综上所述,由控制节点统一完成所有操作的方式无法在数据的高速导入与处理计算间达到平衡。

发明内容
本发明的目的在于克服现有技术的不足,提供一种可实现数据的高速导入且可最大限度减轻控制节点负担的数据库集群数据高速导入方法。本发明解决其技术问题是采取以下技术方案实现的一种数据库集群数据高速导入方法,采用将数据导入模块从数据库集群中的控制节点中分离出来构成独立的数据导入驱动组件,在数据库集群中的控制节点中增加交互控制模块,并且通过以下步骤实现步骤I :数据导入驱动组件与数据库集群的交互模块建立连接并获取各个数据库节点连接信息;
步骤2 :数据导入驱动组件通过步骤I建立的数据库集群连接获取目标表的模式信息及分片存储信息并与相关数据库节点建立连接;步骤3 :数据导入驱动组件向相关数据库节点进行数据导入,交互控制模块接收数据导入结果,并更新目标表的相关统计信息。而且,所述步骤I包括以下处理过程数据导入驱动组件向交互控制模块发送建立连接请求,交互控制模块响应数据导入驱动组件连接请求,并向数据导入驱动组件发送数据库节点连接信息,数据导入驱动组件获取集群的各个数据库节点连接信息。而且,所述步骤2包括以下处理过程数据导入驱动组件与数据库集群进行时间同步,数据导入驱动组件向交互控制模块询问目标表是否可用?交互控制模块检查目标表是否可用并回复;数据导入驱动组件向交互控制模块获取目标表的模式信息和分片存储信息,交互控制模块将目标表的模式信息及分片存储信息传送给数据导入驱动组件;数据导入驱动组件与相关数据库节点建立连接。而且,所述数据导入驱动组件通过JDBC、ODBC及OLEDB标准方式或定制优化的数
据库访问方式同相关的数据库节点建立连接。而且,所述步骤3包括以下处理过程数据导入驱动组件在数据导入过程时,开启一个独立的后台线程负责监控集群系统的控制消息,当数据库集群需要进行修改表模式或数据备份操作时,交互控制模块会通知数据导入驱动组件暂停或中止导入;数据导入驱动组件向交互控制模块发送集群导入结果通知,交互控制模块接收数据导入结果,并更新目标表的相关统计信息,同时数据导入驱动组件释放数据库集群连接。本发明的优点和积极效果是本发明将数据导入功能封装为独立的数据导入驱动组件,通过数据导入驱动组件和数据库集群的控制节点中的交互控制模块相互配合实现数据高速导入功能,将数据导入对CPU、内存与网络资源的使用转移至客户端,从而解放了控制节点,实现在尽可能少受数据库集群干预的情况下完成数据的导入;同时,采用独立数据导入的方式,可以方便的通过增加客户端来实现并行导入,提升导入性能,从而满足企业对数据高速导入的要求。


图I是现有数据库集群体系的结构示意图;图2是现有数据库集群体系的数据导入模块处理示意图;图3是采用本发明的数据库集群体系的结构示意图;图4是采用本发明的一种应用系统连接示意图。
具体实施例方式以下结合附图对本发明实施例做进一步详述—种数据库集群数据高速导入方法,是在如图3所示的系统框架上实现的。在该系统框架中,数据导入模块从数据库集群中的控制节点中分离出来并增加控制器模块构成独立的数据导入驱动组件,该数据导入驱动组件既可以独立存在,也可以嵌入到数据库集群的JDBC、0DBC、0LEDB等标准数据库访问接口提供给用户使用。该数据导入驱动组件的核心是数据导入模块与控制器模块,该数据导入模块包括数据准备、数据分片计算、数据缓存发送模块;控制器包括交互通信模块和监控线程模块,交互通信模块负责向数据库集群发送数据导入请求,获取相关信息并返回导入结果;监控线程模块负责在数据导入期间监听数据库集群发送的控制信息。同时,在数据库集群中的控制节点中增加交互控制模块以实现同数据导入驱动组件的通信控制功能。本数据导入方法将数据导入对CPU、内存与网络资源的使用转移至客户端,从而解放了控制节点,实现在尽可能少受数据库集群干预的情况下完成数据的导入;同时,采用独立数据导入的方式,可以方便的通过增加客户端来实现并行导入,提升导入性能,从而满足企业对数据高速导入的要求。 本方法由数据导入驱动组件和数据库集群中的交互控制模块相互配合实现。数据导入驱动组件的功能为通过控制器同数据库集群建立连接;待建立连接后需要进行时间同步,获取各个数据库节点连接信息,获取目标表的模式与分片存储信息;数据导入驱动获取到相关信息后,通过标准(JDBC、ODBC、OLEDB等)或定制优化的数据库访问接口同相关的数据库节点建立连接,随后完成向数据库节点的直接导入。数据导入驱动组件的具体工作流程如下( I)同数据库集群建立连接;(2)获取集群的各个数据库节点连接信息;(3)同数据库集群进行时间同步;( 4 )询问目标表是否可用;(5)获取目标表的模式信息;(6)获取目标表的分片存储信息;(7)开启后台监控线程;(8)开始导入数据;(9)通知集群导入结果导入是否成功,导入数目;( 10)释放数据库集群连接;数据库集群的控制节点中的交互控制模块的功能为响应驱动获取数据导入信息的请求,若数据库集群在数据导入期间需要进行修改表模式或数据备份操作,则需要由交互控制模块预先通知各个数据导入程序暂停或中止导入操作。交互控制模块的工作流程为( I)响应数据导入驱动组件连接请求;(2)发送数据库节点连接信息;(3)时间同步;( 4 )检查目标表是否可用;(5)响应获取目标表的模式、分片相关信息请求;
(6)当需要进行修改表模式或数据备份操作时,通知数据导入驱动组件暂停或中止导入;(7)接收数据导入结果,并更新目标表的相关统计信息。本数据库集群数据高速导入方法,包括以下步骤I、数据导入驱动组件与数据库集群的交互模块建立连接并获取各个数据库节点连接信息;在本步骤中,数据导入驱动组件与数据库集群的交互控制模块进行如下交互过程数据导入驱动组件向交互控制模块发送建立连接请求,交互控制模块响应数据导入驱动组件连接请求,并向数据导入驱动组件发送数据库节点连接信息,数据导入驱动组件获取集群的各个数据库节点连接信息。 2、数据导入驱动组件通过步骤I建立的数据库集群连接获取目标表的模式信息及分片存储信息并与相关数据库节点建立连接;在本步骤中,数据导入驱动组件与数据库集群的交互控制模块进行如下交互过程数据导入驱动组件与数据库集群进行时间同步,数据导入驱动组件向交互控制模块询问目标表是否可用?交互控制模块检查目标表是否可用并回复;数据导入驱动组件向交互控制模块获取目标表的模式信息和分片存储信息,交互控制模块将目标表的模式信息及分片存储信息传送给数据导入驱动组件;数据导入驱动组件通过JDBC、ODBC及OLEDB等标准或定制优化的数据库访问方式同相关的数据库节点建立连接。3、数据导入驱动组件向相关数据库节点进行数据导入,交互控制模块接收数据导入结果,并更新目标表的相关统计信息。在本步骤中,数据导入驱动组件与数据库集群的交互控制模块进行如下交互过程数据导入驱动组件在数据导入过程时,开启一个独立的后台线程负责监控集群系统的控制消息,当数据库集群需要进行修改表模式或数据备份操作时,交互控制模块会通知数据导入驱动组件暂停或中止导入;数据导入驱动组件向交互控制模块发送集群导入结果通知导入是否成功及导入数目,交互控制模块接收数据导入结果,并更新目标表的相关统计信息,同时数据导入驱动组件释放数据库集群连接,导入处理结束。本发明已经在某公司的集中综合结算系统中进行了试用。由于该综合结算系统包括分布在各地的诸多子系统,各个子系统时刻产生大量的数据需要入库,因此,对诸多子系统的统一管理与对大量数据的及时、快速入库成为该结算系统的两个重点。如图4所示,该综合结算系统采用神通ClusterWare进行统一管理,采用基于本方法实现的神通ClusterWare数据高速导入组件,完成数据的高速入库。该综合结算系统成功地实现了数据的高速入库功能,同时也保证了神通ClusterWare能够提供高效的数据计算、及时响应应用功能。需要强调的是,本发明所述的实施例是说明性的,而不是限定性的,因此本发明并不限于具体实施方式
中所述的实施例,凡是由本领域技术人员根据本发明的技术方案得出的其他实施方式,同样属于本发明保护的范围。
权利要求
1.一种数据库集群数据高速导入方法,其特征在于采用将数据导入模块从数据库集群中的控制节点中分离出来构成独立的数据导入驱动组件,在数据库集群中的控制节点中增加交互控制模块,并且通过以下步骤实现 步骤I:数据导入驱动组件与数据库集群的交互模块建立连接并获取各个数据库节点连接信息; 步骤2 :数据导入驱动组件通过步骤I建立的数据库集群连接获取目标表的模式信息及分片存储信息并与相关数据库节点建立连接; 步骤3 :数据导入驱动组件向相关数据库节点进行数据导入,交互控制模块接收数据导入结果,并更新目标表的相关统计信息。
2.根据权利要求I所述的一种数据库集群数据高速导入方法,其特征在于所述步骤I包括以下处理过程数据导入驱动组件向交互控制模块发送建立连接请求,交互控制模块响应数据导入驱动组件连接请求,并向数据导入驱动组件发送数据库节点连接信息,数据导入驱动组件获取集群的各个数据库节点连接信息。
3.根据权利要求I所述的一种数据库集群数据高速导入方法,其特征在于所述步骤2包括以下处理过程数据导入驱动组件与数据库集群进行时间同步,数据导入驱动组件向交互控制模块询问目标表是否可用?交互控制模块检查目标表是否可用并回复;数据导入驱动组件向交互控制模块获取目标表的模式信息和分片存储信息,交互控制模块将目标表的模式信息及分片存储信息传送给数据导入驱动组件;数据导入驱动组件与相关数据库节点建立连接。
4.根据权利要求3所述的一种数据库集群数据高速导入方法,其特征在于所述数据导入驱动组件通过JDBC、ODBC及OLEDB标准方式或定制优化的数据库访问方式同相关的数据库节点建立连接。
5.根据权利要求I所述的一种数据库集群数据高速导入方法,其特征在于所述步骤3包括以下处理过程数据导入驱动组件在数据导入过程时,开启一个独立的后台线程负责监控集群系统的控制消息,当数据库集群需要进行修改表模式或数据备份操作时,交互控制模块会通知数据导入驱动组件暂停或中止导入;数据导入驱动组件向交互控制模块发送集群导入结果通知,交互控制模块接收数据导入结果,并更新目标表的相关统计信息,同时数据导入驱动组件释放数据库集群连接。
全文摘要
本发明涉及一种数据库集群数据高速导入方法,其技术特点是包括以下步骤步骤1数据导入驱动组件与数据库集群的交互模块建立连接并获取各个数据库节点连接信息;步骤2数据导入驱动组件通过步骤1建立的数据库集群连接获取目标表的模式信息及分片存储信息并与相关数据库节点建立连接;步骤3数据导入驱动组件向相关数据库节点进行数据导入,交互控制模块接收数据导入结果,并更新目标表的相关统计信息。本发明的数据导入驱动组件,解放了控制节点,实现在尽可能少受数据库集群干预的情况下完成数据的导入;同时,采用独立数据导入的方式,可以方便的通过增加客户端来实现并行导入,提升导入性能,从而满足企业对数据高速导入的要求。
文档编号G06F17/30GK102750368SQ201210200158
公开日2012年10月24日 申请日期2012年6月18日 优先权日2012年6月18日
发明者关刚, 冯柯, 刘荣, 李晓鹏, 李阳, 王效忠, 王洋洋, 蒋志勇, 蒋旭, 赵雪静, 饶路 申请人:天津神舟通用数据技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1