计算机期刊投稿基于HBase的矢量空间数据存储与访问优化

所属栏目:计算机应用论文 发布日期:2015-11-26 17:03 热度:

  随着现在科技的发展,各行各业都开始使用计算机和自动化来工作了,数据量也越来越大。面对海量和复杂的空间矢量数据,如何对其进行高效存储、管理与发布,已成为一个迫切需要解决的问题。本文是一篇计算机期刊投稿的论文范文,主要论述了基于HBase的矢量空间数据存储与访问优化。

   摘要:为了对空间矢量数据进行高效存储、管理与发布,将分布式存储应用于地理信息系统(GIS)的海量矢量空间数据管理。�用网格法对地理空间进行划分,构建地理空间分块索引表,计算出每个网格单元对应的ID;同时为了提高查询效率,引入网格索引ID,设计了一种结合网格索引ID、空间对象几何中心点横坐标、空间对象几何中心点纵坐标、空间对象图层四种信息的行键方案;然后,为了进一步筛选查询纵坐标范围的行键,利用HBase的过滤机制,在行键方案基础上,具体设计集空间对象几何中心坐标点纵坐标和图层信息的组合列族,使得HBase方便高效地管理矢量空间数据,大幅提高查询的处理速度。最后利用Hbase集群环境对所提方法进行验证,该方法具有较好的可行性和较高的效率。

  关键词:云计算,HBase,行键,过滤,组合列族

  0引言

  云计算是一种新的分布式计算架构,具有大规模扩展、水平分布的特性,可以提供无限的存储能力和计算能力。将分布式存储应用于地理信息系统(Geographic Information System, GIS)领域是解决海量矢量空间数据管理问题的有效手段[1]。HBase使用Hadoop的分布式文件系统(Hadoop Distributed File System, HDFS)作为底层存储,是一个分布式、按列存储的数据库。HDFS适合于存储海量数据,但它设计是用于大吞吐量数据的,并且有一定的延时,不太适合吞吐量小且要求低延时的访问操作; HDFS只能在文件的末尾添加数据,不支持在文件的任意位置进行修改。地理空间数据的处理,如单条地理对象的查询,数据量不是很大,但要求查询延时短;为了方便对空间数据的处理,地理位置相邻的空间对象尽可能在逻辑存储上也相邻,所以对地理数据执行添加操作时,不能简单地将记录添加到文件末尾;空间数据经常更新,而HDFS不支持文件在任意位置的修改。综上所述,仅使用HDFS存储空间数据并不合适。

  HBase适合于存储大数据,支持单条记录的快速查询,在任意指定位置单条或批量添加、删除数据。HBase是基于列稀疏存储的行/列矩阵,不存储列值为空的表元素,大大节省了存储空间。HBase与HDFS一样,支持MapReduce框架作分布式计算操作。HBase的行键设计灵活,自动按照字典序排序。HBase的这些特性,十分适合存储和处理空间数据[1]。

  为了能够高效存储和处理空间数据,本文研究基于HBase的分布式存储,�用网格法对地理空间进行划分,构建索引表,计算出每个网格单元对应的ID,设计行键和列族方案,提高查询效率,为解决空间矢量数据存储与处理问题提供一种初步的探索方案。

  1相关工作

  1.1Hbase数据模型

  HBase是Google云计算的BigTable技术的开源实现,它是一个架构在HDFS上的面向列的、多维度的映射表,具有高可靠性、高性能和高可用性。HBase表结构由行关键字、列族、时间戳组成。HBase 中所有数据都是字符类型。下面介绍一下 HBase 的逻辑数据视图和物理视图。

  1)逻辑视图。表1对应了Hbase表的逻辑数据模型。一个HBase表组成的3个基本元素为行关键字、时间戳和列族。

  2) 物理视图。HBase是列存储模式的,在物理存储方面,它是将逻辑上的行分割,并按照每行的各个列族来存储,将各个列族保存到一个或多个HRegion中。

  1.2矢量空间数据的存储模型

  矢量数据一般包括空间坐标数据、属性数据和拓扑数据。每一个图层建一张表,根据矢量数据的特点设计的基于HBase的存储图层表结构如表2所示。表中的列族依次是空间数据列族、属性列族和拓扑关系列族。每种数据格式都是字符串类型,使用时解析成相应的数据类型[2]。

  对于矢量数据,根据不同比例尺、不同图层建立不同的表,表之间没有关系,Row key是图层中矢量要素的唯一ID号。属性数据可有多行,每行代表矢量要素的一种属性;坐标数据采用熟知二进制(WellKnown Binary,WKB)格式存储[3];如有拓扑关系数据,则将数据存储到拓扑列族中。

  第11期

  张叶等:基于HBase的矢量空间数据存储与访问优化

  计算机应用 第35卷

  2矢量空间数据的存储

  2.1矢量空间数据存储的改进总体思路

  基于HBase的空间数据处理研究尚在起步阶段,相关文献比较有限。在先前的研究中,主要关注点是采用Hilbert曲线降维法将多维坐标降维为字符串[4-5],以便HBase存储和处理。Hilbert曲线降维法的优点是Hilbert能够利用数学模型将多维坐标降维为字符串,并且能够最大限度地保证空间对象之间的逻辑相关性; 缺点是降维过程中运算量比较大,尤其当空间数据总量发生变化的情况下,需要重新构建Hilbert排列码及索引顺序号,对后续的数据处理带来极大的不便。

  不同于Hilbert曲线降维的方法,丁琛等[6]提出结合HBase的机制和Shapefile格式空间数据特点,设计HBase表的行键。同时提出利用HBase内部提供的过滤机制,将空间数据中多维坐标的操作转化为HBase中多个一维字节流的操作[7-8],行键设计为空间对象几何中心横坐标+纵坐标+图层,但是按这种方式存储数据,扫描时先按横坐标后按纵坐标,这种排序导致了很多南北位置簇之间的跳跃。空间里彼此接近的点在HBase里不一定彼此接近。每次从北方位置簇跳到南方位置簇就意味着读取了不需要的数据。

  本文在文献[6]的基础上,加入数据划分的思想,提出了一种改进的适合空间数据处理的HBase行键的方法,为数据的分布式或并行操作提供基础,并行处理策略能大大提高GIS的能力。在行键方案基础上,具体设计集空间对象几何中心坐标点纵坐标和图层信息的组合列族,设计为过滤列族,使得HBase方便高效地管理矢量空间数据,大幅提高查询的处理速度。   2.2矢量空间数据存储行键方案

  本文采用网格法[7]对地理空间进行划分,计算出每个网格单元的ID,作为行键的一部分。将表的行键设计为网格索引ID+空间对象几何中心点横坐标+空间对象几何中心点纵坐标+空间对象图层。这样设计的原因如下:

  1)每一个空间对象都抽象为一个坐标点。点对象本身就是用点坐标表示,无需转换。线和面是由一系列的坐标串组成,可以把它们抽象为图形的几何中心坐标点。

  2)分别取出二维坐标点的横坐标和纵坐标,通过字符串的方式将横坐标和纵坐标进行拼接。为了提高空间查询的效率,需要对入库的不同图层数据构建空间索引。在网格空间索引中,根据不同的比例尺应划分不同尺度的网格。使用网格索引ID进行区分。同时不同图层的空间对象可能几何中心坐标相同,为了最大可能性地保证空间对象与行键的唯一对应性,行键中需要加上图层信息。假设有一个空间对象,网格索引ID,它属于L图层,其几何中心坐标点为P(x,y)。它的行键可以设计成ID+x+y+L。

  3)根据行键长度设计的原则,结合空间数据的特性,将行键的长度定义为32字节(8字节的整数倍),其中ID占6字节,x坐标占12字节,y坐标占11字节,图层占3字节。

  例如某一个空间对象的ID为005401,图层属性为river,其几何图形中心坐标点为(120.564324567890854,61.8976571),则它的行健设计为:00540112056432456761897657100riv。

  这种行键设计的特点:

  1)行键与空间对象一一对应。使用ID、横坐标、纵坐标和图层信息能最大可能地保证空间对象与行键的唯一对应。

  2)适合数据检索。行键在HBase中按字典序排序[8],首先是按照对象所在的网格ID字典序排列,当ID相同的情况下,按照几何中心坐标点横坐标字典序排列,当横坐标相同的情况下,按照对象的几何中心坐标点纵坐标字典序排列,当横坐标和纵坐标都相同的情况下,按照图层信息的字典序排列。行键的排序特点在一定程度上适合于空间数据的检索。

  2.3矢量空间数据存储列族设计

  矢量空间对象一般至少包括两种数据属性:几何属性和非几何属性。因此,存储空间数据的HBase表应包含2个基本列族:几何属性列族和非几何属性列族[9-10]。为了进一步筛选查询纵坐标范围的行键,方便空间数据的处理,本文在前述文献基础上提出利用HBase的过滤机制,将空间对象几何中心坐标点的纵坐标信息和图层信息存储到HBase表中,并为其专门设计一个列族,称为过滤列族,用它来限定行键筛选的范围,运用捆绑过滤的方法加快空间数据的处理。

  2.3.1几何属性列族和非几何属性列族

  将几何属性数据存储在Geometry(几何属性)列族中。该列族包含POINT(点)、LINESTRING(线)和POLYGON(面)3个列,分别表示为(Geometry:POINT)、(Geometry:LINESTRING)和(Geometry:POLYGON)。存储的列值中点对象为一个坐标点,GeoTools存储形式为(x y);线对象为首尾不相连的一列坐标串,GeoTools存储形式为(x1 y1, x2 y2,…, xn yn);面对象为首尾相连的一列坐标串,GeoTools存储形式为((x1 y1,x2 y2,…,xn yn,x1 y1))。Geometry列族的设计如表3所示。

  将非几何属性数据存储在Attribute(非几何属性)列族中。将对象非几何属性名称作为HBase表的列限定符,列限定符在数据导入HBase时可以动态增加,而不用去修改表模式。

  例如,假设River(河流)图层有两个地理对象,分别为河流A和河流B,河流A的非几何属性有Type(类型)、Long(长度)、Level(河流级别,包含一级流域、二级流域、三级流域)等,河流B的非几何属性有Type(类型)、Long(长度)、Station comit(所经过的测站点总数)等。HBase表的Attribute列族设计如表4所示。

  2.3.2过滤列族

  过滤列族的设计如表5所示。过滤列族的Qualifier(列限定符)有Coordinate Y和layer L,表示行键对应的空间对象几何中心坐标点的纵坐标和图层,Value(列值)存储的是它们的值。

  例如,在图1所示的空间数据区域中,需要查询区域A中位于图层A的(1,1)~(2,2)区域内的对象。若仅用行键范围设置scan来扫描表,则查询结果包含行健为(A+1+1+图层1)、(A+1+2+图层2)、(A+1+3+图层3)的记录,显然 (A+1+3+图层3)的记录不应包含在(1,1)~(2,2)区域内,这不是正确的查询结果。依据行键的范围,只能剔选出所要查询横坐标范围的行键,而无法筛选查询纵坐标和图层范围的行键,所以需要设置过滤列族进行进一步过滤。

  2.4矢量空间数据存储表模式总体设计

  基于上述改进,面向空间数据的HBase表逻辑存储模式可以设计为表6所示。表包含3个列族,Fliter(过滤)列族、Geometry(几何属性)列族和Attribute(非几何属性)列族。过滤列族只包含一个列,即Coordinate Y+Layer L(空间对象的几何中心坐标点的纵坐标+图层)。几何属性列族包含Point (点)、Line (线)和Polygon (面)3种列,非几何属性列族包含对象的名称、类型、特性等相关的列,如Layer(对象的图层信息)、Name(名字)等。

  3分析与评估

  3.1实验环境

  在实验中,搭建了6台服务器的Hadoop+HBase集群,其中1个节点作为HMaster,另外5个节点作为RegionServer,随机选取3个节点作为ZooKeeper服务器。   所有服务器的硬软件配置均相同。硬件配置为:8核Intel Xeon E5620 2.40GHz CPU,内存规格为16GB DDR3,500GB SATA硬盘,网卡速度为1000Mb/s。

  软件配置为:操作系统为64位的Centos 6.4, JDK版本为1.6.0_31,Hadoop 版本为0.20.203,HBase版本为0.94.3, GeoTools工具的版本为2.7.2。数据导入的客户端硬软件配置与服务器相同,且与服务器在同一局域网内。

  3.2矢量数据导入HBase结果

  本文所采用的数据源选取了数据堂的全国省级、地市级、县市级行政区划矢量数据中的一级河流、四级河流和五级河流数据。它采用了Shapefile格式的矢量空间数据模型。在7个节点组成的集群环境中利用put()方法将全国的一级河流、四级河流和五级河流数据导入HBase数据库。数据导入HBase数据表的各项结果如表7所示。

  3.3查询与分析

  根据空间范围查询矢量数据的步骤如下:首先根据空间范围计算网格的ID,然后从不同图层的索引表中读取网格ID所包含的对象,之后根据对象读取不同图层的空间数据和属性数据,最后将查询的数据写入本地客户端。

  一级河流、四级河流和五级河流数据采用网格索引的方法并行构建索引,本文基于行键和过滤列族构建索引查询记为NewKNN(New KNearestNeighbor);若不构建索引,全表扫描查询记为KNN(KNearestNeighbor);若存储的列表中不设计过滤列族,构建索引查询记为NOKNN(NO KNearestNeighbor)。表8列出了在6个节点环境下利用KNN与NewKNN和NOKNN三种查询方法查询一级河流、四级河流和五级河流数据所需要的时间,图2给出了查询时间的对比。

  从以上实验可以看出,通过合理设计表行键和列族,将HBase应用于海量空间矢量数据管理可以提高空间数据的存储效率,大幅提高查询的处理速度,获得较大的存储和较高的空间分析计算效率。这种方法虽提高了查询效率,但是性能与数据冗余、一致性是相互制约的关系。如果实现了高性能的范围检索,必然需要靠冗余索引数据来提升性能,而数据冗余会导致更新数据时难以实现一致性,特别是分布式场景下,会产生数据冗余,存储比较浪费。

  4结语

  本文利用HBase分布式数据库的列存储模型特点,对空间数据的分布式存储机制进行研究,设计存储矢量空间数据的表模式,合理设计了表行键和列族,并提出了矢量空间数据的存储模型。最后,验证了本文模型的有效性和实用性。对于基于HBase的空间数据存储效率的提高和索引结构的处理将是下一步研究的内容。

  参考文献:

  [1]CHEN C, LIN J, WU X, et al. Massive geospatial data cloud storage and services based on NoSQL database technique[J]. Journal of GeoInformation Science, 2013, 15(2):166-174.(陈崇成,林剑峰,吴小竹,等.基于NoSQL的海量空间数据云存储与服务方法[J].地球信息科学学报, 2013,15(2):166-174.)

  [2]YANG G. The application of MapReduce in the cloud computing[C]// Proceedings of the 2011 2nd International Symposium on Intelligence Information Processing and Trusted Computing. Piscataway: IEEE, 2011: 154-156.

  [3]LI Y, GUAN J, LI J. A technology to import data into a spatial database[J]. Journal of Computer Research and Development, 2004,41(S1): 496-501.(李玉珍,关佶红,李俊.GML空间数据存储技术研究[J].计算机研究与发展, 2004,41(S1): 496-501.)

  [4]WANG L, CHEN B, LIU Y. Distributed storage and index of vector spatial data based on HBase[C]// Proceedings of the 2013 21st International Conference on Geoinformatics. Piscataway: IEEE, 2013:1-5.

  [5]LU F, ZHOU C. A GIS spatial indexing approach based on Hilbert ordering code[J]. Journal of ComputerAided Design and Computer Graphics, 2001,13(5):424-429.(陆锋,周成虎.一种基于Hilbert排列码的GIS空间索引方法[J].计算机辅助设计与图形学学报,2001,13(5):424-429.)

  [6]DING C,BAO P. Research on distributed storage and parallel query algorithm of spatial data in HBase[D]. Nanjing: NanJing Normal University, 2012.(丁琛,鲍培明.基于HBase的空间数据分布式存储和并行化查询算法的研究[D].南京: 南京师范大学,2012.)

  [7]FAN J,LONG M, XIONG W. Research of vector spatial data distributed storage based on HBase[J]. Geography and GeoInformation Science, 2012,28(5):39-42.(范建永,龙明,熊伟.基于HBase的矢量空间数据分布式存储研究[J].地理与地理信息科学,2012,28(5):39-42.)

  [8]HSU Y T, PAN Y C, WEI L, et al. Key formulation schemes for spatial index in cloud data managements[C]// Proceedings of the 2012 IEEE 13thInternational Conference on Mobile Data Management. Piscataway: IEEE, 2012: 21-26.

  计算机期刊投稿推荐杂志《计算机工程》是中国电子科技集团公司第三十二研究所(华东计算技术研究所)主办的学术性刊物,是上海市计算机学会会刊。主要特点:以最快的速度、科学求实的精神,精选刊登代表计算机行业前沿科研、技术、工程方面的高、精、尖优秀论文。

文章标题:计算机期刊投稿基于HBase的矢量空间数据存储与访问优化

转载请注明来自:http://www.sofabiao.com/fblw/dianxin/yingyong/28882.html

相关问题解答

SCI服务

搜论文知识网的海量职称论文范文仅供广大读者免费阅读使用! 冀ICP备15021333号-3