基于大数据技术的空间数据存储处理中间件框架的制作方法

文档序号:11063568研发日期:2016年阅读:425来源:国知局
技术简介:
本专利针对多源异构空间数据存储与处理效率低的问题,提出基于大数据技术的中间件框架。通过ETL工具实现数据提取转换,结合HDFS/HBase构建分布式存储,利用RDF图数据库建立语义关联,形成可高效检索的虚拟化数据平台,显著提升空间大数据分析能力。
关键词:空间数据存储,大数据处理,RDF图数据库
本发明涉及一种基于大数据技术的空间数据存储处理中间件框架,该框架可提供给用户一种对现有多源异构的结构化数据与非结构化数据混合的数据内容进行快速获取的方法,并采用主流的大数据存取工具来提高分布式存储效率。
背景技术
:空间数据是指用来表示空间实体的位置、形状、大小及其分布特征诸多方面信息的数据,它可以用来描述来自现实世界的目标,它具有定位、定性、时间和空间关系等特性。空间数据是一种用点、线、面以及实体等基本空间数据结构来表示人们赖以生存的自然世界的数据。大数据(bigdata),指在可承受的时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。随着云时代的来临,大数据(Bigdata)也吸引了越来越多的关注。大数据(Bigdata)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。Hadoop是一个开源的框架,可编写和运行分布式应用处理大规模数据。分布式计算如今已经应用领域很宽泛并且变化,但与众不同之处在于Hadoop:(1)方便:在一般商用机器构成的大型集群上,或者像亚马逊弹性计算云(EC2)等云计算服务上,Hadoop都能支持运行。(2)健壮:在一般商用硬件上运行,硬件可能会出错,从而影响程序运行,但是Hadoop很好的避免的这类故障的发生。(3)可扩展:通过不断的增加计算节点可以很方便的扩展Hadoop集群,因此也能更好的处理大规模数据集。(4)编写有效率的并行代码,在Hadoop上变得方便快捷。由于Hadoop的这些天然的优势,让它在编写分布式大型程序方面优势明显。无论是公司还是个人,都能用很廉价的PC搭建出属于自己的Hadoop集群,用于研究分布式并行计算。也正是因为这些特性,在学术界和企业界大家都很青睐Hadoop。HBase是一个分布式的、面向列的开源数据库,该技术来源于FayChang所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(FileSystem)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力。HBase是Apache的Hadoop项目的子项目。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。另一个不同的是HBase基于列的而不是基于行的模式。HBase–HadoopDatabase,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PCServer上搭建起大规模结构化存储集群。Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS支持传统的层次型文件组织结构。用户或者应用程序可以根据需要创建目录,然后将文件保存在这些目录里。文件系统名字空间的层次结构和现有的大多数文件系统类似:用户可以对文件创建、删除、移动或重命名。目前,HDFS还不支持用户磁盘配额和访问权限的控制,也不支持文件硬链接和软链接,但是HDFS架构能很好的弥补这些特性。HDFS具有能够在一个大集群中跨机器可靠地存储超大文件的特点。它将每个文件拆分成一系列的数据块,除了最后一个,其它的数据块都是同样大小。为了保证容错能力,文件的所有数据块都会有副本文件。每个文件的数据块大小和副本系数都是可配置的。应用程序可以指定任意某个文件的副本数目。副本系数既可以在文件创建的开始指定,也可以在之后改变。ApacheAmbari是一种基于Web的工具,支持ApacheHadoop集群的供应、管理和监控。Ambari目前已支持大多数Hadoop组件,包括HDFS、MapReduce、Hive、Pig、Hbase、Zookeper、Sqoop和Hcatalog等。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。技术实现要素:本发明要解决的技术问题是:在分布式计算机集群环境中,提供一种基于大数据技术的空间数据存储处理中间件框架,通过对多源异构空间数据进行提取、转换、加载,构建多样化碎片化非结构化数据分布式虚拟化存储框架,为后续的空间大数据分析、挖掘提供可直接读取的数据内容。为了解决上述技术问题,本发明的一种基于大数据技术的空间数据存储处理中间件框架,其不同之处在于:其包括以下模块:数据源模块101:空间大数据的数据源包括空间数据、互联网数据、日志流数据、本地数据文件、关系数据,上述数据源的数据格式包括GIS数据、文档数据、影像数据,上述数据以分散的方式存储在关系型数据库、空间数据库等不同种类的数据库节点中;ETL工具模块102:ETL工具将分散存储的各种格式的数据源进行提取、转换、加载;其中,ETL工具包括实时数据转换工具、自定义数据转换工具、空间数据转换工具三类;这三类工具分别将数据源中对应的数据提取出来,转换为统一的可读取的格式;关系型数据使用Sqoop工具来进行存取,空间数据使用空间数据转换工具进行存取;HDFS分布式文件系统模块103:ETL工具提取并转换的部分数据如文件上载数据将分布式存储在HDFS分布式文件系统中;HBase分布式数据库模块104:ETL工具提取并转换的部分数据如空间数据、实时数据等将分布式存储在HBase分布式数据库中;数据关联RDF图数据库模块105:ETL工具提取转换数据源的数据并存储至分布式数据库的同时,将建立数据索引及语义目录,存储在数据关联图谱RDF里;ZooKeeper协同服务模块106:协同管理分布式环境下的多个节点的HBaseregionserver的分布;Ambari集群节点管理监控模块107:对分布式环境下集群中的节点进行可视化安装和监控。按以上方案,ETL工具模块102中的数据提取转换步骤为:MapGIS数据存储在MapGIS数据库中,通过MapGIS转换工具将MapGIS数据库中的MapGIS数据导进到HBase分布式数据库中,同时,也可以将HBase的数据导进到MapGIS数据库中;HDFS分布式文件系统模块103中的数据分布式存储步骤为:通过MapGISConversiontoolsforHadoop工具将空间数据库中的MapGIS格式数据转换为Hadoop管理的文件格式MapGISConversiontoolsforHadoop工具,将经过转换的MapGIS空间数据存储在分布式数据库HBase里,将上述工具提取MapGIS格式的地理范围、注记文本内容存储到内容库(HBase)中,注记文本内容的提取使得根据内容检索图件成为可能,区别于非矢量图件只能按文件名的检索方式,GIS图件信息成为内容库的组成部分,与成果资料内容一起,用于支撑着空间大数据数据挖掘。按以上方案,数据关联RDF图数据库模块105中的数据关联RDF步骤:建立空间数据的索引及语义目录,存储在数据关联图谱RDF里;其中,实体和数据之间的关联是基于图谱的概念,数据关联图谱可将空间地理实体和大量结构化或非结构化数据关联起来。按以上方案,所述数据关联RDF的具体步骤包括:语义关联树步骤301:在语义关联树中存储实体及其关系;在语义关联树中存储三元组数据,三元组记录了实体与实体之间的关系,以及实体资源所在的URL地址信息;资源URI步骤302:步骤301的实体和步骤303的空间数据由资源URI相互连接,可互相访问;HBase分布式存储步骤303:HBase是一个面向列、稀疏的、分布式的多维排序映射表,每个列族中的数据都存放在一起,在读写时有效降低I/O开销,并且类似的数据放在一起;其中HBase分布式存储数据库是采用KeyValue的列存储,Rowkey是行的主键,表示唯一一行,表中记录按照RowKey排序;在此以数据档案URL为主键;所有数据都是通过Rowkey(主键)进行访问,一个宽行可以容下一个主键相关的所有数据;KeyValue是列的列名和列值组成的键值对,多个KeyValue组成一个Column-family列族;Column-family列族,包含多个逻辑属性组的任意属性值(列),一个table在水平方向有一个或者多个列族,列族可由任意多个Column组成,列族支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换;Column-family列族能尽量不丢失原始资料信息量,从而可以真实的组织和描述数据;以文件档案编号和名称为主键的表,其中包含档案报告的属性,从而形成分布式内容库。与现有技术对比,本发明的有益效果是:本发明的空间大数据提取转换及分布式存储方法提供给用户一种对现有多源异构的结构化数据与非结构化数据混合的数据内容进行快速获取的方法,并采用主流的大数据存取工具来提高分布式存储效率。在HBase中的内容以列族的方式进行存储,每个列族中的数据都存放在一起,在读写时有效降低I/O开销,并且类似的数据放在一起,经过压缩后极大节省了存储空间。采用Hadoop技术,对非结构化空间数据进行面向内容模式的存储、组织,解决非结构化空间数据的同质化和面向数据挖掘的组织的问题,使多样化、碎片化的数据同质化和整体化;非结构化数据釆用Key/Value、大字段等进行存储,方便后续对空间数据进行快速有效地获取、利用。附图说明图1是本发明的数据存储处理中间件框架示意图;图2是本发明的空间数据提取转换及分布式存储的实现方法的一个具体实施例流程示意图;图3是本发明的空间实体与数据间关联图谱;图41:50万地层单元数据;图51:50万地层单元数据大小及分块大小;图61:50万地层单元数据分块存储详情。具体实施方案下面结合附图1-图6和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好的理解本发明并能予以实施,但所举实施例不作为对本发明的限定。本发明提供了一种基于大数据技术的空间数据存储、处理的方法,包括以下步骤:步骤A)针对大数据量的多源异构空间数据及系统数据,采用ETL工具数据提取转换工具将这些数据提取出来,转换为通用格式的数据;步骤B)将这些数据虚拟化存放在空间大数据分布式存储框架中,进行统一管理。进一步地,多源异构数据源包括本地文件系统,关系数据库,空间数据管理平台到大数据系统之间互相导入导出数据,用户自定义关联数据,将空间结构化数据和大数据系统中的非结构化数据关联起来,为后续数据分析奠定基础。进一步地,所述ETL工具是数据提取、转换、加载工具,从数据源中提取多结构化数据,快速、高效将原始数据加载到大数据容器,使空间大数据存储和传统的存储方式之间能互相转换数据,根据不同的数据类型,分为三个工具,分别为:实时数据转换工具,通过网络爬虫和Flume进行实时数据导入;自定义数据转换工具,采用Sqoop大数据存取工具来提高存储效率,同时可以根据特定的业务数据类型自定义转换工具,并提供文件上载功能;空间数据转换工具,将空间数据格式的空间数据转换为通用格式。进一步地,所述分布式存储框架包括五个工具,分别为:数据关联RDF图数据库,支持地理空间数据与其他类型数据之间的关系的存储;分布式文件系统(HDFS),存放原始空间数据及资料文档。基于HDFS框架系统提供分布式文件的存储,以应对大量非结构化数据,如多媒体文件等,通过自定义扩展其存储插件,使之支持GIS空间数据的存储;HBase分布式数据库,通过整合HBase数据库以支持常规数据表的方式存储结构化或半结构化的数据类型,基于其开发接口规范,实现GIS空间数据的存储,同时在表中建立结构化数据和非结构化数据的关联关系,为后续数据查询提供丰富的查询结果,对文件数据进行快速获取,将原始文档重新组织后存放在分布式实时访问数据库HBase中。其中,附图、附表、附件等文件均单独存放,主文件则按章节分开存储。同时对存储在HBase中的内容建立索引,存放到分布式缓存Memcached或Redis中,这样只需从内存中获取索引进行查找;ZooKeeper协同服务,一种集中服务,用于保持配置信息和命名,并提供分布式同步和组服务;Ambari集群节点管理监控,作用是创建、管理、监视Hadoop的集群,是为了让Hadoop以及相关的大数据软件更容易使用的一个工具,Ambari自身也是一个分布式架构的软件,主要由两部分组成:AmbariServer和AmbariAgent。简单来说,用户通过AmbariServer通知AmbariAgent安装对应的软件;Agent会定时地发送各个机器每个软件模块的状态给AmbariServer,最终这些状态信息会呈现在Ambari的GUI,方便用户了解到集群的各种状态,并进行相应的维护。如图1所示,本发明的数据存储处理中间件模块框架示意图包括以下模块:数据源模块101:空间大数据的数据源包括空间数据、互联网数据、日志流数据、本地数据文件、关系数据等,这些数据源的数据格式有GIS数据、文档数据、影像数据等,这些数据以分散的方式存储在关系型数据库、空间数据库等不同种类的数据库节点中。ETL工具模块102:ETL工具将分散存储的各种格式的数据源进行提取、转换、加载;其中,ETL工具包括实时数据转换工具、自定义数据转换工具、空间数据转换工具三类;这三类工具分别将数据源中对应的数据提取出来,转换为统一的可读取的格式;如关系型数据使用Sqoop工具来进行存取,空间数据使用空间数据转换工具进行存取。HDFS分布式文件系统模块103:ETL工具提取并转换的部分数据如文件上载数据将分布式存储在HDFS分布式文件系统中。HBase分布式数据库模块104:ETL工具提取并转换的部分数据如空间数据、实时数据等将分布式存储在HBase分布式数据库中。数据关联RDF图数据库模块105:ETL工具提取转换数据源的数据并存储至分布式数据库的同时,将建立数据索引及语义目录,存储在数据关联图谱RDF里。ZooKeeper协同服务模块106:协同管理分布式环境下的多个节点的HBaseregionserver的分布。Ambari集群节点管理监控模块107:对分布式环境下集群中的节点进行可视化安装和监控。如图2所示,本发明的空间数据提取转换及分布式存储的实现方法的一个具体实施例包括以下步骤:数据提取转换步骤201:空间数据主要存储在空间数据库中,如MapGIS数据存储在MapGIS数据库中,通过MapGIS转换工具将MapGIS数据库中的MapGIS数据导进到HBase分布式数据库中,同时,也可以将HBase的数据导进到MapGIS数据库中。数据分布式存储步骤202:通过MapGISConversiontoolsforHadoop工具将空间数据库中的MapGIS格式数据转换为Hadoop管理的文件格式MapGISConversiontoolsforHadoop工具,将经过转换的MapGIS空间数据存储在分布式数据库HBase里,这些工具提取MapGIS格式的地理范围、注记文本内容存储到内容库(HBase)中,注记文本内容的提取使得根据内容检索图件成为可能,区别于非矢量图件只能按文件名的检索方式,GIS图件信息成为内容库的组成部分,与成果资料内容一起,支撑着空间大数据以后的数据挖掘。下面开始进行数据关联RDF步骤:建立空间数据的索引及语义目录,存储在数据关联图谱RDF里。其中,实体和数据之间的关联是基于图谱的概念,数据关联图谱可将空间地理实体和大量结构化或非结构化数据关联起来,为后续统一分析及应用打下基础。如图3所示,本发明的空间实体与数据间关联图谱的一个具体实施例包括以下步骤;语义关联树步骤301:在语义关联树中存储实体及其关系;在语义关联树中存储三元组数据,三元组记录了实体与实体之间的关系,以及实体资源所在的URL地址等信息。资源URI步骤302:步骤301的实体和步骤303的空间数据由资源URI(数据的唯一标示符)相互连接,可互相访问。HBase分布式存储步骤303:HBase是一个面向列、稀疏的、分布式的多维排序映射表,每个列族中的数据都存放在一起,在读写时有效降低I/O开销,并且类似的数据放在一起,经过压缩后极大节省了存储空间;其中HBase分布式存储数据库是采用KeyValue的列存储,Rowkey是行的主键,表示唯一一行,表中记录按照RowKey排序;在此以数据档案URL为主键;所有数据都是通过Rowkey(主键)进行访问,一个宽行可以容下一个主键相关的所有数据;KeyValue是列的列名和列值组成的键值对,多个KeyValue组成一个Column-family列族;Column-family列族,包含多个逻辑属性组的任意属性值(列),一个table在水平方向有一个或者多个列族,列族可由任意多个Column组成,列族支持动态扩展,无须预定义数量及类型,二进制存储,用户需自行进行类型转换。Column-family列族能尽量不丢失原始资料信息量,从而可以真实的组织和描述数据。以文件档案编号和名称为主键的表,其中包含档案报告的属性(例如档案名称、地理空间范围、附件图表)形成分布式内容库。以下进一步描述语义关联树的算法:步骤1)、开始;步骤2)、预定义根节点,设置关系为RowKey和GeomID的子节点为空;步骤3)、读取内容库中主键Key,空间属性URI和指定的特征属性;步骤4)、若空间属性URI为空,则执行步骤5,否则,执行步骤6;步骤5)、在空间数据中匹配对应的特征属性,构建相应记录的URI,保存到内容库对应的属性列中;步骤6)、对特征属性文本分词,取根节点为父节点;步骤7)、按次序从分词结果集中取值,然后执行步骤8、步骤9、步骤10;步骤8)、在语义关联树中查找关系为SubNode对应的节点,若不存在此节点,则执行步骤9、步骤10,否则回到步骤7;步骤9)、若URI为空,则在空间数据中匹配对应的特征属性,构建相应记录的URI;步骤10)、以此值创建节点Node,创建关系为RowKey的子节点Key,即三元组[Node,RowKey,Key],创建关系为GeomID的子节点URI,即三元组[Node,GeomID,URI],以Node节点为子节点,与父节点建立SubNode关系;步骤11)、结束。三元组是数据结构里的概念,主要是用来存储稀疏矩阵的一种压缩方式,是指形如((x,y),z)的集合,常简记为(x,y,z)。本技术方案中的三元组记录了实体与实体之间的关系,以及实体资源所在的URL地址等信息。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!