《跨域数据联接系统、跨域数据联接方法及节点.pdf》由会员分享,可在线阅读,更多相关《跨域数据联接系统、跨域数据联接方法及节点.pdf(9页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104133831A43申请公布日20141105CN104133831A21申请号201410065334722申请日20140225G06F17/3020060171申请人清华大学地址100084北京市海淀区清华园北京10008482信箱72发明人汪东升张宝权王占业王丽婧74专利代理机构北京路浩知识产权代理有限公司11002代理人李迪54发明名称跨域数据联接系统、跨域数据联接方法及节点57摘要本发明提供一种跨域数据联接系统、跨域数据联接系统及节点,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件。
2、存取服务,在HDFS的每个节点上维护一个系统进程,HDFS的对外服务节点接受跨HDFS的数据联接请求,并将结果最终汇聚到接收请求的节点,最终获得联接结果。本发明实施例可实现对不同HDFS集群内保存的结构化数据进行联接操作。51INTCL权利要求书1页说明书4页附图3页19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书4页附图3页10申请公布号CN104133831ACN104133831A1/1页21一种跨域数据联接系统,其特征在于,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件存取服务,在HDF。
3、S的每个节点上维护一个系统进程,所述系统包括HDFS的对外服务节点接受跨HDFS的数据联接请求,并将结果最终汇聚到接收请求的节点,最终获得联接结果。2一种基于权利要求1所述系统的跨域数据联接方法,其特征在于,应用于HDFS集群,所述HDFS集群包含至少一个节点,所述方法包括对外服务节点接收到数据联接SQL语句后,对SQL语句中包含的任务进行分析,得到任务树;处理任务树叶子节点的数据过滤子任务,数据过滤完成所得的结果集分布在HDFS的各个节点上;执行数据过滤子任务过程中,对涉及联接操作的两个节点的数据表按照SQL语句中包含的约束条件进行过滤,筛选出符合条件的结果集;对结果集进行联接,获得联接结果。
4、。3根据权利要求2所述的方法,其特征在于,所述对结果集进行联接,获得联接结果之前包括对两个结果集的大小进行比较,将较小结果集汇聚并传输到HDFS集群提供对外服务的节点上,并经由该对外服务节点传输到大结果集所在HDFS集群的对外服务节点,对外服务节点收到小结果集后,将小结果集分发给大结果集所在的各个节点上。4根据权利要求2所述的方法,其特征在于,所述对结果集进行联接,获得联接结果包括大结果集所在的各节点均保存一份完整的小结果集,各节点上的大结果集部分同其所拥有的小结果集进行联接操作,最终获得联接结果。5根据权利要求2所述的方法,其特征在于,所述任务树包括数据过滤子任务、数据传输子任务和数据联接子。
5、任务。6一种节点,其特征在于,应用于跨域数据联接系统,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件存取服务,在HDFS的每个节点上维护一个系统进程,包括处理模块,应用接受跨HDFS的数据联接请求,并将结果最终汇聚到接收请求的节点,最终获得联接结果。权利要求书CN104133831A1/4页3跨域数据联接系统、跨域数据联接方法及节点技术领域0001本发明涉及计算机领域,尤其涉及一种跨域数据联接系统、跨域数据联接方法及节点。背景技术0002根据FORRESTERRESEARCHINC公司的研究,企业储存的数据的总量每。
6、3年就翻一翻。面对爆炸式的数据增长,如果对自身数据进行有效组织和管理已经成为各企业必须面对的一个重要挑战。HDFS(HADOOP分布式文件系统)于2005年由APACHE基金会提出,是GOOGLE文件系统GFS的开源实现,在大规模数据的存储、组织与管理方面表现出了卓越的性能,由于其稳定性、可扩展性和开源免费等诸多特性,HDFS已经成为各大企业组织管理自身数据的首要选择。0003HIVE是FACEBOOK基于HADOOP开发的一款数据仓库工具,它通过维护一份元数据信息将HDFS文件映射为关系型数据库领域的“表”,实现了非结构化数据在HDFS上的结构化管理,并向用户提供基于SQL语言子集HIVEQ。
7、L语言的查询接口,使得已经习惯于关系数据库SQL语言的程序开发人员能够更快更高效的使用HIVE,也使得多年关于关系数据库的研究经验也可以更多的运用到大规模数据处理方面。0004然而,无论是HIVE还是受HIVE启发而大量涌现的诸如TEZ/STINGER、SHARK/SPARK、PHOENIX、HDAPT/HADOOPDB等SQLONHADOOP的其他项目,他们均运行于一套HDFS集群内,即只能对一套HDFS系统内部的规则化数据进行检索和计算操作。但是在很多应用场景中,要求对不同HDFS集群的规则数据进行联接操作,因此,如何实现实现跨HDFS的数据联接操作是当前需要解决的技术问题。发明内容000。
8、5本发明实施例提供一种跨域数据联接系统、跨域数据联接方法及节点,能够实现实现跨HDFS的数据联接操作。0006本发明实施例采用如下技术方案0007一种跨域数据联接系统,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件存取服务,在HDFS的每个节点上维护一个系统进程,所述系统包括0008HDFS的对外服务节点接受跨HDFS的数据联接请求,并将结果最终汇聚到接收请求的节点,最终获得联接结果。0009一种基于上述系统的跨域数据联接方法,应用于HDFS集群,所述HDFS集群包含至少一个节点,所述方法包括0010对外服务节点接。
9、收到数据联接SQL语句后,对SQL语句中包含的任务进行分析,得到任务树;0011处理任务树叶子节点的数据过滤子任务,数据过滤完成所得的结果集分布在HDFS说明书CN104133831A2/4页4的各个节点上;执行数据过滤子任务过程中,对涉及联接操作的两个节点的数据表按照SQL语句中包含的约束条件进行过滤,筛选出符合条件的结果集;0012对结果集进行联接,获得联接结果。0013可选的,所述对结果集进行联接,获得联接结果之前包括0014对两个结果集的大小进行比较,将较小结果集汇聚并传输到HDFS集群提供对外服务的节点上,并经由该对外服务节点传输到大结果集所在HDFS集群的对外服务节点,对外服务节点。
10、收到小结果集后,将小结果集分发给大结果集所在的各个节点上。0015可选的,所述对结果集进行联接,获得联接结果包括0016大结果集所在的各节点均保存一份完整的小结果集,各节点上的大结果集部分同其所拥有的小结果集进行联接操作,最终获得联接结果。0017可选的,数据过滤子任务、数据传输子任务和数据联接子任务。0018一种节点,应用于跨域数据联接系统,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件存取服务,在HDFS的每个节点上维护一个系统进程,包括0019处理模块,应用接受跨HDFS的数据联接请求,并将结果最终汇聚到接收。
11、请求的节点,最终获得联接结果。0020基于上述技术方案,本发明实施例运行于HDFS集群节点上,可实现对不同HDFS集群内保存的结构化数据进行联接操作,系统部署时,仅要求不同HDFS之间通过网络连通,并所有HDFS集群各开放一个节点对外提供数据存取服务。附图说明0021为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。0022图1为本发明实施例提供的跨域数据联接系统的组织结构图;0023图2为本。
12、发明实施例提供的跨域数据联接方法的任务划分形成任务树示意图;0024图3为本发明实施例提供的跨域数据联接方法的数据传输过程示意图;0025图4为本C发明实施例提供的跨域数据联接方法的数据联接过程示意图;0026图5为本发明实施提供的跨域数据联接方法的流程图。具体实施方式0027为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。0028本发明实施例提供。
13、一种跨域数据联接系统,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件存取服务,在HDFS的每个节点上维护一个系统进程,所述系统包括说明书CN104133831A3/4页50029HDFS的对外服务节点接受跨HDFS的数据联接请求,并将结果最终汇聚到接收请求的节点,最终获得联接结果。0030本发明实施例的跨域数据联接系统的结构图如图1所示,系统要求参与联接的两HDFS集群通过网络联接,并各自开放一个节点提供对外文件存储服务。系统在各HDFS数据中心的每个节点上维护一个系统进程,两HDFS集群之间经过对外服务节点RPC。
14、互相调用进行通信。与此同时,系统对外提供兼容SQL语法规则的用户接口,并可实现跨HDFS数据中心的结构化数据联接操作。0031本系统采用分布式系统架构,运行于HDFS集群各个节点,各集群对外服务节点负责接受数据联接请求。当接收到数据联接的请求时,数据联接任务执行过程如下0032(1)接受请求节点首先对SQL语句进行语法和语义检查,若SQL语句存在语法或语义上的错误,则及时向用户返回。否则,对SQL语句做进一步分析,将原数据联接任务拆分成四个子任务数据过滤子任务、数据传输子任务、数据联接子任务和数据汇聚子任务,最终形成任务树。其任务树如图2所示。0033(2)任务拆分完成后,对外服务节点将对本地。
15、HDFS数据表按照SQL语句中包含的约束条件进行筛选。与此同时,通过RPC调用另一个HDFS集群对外服务节点的系统进程,同样对远程的HDFS数据表按照SQL语句中包含的约束条件进行筛选,最终分别在两个HDFS集群上形成两个表的筛选结果集。0034(3)在进行数据传输之前,系统暂时不对分布在HDFS上的结果集进行汇总,而是比较两个结果集的大小。然后将较小结果集汇聚到其所在HDFS集群的对外服务节点,由该对外服务节点将小结果集传输到大结果集所在HDFS集群的对外服务节点。大结果集对外服务节点在收到完整小结果集数据后,将小结果集数据分发给各大结果集数据所在节点,其分发过程如图3所示。0035(4)数。
16、据传输完成后,大结果集所在节点均保存部分大结果集和完整的小结果集。各节点对部分大结果集和完整小结果集进行笛卡尔积运算,并按照连接条件对运算结果进行筛选,最终得出数据联接结果,其数据联接过程如图4所示。0036(5)最终,各个节点数据联接结果重新汇总到对外服务节点,若当前对外服务节点为接收任务请求节点,则将结果在此返回给用户,否则传输到另外HDFS集群的对外服务节点。0037基于上述跨域数据联接系统本发明实施例提供一种的跨域数据联接方法,应用于HDFS集群,所述HDFS集群包含至少一个节点,如图5所示,所述方法包括003851、对外服务节点接收到数据联接SQL语句后,对SQL语句中包含的任务进行。
17、分析,得到任务树;003952、处理任务树叶子节点的数据过滤子任务,数据过滤完成所得的结果集分布在HDFS的各个节点上;执行数据过滤子任务过程中,对涉及联接操作的两个节点的数据表按照SQL语句中包含的约束条件进行过滤,筛选出符合条件的结果集;004053、对结果集进行联接,获得联接结果。0041本发明实施例中,可选的,所述对结果集进行联接,获得联接结果之前包括对两个结果集的大小进行比较,将较小结果集汇聚并传输到HDFS集群提供对外服务的节点上,并经由该对外服务节点传输到大结果集所在HDFS集群的对外服务节点,对外服务节点收说明书CN104133831A4/4页6到小结果集后,将小结果集分发给大。
18、结果集所在的各个节点上。0042本发明实施例中,可选的,所述对结果集进行联接,获得联接结果包括0043大结果集所在的各节点均保存一份完整的小结果集,各节点上的大结果集部分同其所拥有的小结果集进行联接操作,最终获得联接结果。0044本发明实施例中,可选的,所述任务树包括数据过滤子任务、数据传输子任务和数据联接子任务。0045本发明实施例提供一种节点,应用于上述本发明实施例的跨域数据联接系统,所述系统采用分布式系统架构,运行于HDFS集群节点上,不同的HDFS集群之间采用网络通道连接,每个集群开放一个节点提供对外文件存取服务,在HDFS的每个节点上维护一个系统进程,包括0046处理模块,应用接受跨。
19、HDFS的数据联接请求,并将结果最终汇聚到接收请求的节点,最终获得联接结果。0047本发明实施例运行于HDFS集群节点上,可实现对不同HDFS集群内保存的结构化数据进行联接操作。系统部署时,仅要求不同HDFS之间通过网络连通,并所有HDFS集群各开放一个节点对外提供数据存取服务。另外,系统提供基于SQL语言的用户接口,运行稳定且易用性高。0048本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说明书CN104133831A1/3页7图1图2说明书附图CN104133831A2/3页8图3图4说明书附图CN104133831A3/3页9图5说明书附图CN104133831A。