CN105447110A - 一种数据库集群批量快速加载数据的方法及加载系统 - Google Patents
一种数据库集群批量快速加载数据的方法及加载系统 Download PDFInfo
- Publication number
- CN105447110A CN105447110A CN201510778859.XA CN201510778859A CN105447110A CN 105447110 A CN105447110 A CN 105447110A CN 201510778859 A CN201510778859 A CN 201510778859A CN 105447110 A CN105447110 A CN 105447110A
- Authority
- CN
- China
- Prior art keywords
- data
- loading
- loading system
- base cluster
- clustered node
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据库集群批量快速加载数据的方法及加载系统,通过在数据库集群中新增加载系统,实现批量数据的获取、清洗、拆分以及分块整体存储入库。加载系统与组成集群的每个集群节点通过TCP/IP建立连接,提供加载控制接口、数据拆分功能和数据加载功能,供客户端调用实现批量快速向数据库集群中加载数据。采用本发明中的方法,提高了数据库集群数据加载的速度以及提供了数据加载的负载控制手段,同时保证了加载数据的一致性,进而提高数据库集群的高可用性。
Description
技术领域
本发明涉及数据库集群的加载技术,尤其涉及一种数据库集群批量快速加载数据的方法。
背景技术
随着信息化技术的快速发展,一个企业的用户数量、数据量均呈现爆炸式增长,在业务量提高的同时,数据库的访问量和数据量快速增长对数据库处理能力和计算强度也相应增大,使得单一节点数据库根本无法承担。在这样一个背景下,大型分布式数据库集群产生了,所谓数据库集群,是指利用两台或多台数据库服务,构成一个虚拟单一数据库逻辑映像,像单数据库那样,向客户端提供透明的数据服务。
在数据库集群系统中,提供了数据的分布式存储以及并行运算功能。对于分布式存储,其表现是一张表(例如Table1)的数据分别存储在多个集群节点上,而在集群的外部(例如应用系统)使用Table1表时,看到的是表Table1的全部数据,无法看到集群内部数据的分布情况;对于并行运算,其表现是,针对Table1的查询操作,可以在集群内部的多个集群节点上并行执行查询操作,进而提高数据的访问速度。
由于数据库集群的分布表特性决定,向数据库集群插入数据的时候,需要由集群节点依据表的分布规则确定插入数据所归属的集群节点,并由归属节点执行数据存储操作。通常,在数据库集群中提供单条数据插入功能与多条数据批量插入功能。而在数据库集群中,采用最多的是批量插入功能,如图1所示。以一个三节点的集群为例,向数据库集群中批量插入数据的一般方法如图2所示是:
(1)客户端与集群节点2建立连接,发起批量数据加载请求,例如向表Table1中批量加载10万条数据
(2)集群节点2接收到客户端的批量数据加载请求,接收客户端发送的加载数据。集群节点2根据表Table1的分布规则拆分数据为三份,将属于本集群节点的数据发送到本集群节点,将属于集群节点1的数据发送到集群节点1,属于集群节点3数据发送到集群节点3
(3)集群节点2将属于本集群节点的数据存储到本集群节点的Table1中,集群节点1接收集群节点2发送的数据并存储到集群节点2的Table1中,并给集群节点2发送加载数据成功响应;集群节点3接收集群节点2发送的数据并存储到集群节点3的Table1中,并给集群节点2发送加载数据成功响应;
(4)集群节点2接收到集群节点1、集群节点3加载数据成功响应,并判断本集群节点加载数据成功,发批量加载数据响应给客户端;
(5)客户端接收到集群节点2的批量加载数据响应,本次批量加载数据完成
在上述过程中,集群节点2需要完成加载数据获取、拆分等工作,造成本集群节点的负载过大,进而影响了整个集群的数据加载速度。虽然其他节点也可以并发的接收客户端发起的批量加载任务,但是由于同样存在负载过重的原因,导致整个集群的数据加载速度不快,同时,由于没有统一的调度协调,会造成数据库集群的负载不均衡,且容易出现数据不一致问题。
发明内容
本发明所要解决的技术问题是在现有技术的基础上,提出一种数据库集群批量快速加载数据的方法,解决当前数据库集群加载数据慢且加载负荷不均衡的问题,并保证数据的一致性,提高数据库集群的高可用性。
本发明提供的实现方法包括包括如下步骤:
(1)数据库集群中设置加载系统,客户端建立与加载系统的连接以后,发起批量加载请求给加载系统;
(2)加载系统接收到客户端的批量加载请求,获取加载数据,并获取数据的分布规则,执行数据预处理操作,然后将数据分发到数据库集群的每个集群节点;
(3)每个集群节点接收加载系统分发的数据并存储到本解决节点中,发加载成功响应给加载系统;
(4)加载系统接收到每个集群节点的加载成功响应以后,发加载成功响应给客户端;
(5)客户端接收到加载系统的加载成功响应,本次批量数据加载完成。
进一步的,所述步骤(1)中包含以下处理,客户端通过配置文件的方式通知加载系统数据文件的位置;同时,配置文件中配置最大加载速度。
更进一步的,所述步骤(2)中,包含以下步骤:
a1、加载系统接收到客户端的批量加载请求以后,通过配置文件获取数据文件的位置,获取数据文件内容;
a2、加载系统与数据库集群系统建立连接,获取数据的分布规则,对数据进行清洗、过滤、按数据的分布规则切分数据并将切分后的数据对应到每个集群节点;
a3、加载系统与每个集群节点建立连接,将切分后的数据发送到对应的集群节点上。
进一步的,所述步骤(3)中,还包含如下处理,如果某个或某几个集群节点加载数据失败,则发送数据加载失败响应消息给加载系统。
更进一步的,所述步骤(4)中,包含以下处理,如果加载系统接收到一个或者多个集群节点的加载数据失败响应,则加载系统发送rollback消息给加载成功的集群节点,回退本次加载的数据,然后发加载失败响应给客户端,保证集群数据的一致性。
进一步的,加载系统与数据库集群的每个集群节点连接方式为TCP/IP或者UDP/IP连接。
本发明还提供了一种数据库集群批量快速加载数据的加载系统,包括:接口模块,用于提供与客户端和数据库集群的接口;数据获取模块,用于从客户端获取批量加载数据,以及从数据库集群获取数据的分布规则;数据预处理模块,用于对数据进行清洗、过滤、按数据的分布规则切分数据;数据加载模块,用于将预处理后的数据分发到数据库集群的每个集群节点;消息处理系统,用于接收数据库集群节点的加载成功响应,并发送加载成功响应至客户端。
进一步的,所述数据获取模块设有配置文件读取单元,用于读取客户端发送的配置文件,获取数据文件的位置,获取数据文件内容。
进一步的,所述消息处理系统还设有加载失败处理单元,用于接收一个或者多个集群节点的加载数据失败响应,然后发送rollback消息给加载成功的集群节点,回退本次加载的数据,然后发加载失败响应给客户端,保证集群数据的一致性。
进一步的,所述接口模块中与数据库集群的接口为TCP/IP或者UDP/IP。
本发明具有的优点和积极效果是:
1.批量快速加载数据:加载系统专职向数据库集群批量加载数据,可在数据库集群外部完成加载数据的全部准备工作,避免了由某个集群节点因承担该部分工作而造成的单点负载失衡而引起的加载速度慢问题。通过本发明,集群节点的加载工作只有一个任务,将加载系统提供的批量数据一次或者分批次加载到数据库中,不需要对数据的有效性进行检查,因此极大提高了加载速度;
2.负载均衡且可控制:加载系统负责向数据库集群提供加载数据,可根据每个集群节点的加载性能动态调整加载数据发送速度,也可根据配置向集群节点提供固定速率的加载数据,由此控制集群节点的负载,避免集群节点因为超负载而引发系统问题;
3.保证数据一致:加载系统负责控制加载数据的一致性,对于同一批次的加载数据,只有在集群的每个集群节点上均提交成功了才确认本次数据加载成功,一旦有集群节点加载失败,则认为本次集群加载数据失败,由此保证了数据库集群中的数据一致性。
附图说明
图1是现有技术中数据库集群加载数据的示意图;
图2是现有技术中数据库集群加载数据的流程图;
图3是本发明增加加载系统的数据库集群组成图的示意图;
图4是本发明增加加载系统的数据库集群数据加载流程说明图。
具体实施方式
本发明通过在数据库集群中新增加载系统,实现批量数据的获取、清洗、切分以及分块整体存储入库。加载系统与组成集群的每个集群节点通过TCP/IP建立连接,提供加载控制接口、数据拆分功能和数据加载功能,供客户端调用实现批量快速向数据库集群中加载数据。
具体如图3所示,加载系统负责向数据库集群加载数据,与数据库集群的每个集群节点相连接,可采用TCP/IP连接或者UDP/IP连接,提供加载控制接口、数据拆分功能和数据加载功能。
图4给出了本发明数据库集群批量快速加载数据的方法实施示意流程说明,该流程基于图3所示增加加载系统的数据库集群组成图,具体包括以下步骤:
201:客户端与加载系统建立连接,发起批量数据加载请求,例如向表Table1中批量加载10万条数据;
202:加载系统获取加载数据,并从数据库集群中获取Table1的分布规则,据表Table1的分布规则(例如:Hash分片)拆分加载数据为三份;
203:加载系统将三份数据分别分发给集群节点1、集群节点2和集群节点3;
204:集群节点1将接收到的数据加载到集群节点1的Table1表中,返回加载成功响应给加载系统;集群节点3将接收到的数据加载到集群节点2的Table1表中,返回加载成功响应给加载系统;集群节点3将接收到的数据加载到集群节点3的Table1表中,返回加载成功响应给加载系统;
205:加载系统接收到集群节点1、集群节点2、集群节点3的加载成功响应消息,发加载成功响应消息给客户端;
206:客户端接收到加载系统的加载成功响应消息,本次批量加载数据完成。
以上对本发明的实施例进行了详细说明,但所述内容仅为本发明的较佳实施例,不能被认为用于限定本发明的实施范围。凡依本发明范围所作的均等变化与改进等,均应仍归属于本专利涵盖范围之内。
Claims (10)
1.一种数据库集群批量快速加载数据的方法,包括如下步骤:
(1)数据库集群中设置加载系统,客户端建立与加载系统的连接以后,发起批量加载请求给加载系统;
(2)加载系统接收到客户端的批量加载请求,获取加载数据,并获取数据的分布规则,执行数据预处理操作,然后将数据分发到数据库集群的每个集群节点;
(3)每个集群节点接收加载系统分发的数据并存储到本解决节点中,发加载成功响应给加载系统;
(4)加载系统接收到每个集群节点的加载成功响应以后,发加载成功响应给客户端;
(5)客户端接收到加载系统的加载成功响应,本次批量数据加载完成。
2.根据权利要求1所述的一种数据库集群批量快速加载数据的方法,其特征在于:所述步骤(1)中进一步包含以下处理,客户端通过配置文件的方式通知加载系统数据文件的位置;同时,配置文件中配置最大加载速度。
3.根据权利要求2所述的一种数据库集群批量快速加载数据的方法,其特征在于:所述步骤(2)中,进一步包含以下步骤:
a1、加载系统接收到客户端的批量加载请求以后,通过配置文件获取数据文件的位置,获取数据文件内容;
a2、加载系统与数据库集群系统建立连接,获取数据的分布规则,对数据进行清洗、过滤、按数据的分布规则切分数据并将切分后的数据对应到每个集群节点;
a3、加载系统与每个集群节点建立连接,将切分后的数据发送到对应的集群节点上。
4.根据权利要求1所述的一种数据库集群批量快速加载数据的方法,其特征在于:所述步骤(3)中,进一步还包含如下处理,如果某个或某几个集群节点加载数据失败,则发送数据加载失败响应消息给加载系统。
5.根据权利要求4所述的一种数据库集群批量快速加载数据的方法,其特征在于:所述步骤(4)中,进一步包含以下处理,如果加载系统接收到一个或者多个集群节点的加载数据失败响应,则加载系统发送rollback消息给加载成功的集群节点,回退本次加载的数据,然后发加载失败响应给客户端,保证集群数据的一致性。
6.根据权利要求1所述的一种数据库集群批量快速加载数据的方法,其特征在于:加载系统与数据库集群的每个集群节点连接方式为TCP/IP或者UDP/IP连接。
7.一种数据库集群批量快速加载数据的加载系统,其特征在于,包括:接口模块,用于提供与客户端和数据库集群的接口;数据获取模块,用于从客户端获取批量加载数据,以及从数据库集群获取数据的分布规则;数据预处理模块,用于对数据进行清洗、过滤、按数据的分布规则切分数据;数据加载模块,用于将预处理后的数据分发到数据库集群的每个集群节点;消息处理系统,用于接收数据库集群节点的加载成功响应,并发送加载成功响应至客户端。
8.根据权利要求7所述的一种数据库集群批量快速加载数据的加载系统,其特征在于,所述数据获取模块设有配置文件读取单元,用于读取客户端发送的配置文件,获取数据文件的位置,获取数据文件内容。
9.根据权利要求7所述的一种数据库集群批量快速加载数据的加载系统,其特征在于,所述消息处理系统还设有加载失败处理单元,用于接收一个或者多个集群节点的加载数据失败响应,然后发送rollback消息给加载成功的集群节点,回退本次加载的数据,然后发加载失败响应给客户端,保证集群数据的一致性。
10.根据权利要求7所述的一种数据库集群批量快速加载数据的加载系统,其特征在于,所述接口模块中与数据库集群的接口为TCP/IP或者UDP/IP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510778859.XA CN105447110A (zh) | 2015-11-16 | 2015-11-16 | 一种数据库集群批量快速加载数据的方法及加载系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510778859.XA CN105447110A (zh) | 2015-11-16 | 2015-11-16 | 一种数据库集群批量快速加载数据的方法及加载系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105447110A true CN105447110A (zh) | 2016-03-30 |
Family
ID=55557288
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510778859.XA Pending CN105447110A (zh) | 2015-11-16 | 2015-11-16 | 一种数据库集群批量快速加载数据的方法及加载系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105447110A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933446A (zh) * | 2016-06-28 | 2016-09-07 | 中国农业银行股份有限公司 | 一种大数据平台业务双活实现方法及系统 |
CN106354870A (zh) * | 2016-09-18 | 2017-01-25 | 中国科学院计算技术研究所 | 一种数据加载的方法和设备 |
CN106372163A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种适用于分布式数据库的数据分发方法及装置 |
CN107329966A (zh) * | 2017-05-11 | 2017-11-07 | 昆仑智汇数据科技(北京)有限公司 | 机器数据存储方法及系统 |
CN108255820A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 分布式系统中数据入库的方法、装置以及电子设备 |
CN108363787A (zh) * | 2018-02-12 | 2018-08-03 | 厦门海迈科技股份有限公司 | 一种ifc文件并行存储方法、装置及系统 |
CN112559065A (zh) * | 2019-09-26 | 2021-03-26 | 北京沃东天骏信息技术有限公司 | 分集群加载模型的方法和装置 |
CN115292420A (zh) * | 2022-10-10 | 2022-11-04 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库快速加载数据的方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332773A (ja) * | 1993-05-21 | 1994-12-02 | Nec Corp | データベース更新方式 |
CN101515291A (zh) * | 2009-03-26 | 2009-08-26 | 北京泰合佳通信息技术有限公司 | 一种将数据批量导入数据库的方法及系统 |
CN102938001A (zh) * | 2012-12-10 | 2013-02-20 | 曙光信息产业(北京)有限公司 | 数据加载装置和数据加载方法 |
CN103544285A (zh) * | 2013-10-28 | 2014-01-29 | 华为技术有限公司 | 一种数据加载方法及装置 |
-
2015
- 2015-11-16 CN CN201510778859.XA patent/CN105447110A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332773A (ja) * | 1993-05-21 | 1994-12-02 | Nec Corp | データベース更新方式 |
CN101515291A (zh) * | 2009-03-26 | 2009-08-26 | 北京泰合佳通信息技术有限公司 | 一种将数据批量导入数据库的方法及系统 |
CN102938001A (zh) * | 2012-12-10 | 2013-02-20 | 曙光信息产业(北京)有限公司 | 数据加载装置和数据加载方法 |
CN103544285A (zh) * | 2013-10-28 | 2014-01-29 | 华为技术有限公司 | 一种数据加载方法及装置 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105933446A (zh) * | 2016-06-28 | 2016-09-07 | 中国农业银行股份有限公司 | 一种大数据平台业务双活实现方法及系统 |
CN106372163A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种适用于分布式数据库的数据分发方法及装置 |
CN106354870A (zh) * | 2016-09-18 | 2017-01-25 | 中国科学院计算技术研究所 | 一种数据加载的方法和设备 |
CN106354870B (zh) * | 2016-09-18 | 2019-07-12 | 中国科学院计算技术研究所 | 一种数据加载的方法和设备 |
CN108255820A (zh) * | 2016-12-28 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 分布式系统中数据入库的方法、装置以及电子设备 |
CN107329966A (zh) * | 2017-05-11 | 2017-11-07 | 昆仑智汇数据科技(北京)有限公司 | 机器数据存储方法及系统 |
CN107329966B (zh) * | 2017-05-11 | 2020-05-19 | 昆仑智汇数据科技(北京)有限公司 | 机器数据存储方法及系统 |
CN108363787A (zh) * | 2018-02-12 | 2018-08-03 | 厦门海迈科技股份有限公司 | 一种ifc文件并行存储方法、装置及系统 |
CN108363787B (zh) * | 2018-02-12 | 2020-06-23 | 厦门海迈科技股份有限公司 | 一种ifc文件并行存储方法、装置及系统 |
CN112559065A (zh) * | 2019-09-26 | 2021-03-26 | 北京沃东天骏信息技术有限公司 | 分集群加载模型的方法和装置 |
CN115292420A (zh) * | 2022-10-10 | 2022-11-04 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库快速加载数据的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105447110A (zh) | 一种数据库集群批量快速加载数据的方法及加载系统 | |
CN109343963B (zh) | 一种容器集群的应用访问方法、装置及相关设备 | |
WO2020133967A1 (zh) | 共享计算资源的调度方法、共享计算系统、服务器及介质 | |
US20170279674A1 (en) | Method and apparatus for expanding high-availability server cluster | |
CN102932472B (zh) | 一种数据处理方法以及通信系统 | |
CN110011930B (zh) | 一种区块链中多联盟链的负载均衡方法及装置 | |
CN103957246A (zh) | 基于租户感知的动态负载均衡方法及系统 | |
CN105978950A (zh) | 一种服务器资源分配方法、装置及系统 | |
AU2011304950A1 (en) | Method and system for terminal access and management in cloud computing | |
CN108809514A (zh) | 一种数据传输方法及相关设备 | |
CN109561054B (zh) | 一种数据传输方法、控制器及接入设备 | |
CN111193773A (zh) | 负载均衡方法、装置、设备及存储介质 | |
CN112953982B (zh) | 一种服务处理的方法、服务配置的方法以及相关装置 | |
CN112202918B (zh) | 长连接通信的负载调度方法、装置、设备及存储介质 | |
CN108881066A (zh) | 一种路由请求的方法、接入服务器以及存储设备 | |
CN107689878A (zh) | 基于命名调度的tcp长连接负载均衡系统 | |
CN104202364A (zh) | 一种控制器的自动发现和配置方法和设备 | |
CN109155939A (zh) | 一种负载迁移方法、装置及系统 | |
CN105635083A (zh) | 基于服务器和客户端架构的业务处理方法及业务处理系统 | |
CN111327650A (zh) | 数据传输方法、装置、设备及存储介质 | |
Aditya et al. | A high availability (HA) MariaDB Galera Cluster across data center with optimized WRR scheduling algorithm of LVS-TUN | |
CN114025000B (zh) | 网络访问关系的建立方法、装置、设备及存储介质 | |
CN101667139A (zh) | 基于集合类型对象的服务程序调用方法、装置及系统 | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
CN110597783A (zh) | 数据库管理方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160330 |
|
RJ01 | Rejection of invention patent application after publication |