分布式集群数据导入方法及装置制造方法及图纸

技术编号:21224681 阅读:32 留言:0更新日期:2019-05-29 05:25
本发明专利技术公开了一种分布式集群数据导入方法及装置,所述方法包括:数据节点接收Master节点下发的数据加载命令,启动ForeignTableScan算子加载文件加载进程,通过ForeignTableScan算子基于预先设置的外部表,把要请求的数据及外部文件相关信息发送给文件加载进程,其中,文件加载进程设置第三方ETL服务器中;文件加载进程根据数据节点发来的信息顺序读取数据文件,并将数据发送给数据节点;数据节点的ForeignTableScan算子收取数据后,将数据存储到本地。

Distributed Cluster Data Importing Method and Device

The invention discloses a distributed cluster data importing method and device, which includes: data node receives data loading command issued by Master node, starts ForeignTableScan operator to load file loading process, and sends the requested data and related information of external files to file loading process through ForeignTableScan operator based on pre-set external tables. In the file loading process, the third-party ETL server is set up; the file loading process reads the data files according to the order of the information sent by the data node, and sends the data to the data node; the ForeignTableScan operator of the data node collects the data and stores the data locally.

【技术实现步骤摘要】
分布式集群数据导入方法及装置
本专利技术涉及计算机领域,尤其涉及一种分布式集群数据导入方法及装置。
技术介绍
分布式集群数据库主要特点是大量数据的快速入库和复杂查询的快速响应。因此数据的快速入库对分布式数据库具有重要意义。分布式数据库KingbaseAnalyticsDB通过将数据和处理工作分配到多个服务器或主机的方式,存储和处理大量的数据。KingbaseAnalyticsDB基于多个单机数据库,它们协同工作,呈现给用户一个数据库的效果。图1描述了构成KingbaseAnalyticsDB数据库系统的组件:Master节点是KingbaseAnalyticsDB数据库系统的入口点。它是客户端连接和提交SQL语句的数据库实例节点。Master能够协调自己和系统中其它数据库实例节点的工作,这些数据库实例称为数据节点(Segment节点),用于存储和处理实际数据。KingbaseAnalyticsDB数据库Segment实例是独立的数据库,每个Segment节点都会存储一部分的数据并且执行大多数的查询处理。当一个用户连接到数据库,并且通过Master节点发起了一个查询,每个Segment节点都会创建一些进程来处理这个查询工作。用户定义的表和相应的索引都分布在数据库系统中的各个可用的Segment节点上,每个Segment存储着一部分不同的数据。用户在KingbaseAnalyticsDB数据库系统中通过Master节点与这些Segment节点交互。其中Master节点也可被称为管理节点,Segment节点也可被称为数据节点或计算节点。Copy命令把文件系统中文件的数据加载到数据库中。Copy命令先在Master节点里逐行解析数据文件中的数据,并按照数据库内部的格式拼成一条元组,根据表的分布键计算出要下发的数据节点,最后由该数据节点存储该条数据。这种方案是加载外部数据的传统方法,在分布式数据库里也可以使用。但有其现实的缺点:1.Copy命令需要Master节点先解析处理数据,根据表分布方式计算数据发送给哪个数据节点。Copy是串行处理每行数据,不能充分利用数据节点的资源,每个数据节点空闲时间较多,使加载性能偏低。2.Master节点容易成为瓶颈。Master节点是分布式数据库的入口,所有的查询都会经过Master节点。大量数据的入库单个连接执行Copy命令已经会占有较大的硬件资源,在并发相对较高时,Master节点会成为分布式数据库的瓶颈。不仅影响数据加载的性能,也会增加其它类型SQL的响应时间。3.Copy命令读取的数据文件只能在Master节点的主机上。用户使用Copy命令需要先把数据文件上传到Master节点主机,增加Master节点主机存储负载同时,易用性会比较差。
技术实现思路
本专利技术实施例提供一种分布式集群数据导入方法及装置,用以解决现有技术中分布式数据库集群系统数据入库慢的问题。本专利技术实施例提供一种分布式集群数据导入方法,包括:数据节点接收Master节点下发的数据加载命令,启动ForeignTableScan算子加载文件加载进程,通过ForeignTableScan算子基于预先设置的外部表,把要请求的数据及外部文件相关信息发送给文件加载进程,其中,文件加载进程设置第三方ETL服务器中;文件加载进程根据数据节点发来的信息顺序读取数据文件,并将数据发送给数据节点;数据节点的ForeignTableScan算子收取数据后,将数据存储到本地。优选地,所述外部表保存有加载进程的相关信息,具体包括:加载进程端口号、IP地址、以及要加载外部文件列表。优选地,启动ForeignTableScan算子加载文件加载进程具体包括:启动ForeignTableScan算子;ForeignTableScan算子根据自身的节点ID,轮询连接数据加载文件加载进程。优选地,数据节点的ForeignTableScan算子收取数据后,将数据存储到本地具体包括:数据节点的ForeignTableScan算子对文件加载进程返回的数据进行解释,转化成内部元组,存储到本地,并进行下一步SQL运算。本专利技术实施例还提供一种分布式集群数据导入装置,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述方法的步骤。采用本专利技术实施例,将大量数据的快速入库,数据要绕过Master节点,直接插入到Segment节点中,可以使所有的Segment节点可同时接收处理数据,使数据节点充分利用硬件资源,同时也可增加文件加载进程的并发度,大规模提升数据入库的速度。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1是现有技术中构成KingbaseAnalyticsDB数据库系统的组件示意图;图2是本专利技术实施例中分布式数据库外部数据加载的整体结构的示意图。具体实施方式本专利技术实施例提供了一种分布式集群数据导入方法及装置,实现用户大量数据的快速入库。在使用集群过程中,利用文件加载进程充分使用数据节点资源,数据流绕过Master直接加载进入数据节点。下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。分布式数据库外部数据加载的整体结构如图2所示,本专利技术实施例需要提供两个部分:1.文件加载进程:文件加载进程是一个HTTP服务进程。每一个计算节点(数据节点)作为一个HTTP客户端。数据加载命令通过Master节点下发给计算节点,计算节点收到加载命令后,把要请求的数据及外部文件相关信息发送给文件加载进程,加载进程收到HTTP请求后,根据客户端发来的信息顺序读取数据文件,并将数据发送给计算节点。计算节点收取数据后,剩下流程和Master节点执行Copy命令相似,只是把数据存储到本地,而不再下发给其它节点。2.集群中提供外部表机制。外部表记录了加载进程的相关信息,包括:加载进程端口号,IP地址,要加载外部文件列表等信息。集群使用外部表机制,可以在计算节点上,启动ForeignTableScan算子,ForeignTableScan并行的连接文件加载进程、并行地加载数据。下面对文件加载程序(进程)和分布式数据库的外部表访问模式进行说明。文件加载程序:文件加载进程存放到第三方ETL服务器中,文件加载程序的执行流程如下:1)对外启动特定的网络端口服务2)集群的计算节点连接网络服务3)集群计算节点发送读取指令4)文件加载进程发送一定数据量的数据给计算节点(大小可以设置,例如:4MB)外部表访问技术:集群系统实现ForeignTableScan算子,在优化器本文档来自技高网
...

【技术保护点】
1.一种分布式集群数据导入方法,其特征在于,包括:数据节点接收Master节点下发的数据加载命令,启动ForeignTableScan算子加载文件加载进程,通过ForeignTableScan算子基于预先设置的外部表,把要请求的数据及外部文件相关信息发送给文件加载进程,其中,文件加载进程设置第三方ETL服务器中;文件加载进程根据数据节点发来的信息顺序读取数据文件,并将数据发送给数据节点;数据节点的ForeignTableScan算子收取数据后,将数据存储到本地。

【技术特征摘要】
1.一种分布式集群数据导入方法,其特征在于,包括:数据节点接收Master节点下发的数据加载命令,启动ForeignTableScan算子加载文件加载进程,通过ForeignTableScan算子基于预先设置的外部表,把要请求的数据及外部文件相关信息发送给文件加载进程,其中,文件加载进程设置第三方ETL服务器中;文件加载进程根据数据节点发来的信息顺序读取数据文件,并将数据发送给数据节点;数据节点的ForeignTableScan算子收取数据后,将数据存储到本地。2.如权利要求1所述的方法,其特征在于,所述外部表保存有加载进程的相关信息,具体包括:加载进程端口号、IP地址、以及要加载外部文件列表。3.如权利要求1所述的方法,其特征在于,...

【专利技术属性】
技术研发人员:刘欣然张鸿惠榛吕雁飞马秉楠冷健全王鸿翔高峰李恒
申请(专利权)人:国家计算机网络与信息安全管理中心
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1