2. 国家测绘地理信息局卫星测绘应用中心, 北京 100048;
3. 山东科技大学海岛(礁)测绘技术国家测绘地理信息局重点实验室, 山东 青岛 266590
2. Satellite Surveying and Mapping Application Center, NASG, Beijing 100048, China;
3. Key Laboratory of Surveying and Mapping Technology on Island and Reef, Qingdao 266590, China
近年来,国内外对地观测技术正朝着多传感器、多平台、多角度和高时空分辨率的方向发展。对地观测技术的发展提高了影像数据的质量,但同时也带来了数据量骤增的问题[1]。卫星影像数据量呈指数式增长,数据日增量从GB级迅速增长到TB级,数据总量从TB级迅速增至PB级,传统的影像数据存储方法已无法满足海量卫星影像存储中的性能要求[2]。卫星影像数据量的剧增缓解了社会经济应用中影像数据不足的问题,但在影像数据存储管理、分发服务、统计分析等方面,也带来了巨大挑战。海量卫星影像数据不仅具有数据海量性的特征,还具有影像数据的空间特性和非结构化特性等,在影像数据存储时,需综合考虑其各种特征。
1 海量卫星影像数据存储方法卫星影像数据具有结构复杂、数据量大、时效性强等特点,如何高效存储海量卫星影像以满足大数据环境下快速查询及分发的需求,是卫星影像数据管理中的热点与难点[3]。目前,国内外许多科研机构和公司提出了多种卫星影像存储管理方法,主要可分为以下几类。
1.1 基于文件系统的影像存储基于文件系统的卫星影像数据存储方法是将卫星影像存储在高性能的存储设备中,通过文件的方式对影像的空间信息和属性信息进行组织管理。管理服务器在管理存储设备的同时还需要负责整个系统的控制处理,以满足客户端对影像存储、查询、分发的高性能需求,其存储方法如图 1所示。
国内外基于此方法存储海量卫星影像数据的主要有:美国NASA开发的三维虚拟地球World Wind系统[4]、NASA EOS数据中心开发的EOSDIS系统[5]、Google公司依托于其云计算技术开发的Google Map和Google Earth系统[6-7],以及国内吉奥公司开发的GeoImageDB系统[8]等。
该方法能够高效存储卫星影像数据,在数据存储容量和读写速率方面有着其独特的优势。但文件系统在影像数据的备份、恢复等技术上存在着技术难题。而且,随着影像数据量的增加,管理服务器将会成为系统瓶颈[9]。除此之外,文件系统在数据查询等应用上不能很好地满足卫星影像数据管理需求,需要自行开发系统实现。
1.2 基于数据库的影像存储基于数据库的卫星影像存储方法是将影像元数据信息以记录的形式存储在数据库的表中,影像实体以BLOB数据类型存储在表的某一字段中,数据库服务器作为整个系统的中心处理器,负责处理应用层对数据库管理、应用、维护等操作,其存储方法如图 2所示。
使用此方法存储海量卫星影像数据的有:Microsoft公司推出的TerraServer在线海量影像电子地图集[10],以及Microsoft依托其分布式存储系统和云平台的Bing Map系统[11]等。
该方法充分发挥了数据库在数据查询效率、并发操作、数据安全性等方面的性能优势,但此方法存在着一些不足,如关系型数据库的结构不适合存储非结构化的卫星影像。此外,卫星影像数据日增量大,数据总量大,这将导致数据库的体积变得异常庞大,降低其管理性能,使其成为系统的瓶颈。
1.3 集中式数据库与文件结合的影像存储集中式数据库与文件结合的影像存储方法是将影像的结构化信息以表记录的形式存储在数据库中,非结构化的影像实体则以文件的形式存储在存储设备中,其存储方法如图 3所示。
国内外多家单位采用该方法存储卫星影像,如:欧空局ESA数据中心采用数据库管理与影像分级存储的方式[12],我国国家地理信息服务平台天地图、中国资源卫星应用中心、国家卫星海洋应用中心、国家卫星气象中心都采用商业数据库与多级存储设备的存储方式[13-16]。
该方法将影像数据的元数据信息存储在空间数据库中,实现了元数据的高效管理。影像实体存储在文件系统中充分发挥了文件系统的高读写效率及大存储容量的优势。该方法提高了海量影像数据存储管理效率,但在海量大数据环境下,集中式数据库的存储、查询性能都会降低,数据库服务器将成为整个系统的性能瓶颈,影响影像数据的管理效率。
2 分布式数据库与文件结合的存储方法为解决集中式数据库与文件系统结合的影像存储方法中数据库瓶颈的问题,本文提出采用分布式数据库代替集中式数据库的改进方案,以解决集中式数据库在海量数据存储管理中的瓶颈问题。采用分布式空间数据库与文件结合的方法存储海量卫星影像数据可充分挖掘数据库的数据管理能力,提高系统海量影像数据的管理能力。卫星影像的元数据信息存储在分布式空间数据库中以实现海量卫星影像的快速查询、管理,同时影像实体存储在文件系统中,并以文件路径的形式在分布式数据库中记录相应的存储位置信息,这既充分利用了分布式数据库在管理海量数据方面的优势,解决了集中式数据库的瓶颈问题,又利用了文件系统在影像存储方面的高读写效率及大存储容量的优势。
2.1 分布式数据库表分片在分布式数据库中,为解决单表数据量过大影响数据库性能的问题,通常采用数据表分片的方案。按照一定的分片规则将数据表切分成多个节点上的不同逻辑片段,所有的逻辑片段经过合并、连接等操作得到原数据表。通过表的分片,可以将原有的单库单表查询分成多库多表并行查询,提高了查询效率的同时还解决了单节点数据库网络带宽的问题,增加了数据库存储容量。
分布式数据库中常用的数据分片方式有垂直分片、水平分片及二者嵌套使用产生的混合分片方式。垂直分片是按业务对全局关系进行的投影运算,将关系表在垂直方向上切分为若干个片段,使用户的不同应用在不同的片段上运行,以提高数据库效率[17]。水平分片是按照一定的分片谓词对关系表进行的选择操作,将关系表在水平方向上切分成若干个逻辑片段[17],每个逻辑片段保存原关系表的部分记录。
数据切分作为分布式数据库的关键技术之一,它决定了数据的分片位置,影响着数据查询性能及其聚合处理的难易程度。目前,常用的水平分片规则有固定哈希分片、范围分片、求模分片等。
2.2 数据表分片方案设计影像元数据表中的ID字段作为自增主键,其字段值在全局关系中具有连续性和唯一性。按照ID字段值对数据表进行切分,既可以控制数据在各节点间的分布,还可以降低数据分片带来的插入、查询中的事务控制难度,提高分布式数据库的性能。
影像数据的云量是评判影像质量的标准之一,云量的多少直接影响数据的使用频率。在实际生产应用中,云量小于20的影像数据使用频率最高,数据查询时常选择其作为一个重要的查询条件。因此,将影像的云量作为分片字段对于研究分布式数据库的性能有一定参考意义。结合卫星影像数据表中的ID值与云量,对原有数据表设计了以下分片方案。
2.2.1 基于ID值的固定哈希分片固定哈希分片规则类似于十进制的取模运算,是通过先取分片字段二进制值的低10位,再进行取模运算。这种分片规则的优点在于当插入分片字段(ID值)连续的10条记录时,这些记录可能会分到连续的分片,减少插入事务控制难度的同时使数据在节点间均匀分布,其数据库模型如图 4所示。
2.2.2 基于云量的范围分片范围分片是按照预先制定的分片范围,根据分片字段的值对表中的记录进行水平切分。为了选择最佳的分片范围,制定了两种不同的分片范围方案:
第一种是按云量的使用频率划分,云量不超过20的影像使用频率高,可将其切分为4个分片。云量超过20的影像数据使用频率较低,将其单独切分为1个分片,其数据库模型如图 5(a)所示。
第二种是对云量进行范围均分,每个分片中的云量范围相同,云量小于20的数据都存放在同一个分片中,其数据库模型如图 5(b)所示。
2.3 存储设计 2.3.1 数据库存储模型设计存储卫星影像元数据信息的影像元数据库采用混合分片的方式进行存储模型设计,结合多种分片方案进行数据多节点分库和分表存储,既提高了数据库的性能,又缓解了计算机资源冲突,其存储模型如图 6所示。
2.3.2 数据实体存储系统设计海量卫星影像实体的存储采用存储区域网络(storage area network, SAN)架构实现数据的集中存储与应用。SAN网设计采用典型的双Fabric结构,搭建全冗余的SAN存储结构,保证了数据的安全性,实现影像数据存储中的高性能与高可用性。
根据卫星影像数据的数据量、生命周期、存储成本等特征,将海量卫星影像数据存储分为在线、近线和离线3级存储,以实现影像数据的全生命周期管理。随着影像数据的不断更新,在线影像数据从在线磁盘阵列逐步迁移到近线磁盘阵列中及离线磁带库中,以保证数据存储效率,其存储系统设计如图 7所示。
3 系统设计与实现笔者在海量卫星影像分布式存储系统研制中, 以MySQL 5.6作为底层数据库,使用Mycat数据库中间件构建系统底层分布式数据库平台,设计实现了3种分布式数据库分片方案,并以Visual Studio 2010作为系统开发平台,开发了分布式影像管理原型系统,实现了海量卫星影像管理中的快速归档、查询、并行统计分析等功能需求。
该系统底层框架主要包括分布式空间数据库和文件系统这两部分,分布式空间数据库系统使用两台Mycat服务器及多台MySQL数据库服务器,实现服务器的主备的自动切换,保障系统的高可用性。文件系统采用全冗余的SAN存储结构存储影像实体并进行数据的动态迁移,系统设计如图 8所示。
影像数据归档时,系统应用层解析影像元数据信息后将非结构化的影像实体存储在文件系统中。文件服务器接收影像数据的实体文件,并将其存储在文件系统的在线存储中。当在线存储中的数据量达到预定值时,文件服务器则会根据数据迁移策略将使用频率较低的数据迁移到近线存储中。同样,近线存储中使用频率较低的将迁移至离线存储。
影像元数据信息在分布式空间数据库中存储时,Mycat服务器接收应用层传来的数据,并对其进行解析以获取分片字段的值。Mycat中间件根据预先制定的分片规则计算影像元数据的分片节点,并将元数据信息存储到对应的MySQL数据库中。同时,影像实体在文件系统中的存储路径也将记录在元数据表中。
4 试验设计与结果分析为研究分布式空间数据库在海量卫星影像存储中的可行性,笔者对设计构建的海量卫星影像分布式存储系统进行了影像元数据库查询性能测试。使用资源三号卫星影像元数据库编目数据表作为试验数据,数据表约有42万条记录。为进行大数据环境下的查询性能测试,采用重复插入数据的方式,以实现单表的最大数据量达到千万级。
4.1 测试环境分布式数据库服务器是Vmware上建立的5台虚拟机,其共用物理机的CPU为Intel E7440 4核,每个虚拟机的配置如下:8 GB内存,500 GB硬盘,操作系统为Linux 2.6.32,数据库使用MySQL 5.6.26,数据库中间件采用Mycat 1.3。
Oracle数据库配置如下:32 GB内存,20 TB硬盘,操作系统为Solaris 11.2,数据库版本为Oracle 11 g专业版。
4.2 多种数据库平台查询性能测试将资源三号卫星影像库中的编目数据表分别导入MySQL分布式数据库、MySQL单一数据库及Oracle数据库,并进行多种数据量下的查询测试,所有测试通过直连数据库的方式进行,避免其他因素影响测试。主要进行了以下两个测试:
(1) 空间查询性能测试,通过3款数据库分别查询覆盖河南省数据,试验结果如图 9(a)所示。
(2) 空间和属性联合查询测试,通过在3款数据库查询覆盖河南省且云量小于20的数据,试验结果如图 9(b)所示。
4.3 多种分片方案查询性能测试为进一步研究分布式空间数据库中分片方案对查询性能的影响,笔者在构建的分布式数据库平台上进行了多种分片方案的查询测试,按照实际应用的需求,设计了以下两个测试:
(1) 多属性查询测试,查询2014年全年,云量小于20的数据,试验结果如图 10(a)所示。
(2) 空间与属性联合查询测试,查询覆盖河南省且云量小于20的数据,试验结果如图 10(b)所示。
图中3种方案对应上文设计的3种数据库的分片方案。方案一是根据哈希分片对ID值进行分片;方案二通过范围分片将常用的云量小于20的影像在4个数据节点间分片;方案三将云量小于20的数据分片存储在一个数据节点中。
4.4 试验结果分析通过以上几个试验,笔者对分布式数据库进行了多角度、多数据量的影像元数据查询性能测试,分析试验结果得到以下结论:
(1) 笔者搭建的MySQL分布式数据库测试平台相比原有的Oracle数据库平台及MySQL单一数据库平台,其查询性能得到显著的提高。
(2) 分布式数据库的分片方案影响着其查询性能,在数据库模型设计时需选择合适的分片规则,设计合理的分片方案。
5 结语本文讨论了现有卫星影像数据存储方法的特点,针对海量卫星影像数据存储中的性能问题,在现有方法基础上结合海量影像数据管理中的性能需求,提出了一种分布式空间数据库与文件结合的海量卫星影像存储方法;进行了分布式空间数据库的存储模型设计及其分片方案设计,并在研究基础上开发完成了海量卫星影像数据分布式存储原型系统。最后,开展了资源三号卫星影像数据管理试验,试验表明本方法可以有效地存储和管理卫星影像数据,查询性能得到显著的提高,适用于海量卫星影像数据的存储管理。
[1] | 胡正华, 孟令奎, 张文. 面向关系数据库扩展的自适应影像金字塔模型[J]. 测绘学报, 2015, 44(6): 678–685. DOI:10.11947/j.AGCS.2015.20140279 |
[2] | 王华斌, 唐新明, 李黔湘. 海量遥感影像数据存储管理技术研究与实现[J]. 测绘科学, 2008(6): 156–157. |
[3] | 李成名, 刘晓丽, 印洁, 等. 数字城市到智慧城市的思考与探索[J]. 测绘通报, 2013(3): 1–3. |
[4] | BOSCHETTI L, ROY D P, JUSTICE C O. Using NASA's World Wind Virtual Globe for Interactive Internet Visualization of the Global MODIS Burned Area Product[J]. International Journal of Remote Sensing, 2008, 29(11): 3067–3072. DOI:10.1080/01431160701733023 |
[5] | RAMAPRIYAN H K, PFISTER R, WEINSTEIN B. An Overview of the EOS Data Distribution Systems[J]. Land Remote Sensing and Global Environmental Change, 2010, 11: 183–202. DOI:10.1007/978-1-4419-6749-7 |
[6] | GUO W, GONG J Y, JIANG W S, et al. OpenRS-Cloud:A Remote Sensing Image Processing Platform Based on Cloud Computing Environment[J]. Science China Technological Sciences, 2010, 53(1): 221–230. |
[7] | 吕雪锋, 程承旗, 龚健雅, 等. 海量遥感数据存储管理技术综述[J]. 中国科学(技术科学), 2011(12): 1561–1573. |
[8] | 方涛, 李德仁, 龚健雅, 等. GeoImageDB多分辨率无缝影像数据库系统的开发与实现[J]. 武汉测绘科技大学学报, 1999, 24(3): 189–193. |
[9] | 陈时远. 基于HDFS的分布式海量遥感影像数据存储技术研究[D]. 北京: 中国科学院大学, 2013. |
[10] | BARCLAY T, GRAY J, SLUTZ D. Microsoft Terra Server:a Spatial Data Warehouse[J]. Acm Sigmod Record, 2000, 29(2): 307–318. DOI:10.1145/335191 |
[11] | PENDLETON C. The World According to Bing[J]. IEEE Computer Graphics and Applications, 2010, 30(4): 15–17. DOI:10.1109/MCG.2010.77 |
[12] | ALBANI S, GIARETTA D. Long-term Preservation of Earth Observation Data and Knowledge in ESA through CASPAR[J]. International Journal of Digital Curation, 2009, 4(3): 4–16. DOI:10.2218/ijdc.v4i3.127 |
[13] | GONG J Y, XIANG L G, CHEN J, et al. Multi-source Geospatial Information Integration and Sharing in Virtual Globes[J]. Science China Technological Sciences, 2010, 53(1): 1–6. DOI:10.1007/s11431-009-0425-5 |
[14] | 周伟, 黄炜, 王彦佐, 等. 资源一号02C卫星数据管理与服务系统研建[J]. 国土资源遥感, 2014, 26(1): 179–185. DOI:10.6046/gtzyyg.2014.01.30 |
[15] | 王红, 彭海龙. 海洋一号卫星离线数据长期归档方法研究[J]. 海洋通报, 2008, 27(4): 98–100. |
[16] | 贾树泽, 杨军, 施进明, 等. 新一代气象卫星资料处理系统并行调度算法研究与应用[J]. 气象科技, 2010, 38(1): 96–101. |
[17] | 朱欣焰. 分布式空间数据集成与查询优化技术[M]. 北京: 测绘出版社, 2013. |