浅论海量数据组织管理的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅论海量数据组织管理的方法
浅论海量数据组织管理的方法
摘要:本文在对海量空间数据进行了一定的分析基础上,探讨
了当前针对海量数据组织管理的金字塔结构存储方法和线性四叉树
的空间索引结构。并通过示例程序开发验证其有效性。
关键词:空间数据库;海量数据;四叉树;金字塔
Abstract: In this paper, based on the analysis of the massive spatial data, discussed the current spatial index structure in Pyramid according to the structure of storage method and linear mass data organization and management of the four fork tree. And its effectiveness is verified by example program development.
Key words: spatial database; data; four fork tree; Pyramid
中图分类号:C36文献标识码:A文章编号:
1 引言
自90年代以来,高空间分辨率遥感卫星开始向大众敞开大门,
作为GIS的重要数据来源——遥感数据量快速增长。卫星遥感影像是一种以栅格数据模型存储的数据,其最明显的特点是数据量大、数据结构单一。同时遥感数据是一种大面积的、动态的、近实时的数据源,是GIS数据更新的重要手段。遥感数据可用于提取线划数据和生成数字正射影像数据、DEM数据[1]。我国的领土面积为960.1216万平方公里,如果全国的遥感影像用QuickBird 0.61m分辨率的影像来记录据估算需要72092.15GB[2]。为了使这些海量空间数据得到更好的应用,必须考虑采用更为有效的组织管理手段对海量空间数据进行组织
管理。
解决此问题,在GIS中对大范围空间数据的统一有效的组织管理有很大帮助。早在90年代,美国ESRI公司推出空间数据引擎(SDE)
对该问题提供了一种解决方案,依托于关系数据库环境,采用高效空
间目标模型(Efficient Spatial Object Model)对空间实体进行完整组织。此举一方面避免了大数据量传统拓扑模型组织数据时需要的大量的硬盘访问操作;另一方面,空间信息作为关系库中的成员,属性信息与图形信息形成一体化,避免了通过标识码连接属性,大大提高了信息检索的效率[3]。同时,在ArcGIS9.0以上版本的ArcCatalog 中又新增了栅格目录(Raster Catalog)的数据组织方式,很好的满足了目前流行的以图幅为单位进行空间数据采集并更新的需求。
从当前空间数据的生产及数字化过程看,以图幅为单位进行管理的局面一时难以改变[4]。故本文将讨论以图幅为基本存储单位,在此基础上对其用多金字塔结构进行空间数据组织并利用四叉树作为海
量栅格数据的空间索引的海量数据组织存储方法。
2 海量数据分析
在研究海量数据的组织管理方法前,首先要研究如下问题:由于我国的国土面积较大,正射影像产品空间参考大都是以高斯投影后的平面坐标为基础,对于一个省级或国家级的大型影像数据库而言,由
于投影分带的原因,正射影像产品的空间参考的起算原点并不相同[5]。尤其内蒙古自治区这类跨地域很长的省份按照高斯投影后的坐标不会是一个3°高斯投影带,每个带的坐标都是以本带的坐标原点为参考点,空间基准不统一,而且相邻两带带边的图幅变形很大。这样,在多个坐标原点和带边数据存在几何变形的情况下,给省级或国家级这样的大型影像数据库的无缝数据组织带来了问题。所以首先要解决的是大型遥感影像数据库的空间无缝浏览的技术,相关的技术已经在其他文献中多次被提到,本文就不再赘述。
3 海量数据组织管理方法
为了提供高速数据查询、显示、刷新以及网络传输等,在组织和管理海量数据时应使用高效的存储形式和快速高效的索引机制。
3.1海量数据存储技术
当前GIS栅格数据库模型分为传统的关系数据库系统(RDBMS)、对象数据库系统(ODBMS)和对象关系数据库系统(ORDBMS)。
下面简要介绍一下GIS栅格数据在Oracle中的存储方式。栅格数据在存入数据库时,需将实体对象之间的关系转换为支持的数据结
构模型,根据对象类别在数据库中对应建表,空间对象属性映射为关系数据库中的列或字段,每个空间数据对象对应一条数据记录。栅格数据包含的三类数据中,与记录空间数据对象几何属性的图像数据相对应的字段是一种复杂的数据类型,因此对于空间数据库来说,关键问题是如何利用独立于关系数据库系统的统一数据模型处理反映空
间数据对象的几何属性。一般利用Oracle9i存储栅格数据几何信息的方式为ORDSYS.ORDImage和BLOB。其中ORDSYS.ORDImage是一种用于存储如BMP、PCX、TIFF、GIF等多种格式的二位静态栅格数据对象关系数据类型,它还支持JPEG、LZW等压缩格式。BLOB属于LOB (Large Object)的一种,它是数据库为解决存储不规则结构数据而创建的。在早期的数据库中,被存储在数据库外部的操作系统文件中。存储在表中的是列名和该列中每个指向相关的外部文件的指针。在这种情况下,表被规范化了,因为指针具有相同的数据类型[7]。
栅格图像由像素点组成,每个像素点都用二进制表示,虽然数据结构较之矢量简单,但通常数据量较大,如存入数据库前不作任何处理,将因磁盘读取和网络传输效率,而难以满足实时调度、快速浏览和检索的要求,故需先将栅格图像数据分块和建立影像金字塔分级,后存入数据库。
3.2海量数据分块技术
栅格数据分块是把整幅图像按照一定的大小分成若干个大小相
等而互不重叠的块,而任意尺寸分块不利于建立影像金字塔和索引,因此比较理想的块尺寸是2的整数幂,如512*512作为一个子块。具体分块操作时还应考虑图像局部的相关程度、压缩算法、网络的传输单元等情况。如可将整个图像分为30(5*6)块,每一块都有一个序号,每一个块作为单独的一幅图像,数据存入表中,并为序号列建立索引,一个序号对应一个数据块。当前台程序对数据库中图像作漫游时,根据视点、焦点以及方位角之间的关系计算出哪些块在可见区内,通过索引记录块的指针,索引到指针,直接指向并调用视图中可见的部分对应的数据块,而不是每次从数据库中把全部的数据都取出,这样处理可以缩减显示的数据量,从而提高显示速度。
3.3海量数据的金字塔技术