一种数据库集群批量快速加载数据的方法及加载系统的制作方法

文档序号:9687571阅读:548来源:国知局
一种数据库集群批量快速加载数据的方法及加载系统的制作方法
【技术领域】
[0001]本发明涉及数据库集群的加载技术,尤其涉及一种数据库集群批量快速加载数据的方法。
【背景技术】
[0002]随着信息化技术的快速发展,一个企业的用户数量、数据量均呈现爆炸式增长,在业务量提高的同时,数据库的访问量和数据量快速增长对数据库处理能力和计算强度也相应增大,使得单一节点数据库根本无法承担。在这样一个背景下,大型分布式数据库集群产生了,所谓数据库集群,是指利用两台或多台数据库服务,构成一个虚拟单一数据库逻辑映像,像单数据库那样,向客户端提供透明的数据服务。
[0003]在数据库集群系统中,提供了数据的分布式存储以及并行运算功能。对于分布式存储,其表现是一张表(例如Tablel)的数据分别存储在多个集群节点上,而在集群的外部(例如应用系统)使用Tablel表时,看到的是表Tablel的全部数据,无法看到集群内部数据的分布情况;对于并行运算,其表现是,针对Tablel的查询操作,可以在集群内部的多个集群节点上并行执行查询操作,进而提高数据的访问速度。
[0004]由于数据库集群的分布表特性决定,向数据库集群插入数据的时候,需要由集群节点依据表的分布规则确定插入数据所归属的集群节点,并由归属节点执行数据存储操作。通常,在数据库集群中提供单条数据插入功能与多条数据批量插入功能。而在数据库集群中,采用最多的是批量插入功能,如图1所示。以一个三节点的集群为例,向数据库集群中批量插入数据的一般方法如图2所示是:
[0005](1)客户端与集群节点2建立连接,发起批量数据加载请求,例如向表Tablel中批量加载10万条数据
[0006](2)集群节点2接收到客户端的批量数据加载请求,接收客户端发送的加载数据。集群节点2根据表Tablel的分布规则拆分数据为三份,将属于本集群节点的数据发送到本集群节点,将属于集群节点1的数据发送到集群节点1,属于集群节点3数据发送到集群节点3
[0007](3)集群节点2将属于本集群节点的数据存储到本集群节点的Tablel中,集群节点1接收集群节点2发送的数据并存储到集群节点2的Tablel中,并给集群节点2发送加载数据成功响应;集群节点3接收集群节点2发送的数据并存储到集群节点3的Tablel中,并给集群节点2发送加载数据成功响应;
[0008](4)集群节点2接收到集群节点1、集群节点3加载数据成功响应,并判断本集群节点加载数据成功,发批量加载数据响应给客户端;
[0009](5)客户端接收到集群节点2的批量加载数据响应,本次批量加载数据完成
[0010]在上述过程中,集群节点2需要完成加载数据获取、拆分等工作,造成本集群节点的负载过大,进而影响了整个集群的数据加载速度。虽然其他节点也可以并发的接收客户端发起的批量加载任务,但是由于同样存在负载过重的原因,导致整个集群的数据加载速度不快,同时,由于没有统一的调度协调,会造成数据库集群的负载不均衡,且容易出现数据不一致问题。

【发明内容】

[0011]本发明所要解决的技术问题是在现有技术的基础上,提出一种数据库集群批量快速加载数据的方法,解决当前数据库集群加载数据慢且加载负荷不均衡的问题,并保证数据的一致性,提高数据库集群的高可用性。
[0012]本发明提供的实现方法包括包括如下步骤:
[0013](1)数据库集群中设置加载系统,客户端建立与加载系统的连接以后,发起批量加载请求给加载系统;
[0014](2)加载系统接收到客户端的批量加载请求,获取加载数据,并获取数据的分布规贝1J,执行数据预处理操作,然后将数据分发到数据库集群的每个集群节点;
[0015](3)每个集群节点接收加载系统分发的数据并存储到本解决节点中,发加载成功响应给加载系统;
[0016](4)加载系统接收到每个集群节点的加载成功响应以后,发加载成功响应给客户端;
[0017](5)客户端接收到加载系统的加载成功响应,本次批量数据加载完成。
[0018]进一步的,所述步骤(1)中包含以下处理,客户端通过配置文件的方式通知加载系统数据文件的位置;同时,配置文件中配置最大加载速度。
[0019]更进一步的,所述步骤(2)中,包含以下步骤:
[0020]al、加载系统接收到客户端的批量加载请求以后,通过配置文件获取数据文件的位置,获取数据文件内容;
[0021]a2、加载系统与数据库集群系统建立连接,获取数据的分布规则,对数据进行清洗、过滤、按数据的分布规则切分数据并将切分后的数据对应到每个集群节点;
[0022]a3、加载系统与每个集群节点建立连接,将切分后的数据发送到对应的集群节点上。
[0023]进一步的,所述步骤(3)中,还包含如下处理,如果某个或某几个集群节点加载数据失败,则发送数据加载失败响应消息给加载系统。
[0024]更进一步的,所述步骤(4)中,包含以下处理,如果加载系统接收到一个或者多个集群节点的加载数据失败响应,则加载系统发送rollback消息给加载成功的集群节点,回退本次加载的数据,然后发加载失败响应给客户端,保证集群数据的一致性。
[0025]进一步的,加载系统与数据库集群的每个集群节点连接方式为TCP/IP或者UDP/IP连接。
[0026]本发明还提供了一种数据库集群批量快速加载数据的加载系统,包括:接口模块,用于提供与客户端和数据库集群的接口;数据获取模块,用于从客户端获取批量加载数据,以及从数据库集群获取数据的分布规则;数据预处理模块,用于对数据进行清洗、过滤、按数据的分布规则切分数据;数据加载模块,用于将预处理后的数据分发到数据库集群的每个集群节点;消息处理系统,用于接收数据库集群节点的加载成功响应,并发送加载成功响应至客户端。
[0027]进一步的,所述数据获取模块设有配置文件读取单元,用于读取客户端发送的配置文件,获取数据文件的位置,获取数据文件内容。
[0028]进一步的,所述消息处理系统还设有加载失败处理单元,用于接收一个或者多个集群节点的加载数据失败响应,然后发送rollback消息给加载成功的集群节点,回退本次加载的数据,然后发加载失败响应给客户端,保证集群数据的一致性。
[0029]进一步的,所述接口模块中与数据库集群的接口为TCP/IP或者UDP/IP。
[0030]本发明具有的优点和积极效果是:
[0031 ] 1.批量快速加载数据:加载系统专职向数据库集群批量加载数据,可在数据库集群外部完成加载数据的全部准备工作,避免了由某个集群节点因承担该部分工作而造成的单点负载失衡而引起的加载速度慢问题。通过本发明,集群节点的加载工作只有一个任务,将加载系统提供的批量数据一次或者分批次加载到数据库中,不需要对数据的有效性进行检查,因此极大提高了加载速度;
[0032]2.负载均衡且可控制:加载系统负责向数据库集群提供加载数据,可根据每个集群节点的加载性能动态调整加载数据发送速度,也可
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1