留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于NoSQL数据库的空间大数据分布式存储策略

李绍俊 杨海军 黄耀欢 周芹

李绍俊, 杨海军, 黄耀欢, 周芹. 基于NoSQL数据库的空间大数据分布式存储策略[J]. 武汉大学学报 ● 信息科学版, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
引用本文: 李绍俊, 杨海军, 黄耀欢, 周芹. 基于NoSQL数据库的空间大数据分布式存储策略[J]. 武汉大学学报 ● 信息科学版, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
LI Shaojun, YANG Haijun, HUANG Yaohuan, ZHOU Qin. Geo-spatial Big Data Storage Based on NoSQL Database[J]. Geomatics and Information Science of Wuhan University, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
Citation: LI Shaojun, YANG Haijun, HUANG Yaohuan, ZHOU Qin. Geo-spatial Big Data Storage Based on NoSQL Database[J]. Geomatics and Information Science of Wuhan University, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774

基于NoSQL数据库的空间大数据分布式存储策略

doi: 10.13203/j.whugis20140774
基金项目: 

国家自然科学青-基金 No. 51309210

详细信息
    作者简介:

    李绍俊,博士生,主要从事地理信息系统软件研究。lishaojun@supermap.com

    通讯作者: 杨海军,博士,高级工程师,主要从事生态环境遥感应用研究。yanghj@lreis.ac.cn
  • 中图分类号: P208

Geo-spatial Big Data Storage Based on NoSQL Database

Funds: 

The National Natural Science Foundation of China No. 51309210

More Information
  • 摘要: 基于关系型数据库的空间数据存储与处理是地理信息系统(geographic information system,GIS)领域的主流模式,但伴随着物联网、移动互联网、云计算及空间数据采集技术的发展,空间数据已从海量特征转变为大数据特征,对空间数据的存储和管理在数据量和处理模式上提出了新的挑战。首先分析了基于传统的集中式存储与管理模式在处理和应用大数据方面的局限性,包括存储对象的适应性、存储能力的可扩展性及高并发处理能力要求;然后在分析当前几大主流NoSQL数据库特点的基础上,指出了空间大数据基于NoSQL数据库的单一存储模式在数据操作方式、查询方式和数据高效管理方面存在的局限性;最后结合GIS领域空间大数据存储对数据库存储能力的可扩展性及数据处理和访问的高并发要求,提出基于内存数据库和NoSQL数据库的空间大数据分布式存储与综合处理策略,并开发了原型系统对提出的存储策略进行可行性和有效性进行了验证。
  • 图  1  空间大数据分布式存储管理系统应用框架图

    Figure  1.  Application Diagram of the System of Spatial Big Data Storage and Management

    图  2  分布式存储系统体系结构图

    Figure  2.  Distributed Storage Architecture of Spatial Big Data

    图  3  基于MongoDB的分布式空间数据存储方案

    Figure  3.  Spatial Database Storage in MongDB Sharding

    图  4  图幅索引的数据表

    Figure  4.  Index Collection of the Tile Index

    表  1  各数据库中空间数据存储组织方式

    Table  1.   Object Types Mapping in Database

    SQLite:MemPostgreSQLMongoDB
    空间位置信息存储格式TextbinBSON
    数据源对应的数据库对象databasedatabasedatabase
    图层对应的数据库对象tabletablecollection
    空间对象对应的数据库对象rowrowdocument
    下载: 导出CSV

    表  2  单个要素平均处理时间

    Table  2.   Average Time Consumption for One Shape File

    耗时/s 备注
    导入内存数据库 20.6 -
    内存图层切分图幅 2.3 12列×3行
    追加到目标图层 46.7 -
    总计 69.6 -
    下载: 导出CSV

    表  3  数据提取时间记录

    Table  3.   Data Extraction Bases on Spatial Index

    耗时/s 备注
    元数据查询 0.6 -
    图层内图幅查询 2.3 8个图层
    图幅数据追加 978 3 861个图幅
    总计 981 12 574 739对象
    下载: 导出CSV

    表  4  各图层叠加统计耗时

    Table  4.   Time Consumption on Overlay Analysis

    图层 图幅数 对象数 耗时A/s 耗时B/s(内存数据库)
    L1 73 253 454 192 126
    L2 385 1 264 189 643 397
    L3 656 2 159 563 1072 658
    L4 656 2 111 632 1123 744
    L5 658 2 176 057 1070 723
    L6 762 2 475 838 1119 691
    L7 581 1 879 148 649 419
    L8 90 254 858 215 141
    下载: 导出CSV
  • [1] Mooney P, Corcoran P, Winstanley A C. Geospatial Data Issues in the Provision of Location-based Services[C].Proceedings of the 7th International Symposium on LBS & Telecartography, Guangzhou, China, 2010
    [2] 龚健雅.空间数据库管理系统的概念与发展趋势[J].测绘科学, 2001, 26(3):4-9 http://www.cnki.com.cn/Article/CJFDTOTAL-CHKD200103001.htm

    Gong Jianya. Concepts and Development of Spatial Database Management System[J]. Science of Surveying and Mapping, 2001, 26(3):4-9 http://www.cnki.com.cn/Article/CJFDTOTAL-CHKD200103001.htm
    [3] 刘经南, 方媛.位置大数据的分析处理研究进展[J]. 武汉大学学报·信息科学版, 2014, 39(4):380-385 http://ch.whu.edu.cn/CN/abstract/abstract2947.shtml

    Liu Jingnan, Fang Yuan. Research Progress in Location Big Data Analysis and Processing[J].Geomatics and Information Science of Wuhan University,2014, 39(4):380-385 http://ch.whu.edu.cn/CN/abstract/abstract2947.shtml
    [4] 周芹,李绍俊.基于Oracle Spatial的空间数据库缓存技术研究[J].地球信息科学, 2007, 9(3):39-44 http://www.cnki.com.cn/Article/CJFDTOTAL-DQXX200703010.htm

    Zhou Qin, Li Shaojun. Study on Spatial Data Cache Technology Based on Oracle Spatial[J].Geo-Information Science, 2007, 9(3):39-44 http://www.cnki.com.cn/Article/CJFDTOTAL-DQXX200703010.htm
    [5] 周芹,李绍俊,李云锦,等.空间数据库引擎的关键技术及发展[C]. 中国地理信息系统协会第四次会员代表大会, 北京,2007

    Zhou Qin, Li Shaojun, Li Yunjin, et al. The Key Technique and Development of Spatial Database Engine[C]. The Fourth Member Representative Assembly of China Geographic Information System Association, Beijing, China, 2007
    [6] Zhong Y, Han J, Zhang T, et al. A Distributed Geospatial Data Storage and Processing Framework for Large-scale WebGIS[C]. The 20th International Conference on Geoinformatics, Hong Kong. China, 2012
    [7] Han D, Stroulia E. HGrid:A Data Model for Large Geospatial Data Sets in HBase[C]. Proceedings of the 2013 IEEE Sixth International Conference on Cloud Computing, CA. USA, 2013
    [8] Wei L Y, Hsu Y T, Peng W C, et al. Indexing Spatial Data in Cloud Data Managements[J].Pervasive and Mobile Computing, 2014, 15:48-61 doi:  10.1016/j.pmcj.2013.07.001
    [9] 陈崇成, 林剑峰, 吴小竹, 等.基于NoSQL的海量空间数据云存储与服务方法[J].地球信息科学学报, 2013, 15(2):166-174 doi:  10.3724/SP.J.1047.2013.00166

    Chen Chongcheng, Lin Jianfeng, Wu Xiaozhu,et al. Massive Geo-spatial Data Cloud Storage and Services Based on NoSQL Database Technique[J]. Journal of Geo-Information Science, 2013, 15(2):166-174 doi:  10.3724/SP.J.1047.2013.00166
    [10] Chang F, Dean J, Ghemawat S, et al. Bigtable:A Distributed Storage System for Structured Data[J].ACM Transactions on Computer Systems, 2008, 26(2):1-26 http://cn.bing.com/academic/profile?id=6034c75210d72de01b3e8b076389df33&encoded=0&v=paper_preview&mkt=zh-cn
    [11] Ghemawat S, Gobioff H, Leung S T. The Google File System[C]. 19th ACM Symposium on Operating Systems Principles, New York, USA, 2003
    [12] Burrows M. The Chubby Lock Service for Loosely-coupled Distributed Systems[C]. Proceedings of the 7th Symposium on Operating Systems Design and Implementation, Berkeley, USA, 2006
    [13] 陈吉荣,乐嘉锦.基于Hadoop生态系统的大数据解决方案综述[J].计算机工程与科学, 2013, 35(10):25-35 http://www.cnki.com.cn/Article/CJFDTOTAL-JSJK201310004.htm

    Chen Jirong, Le Jiajin. Reviewing the Big Data Solution Based on Hadoop Ecosystem[J]. Computer Engineering & Science, 2013, 35(10):25-35 http://www.cnki.com.cn/Article/CJFDTOTAL-JSJK201310004.htm
    [14] Hecht R, Jablonski S. NoSQL Evaluation:A Use Case Oriented Survey[C]. 2011 International Conference on Cloud and Service Computing, Hong Kong, China, 2011
    [15] 李绍俊,钟耳顺,周芹,等.开放式空间数据库访问接口的开发应用[J].地球信息科学学报, 2013, 10(2):193-199 http://www.cnki.com.cn/Article/CJFDTOTAL-DQXX201302007.htm

    Li Shaojun, Zhong Ershun, Zhou Qin,et al. Study on Opening Geospatial Database Connectivity[J].Journal of Geo-Information Science,2013, 10(2):193-199 http://www.cnki.com.cn/Article/CJFDTOTAL-DQXX201302007.htm
  • [1] 朱建军, 宋迎春, 胡俊, 邹滨, 吴立新.  测绘大数据时代数据处理理论面临的挑战与发展 . 武汉大学学报 ● 信息科学版, 2021, 46(7): 1025-1031. doi: 10.13203/j.whugis20210232
    [2] 曹布阳, 冯华森, 梁峻浩, 李响.  利用Hilbert曲线与Cassandra技术实现时空大数据存储与索引 . 武汉大学学报 ● 信息科学版, 2021, 46(5): 620-629. doi: 10.13203/j.whugis20200367
    [3] 刘涛, 张晓辉, 杜萍, 杜清运, 李爱勤, 龚丽芳.  文本大数据中地震应急的知识发现方法 . 武汉大学学报 ● 信息科学版, 2020, 45(8): 1205-1213. doi: 10.13203/j.whugis20200106
    [4] 陈勉, 李龙海, 谢鹏, 付少锋, 何列松, 周校东.  基于Phoenix的地理空间大数据管理系统 . 武汉大学学报 ● 信息科学版, 2020, 45(5): 719-727. doi: 10.13203/j.whugis20180435
    [5] 刘纪平, 董春, 亢晓琛, 邱士可, 赵荣, 栗斌, 孙立坚.  大数据时代的地理国情统计分析 . 武汉大学学报 ● 信息科学版, 2019, 44(1): 68-76, 83. doi: 10.13203/j.whugis20180420
    [6] 张兵.  遥感大数据时代与智能信息提取 . 武汉大学学报 ● 信息科学版, 2018, 43(12): 1861-1871. doi: 10.13203/j.whugis20180172
    [7] 刘汇慧, 阚子涵, 孙飞, 段倩, 唐炉亮, 吴华意.  采用轨迹大数据探测短时非营运行为 . 武汉大学学报 ● 信息科学版, 2016, 41(9): 1192-1198. doi: 10.13203/j.whugis20150569
    [8] 张晓祥.  大数据时代的空间分析 . 武汉大学学报 ● 信息科学版, 2014, 39(6): 655-659. doi: 10.13203/j.whugis20140143
    [9] 李清泉, 李德仁.  大数据GIS . 武汉大学学报 ● 信息科学版, 2014, 39(6): 641-644. doi: 10.13203/j.whugis20140150
    [10] 李德仁, 姚远, 邵振峰.  智慧城市中的大数据 . 武汉大学学报 ● 信息科学版, 2014, 39(6): 631-640. doi: 10.13203/j.whugis20140135
    [11] 颜勋, 陈荣国, 程昌秀, 宋晓眉.  内嵌式空间数据库优化器代价评估框架及实现 . 武汉大学学报 ● 信息科学版, 2011, 36(6): 726-730.
    [12] 周芹, 钟耳顺, 黄耀欢, 郭会.  大型空间数据库的并发索引策略CQR树 . 武汉大学学报 ● 信息科学版, 2009, 34(7): 856-858.
    [13] 孟令奎, 张文, FrankZhigangWANG.  基于层次化P2P协议的网格空间数据库系统模型 . 武汉大学学报 ● 信息科学版, 2008, 33(12): 1233-1236.
    [14] 朱庆, 周艳.  分布式空间数据存储对象 . 武汉大学学报 ● 信息科学版, 2006, 31(5): 391-394.
    [15] 李定平, 胡光道, 程路.  MapGIS下空间数据库的建立及其典型问题研究 . 武汉大学学报 ● 信息科学版, 2005, 30(11): 1029-1032.
    [16] 李俊, 关佶红, 李玉珍.  GML空间数据存储映射模型研究 . 武汉大学学报 ● 信息科学版, 2004, 29(12): 1071-1074.
    [17] 罗德安, 廖丽琼.  基于关系数据库的地籍空间数据存储结构 . 武汉大学学报 ● 信息科学版, 2000, 25(6): 516-520.
    [18] 方涛, 李德仁, 龚健雅, 皮明红.  GeoImageDB多分辨率无缝影像数据库系统的开发与实现 . 武汉大学学报 ● 信息科学版, 1999, 24(3): 189-193,281.
    [19] 许云涛, 李春葆, 李华, 刘斌.  面向对象的多媒体空间数据库系统设计 . 武汉大学学报 ● 信息科学版, 1999, 24(3): 268-271.
    [20] 朱欣焰, 许云涛, 张银州, 李锦祥.  面向对象的语义数据模型及其在空间数据库中的应用 . 武汉大学学报 ● 信息科学版, 1993, 18(4): 76-81.
  • 加载中
图(4) / 表(4)
计量
  • 文章访问数:  4588
  • HTML全文浏览量:  252
  • PDF下载量:  930
  • 被引次数: 0
出版历程
  • 收稿日期:  2015-04-17
  • 刊出日期:  2017-02-05

基于NoSQL数据库的空间大数据分布式存储策略

doi: 10.13203/j.whugis20140774
    基金项目:

    国家自然科学青-基金 No. 51309210

    作者简介:

    李绍俊,博士生,主要从事地理信息系统软件研究。lishaojun@supermap.com

    通讯作者: 杨海军,博士,高级工程师,主要从事生态环境遥感应用研究。yanghj@lreis.ac.cn
  • 中图分类号: P208

摘要: 基于关系型数据库的空间数据存储与处理是地理信息系统(geographic information system,GIS)领域的主流模式,但伴随着物联网、移动互联网、云计算及空间数据采集技术的发展,空间数据已从海量特征转变为大数据特征,对空间数据的存储和管理在数据量和处理模式上提出了新的挑战。首先分析了基于传统的集中式存储与管理模式在处理和应用大数据方面的局限性,包括存储对象的适应性、存储能力的可扩展性及高并发处理能力要求;然后在分析当前几大主流NoSQL数据库特点的基础上,指出了空间大数据基于NoSQL数据库的单一存储模式在数据操作方式、查询方式和数据高效管理方面存在的局限性;最后结合GIS领域空间大数据存储对数据库存储能力的可扩展性及数据处理和访问的高并发要求,提出基于内存数据库和NoSQL数据库的空间大数据分布式存储与综合处理策略,并开发了原型系统对提出的存储策略进行可行性和有效性进行了验证。

English Abstract

李绍俊, 杨海军, 黄耀欢, 周芹. 基于NoSQL数据库的空间大数据分布式存储策略[J]. 武汉大学学报 ● 信息科学版, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
引用本文: 李绍俊, 杨海军, 黄耀欢, 周芹. 基于NoSQL数据库的空间大数据分布式存储策略[J]. 武汉大学学报 ● 信息科学版, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
LI Shaojun, YANG Haijun, HUANG Yaohuan, ZHOU Qin. Geo-spatial Big Data Storage Based on NoSQL Database[J]. Geomatics and Information Science of Wuhan University, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
Citation: LI Shaojun, YANG Haijun, HUANG Yaohuan, ZHOU Qin. Geo-spatial Big Data Storage Based on NoSQL Database[J]. Geomatics and Information Science of Wuhan University, 2017, 42(2): 163-169. doi: 10.13203/j.whugis20140774
  • 新技术的发展给空间数据存储与管理又提出了新的挑战。物联网、移动互联网和云计算技术及应用的蓬勃发展,使得空间数据在数据量和应用模式上发生了转变;此外,传感器技术的发展,使采集数据的空间分辨率和时间分辨率显著提高,导致所获取的数据规模成指数级快速上升,面对动辄以TB(trillionbyte),甚至PB(petabyte)计的数据,也给空间数据存储和处理带来巨大的压力[1-3]

    传统的基于关系型数据库的空间数据存储与管理已经无法满足大数据存储和处理的实际应用要求,随着互联网领域云技术、非关系型数据库技术的迅速发展,各种分布式GIS技术的研究成为研究热点。本文主要着眼于空间大数据的存储与管理,首先分析了传统集中存储模式在大数据存储方面的局限性;然后,针对互联网领域大数据的成功解决方案,研究当前主流NoSQL数据库的特点,分析其在处理空间数据时的优势与不足;最后,针对这些需求和存在的问题,本文提出空间大数据分布式存储与处理策略,并在原型系统中进行试验验证。

    • 基于成熟的关系型数据库设计空间数据引擎,集中存储和管理空间数据是当前应用的主流模式。

    • 从空间数据引擎和关系数据库与应用程序结合的紧密程度来看,可以将空间数据引擎的体系结构分为内置模式、三层结构模式和两层结构模式[4, 5],这些集中存储模式很好地解决了海量空间数据存储和管理的问题。

      目前,各种地理空间信息获取手段多样、数据规模巨大、更新频率快、数据应用现势性强。传统的空间数据集中,单一的存储方式不能满足大数据高并发甚至高时效的应用要求,空间数据从海量特征转变为大数据特征对存储技术的要求主要表现如下。

      1) 存储对象的变化。关系型数据库不擅长处理大量位置相关的视频、音频、图片等数据。

      2) 存储能力的扩展。在容量上,传统关系型数据库难以维护动辄千万级别的二维表,且存储能力的横向扩展也非常困难。在性能上,由于需要维护数据的完整性、一致性,数据存储的性能受到很大影响。

      3) 并发访问能力。 关系型数据库区别传统文件的最大优势在于其对数据的多用户并发访问能力,但在云服务、互联网等应用领域,用户的并发量要求是关系型数据库无法满足的。

    • 在互联网领域,基于非关系型数据库的NoSQL数据库技术已经得到成功应用。从数据存储的角度来说,NoSQL数据库非常适合空间大数据的存储,但互联网领域的应用模式与GIS领域存在一定差异,由此产生的局限性主要包括如下方面。

      1) 数据操作方式的局限性。在空间数据库中对数据的修改是常用操作,但NoSQL数据库一般不建议对数据进行修改,不慎重的修改操作甚至会因为引起相关存储数据的大量迁移而导致性能急剧下降。

      2) 数据查询方式的局限性。基于空间数据的各种专题图展示能力以数据库的查询能力为重要基础,需要按图层的属性信息提取数据,因此基于数据库的按字段查询、排序、统计等功能是重要基础。NoSQL数据库提供的查询能力非常有限,MongoDB也不能满足GIS常用查询的需要。

      3) 单一空间索引算法或技术的局限。类似关系型数据库,空间数据的索引技术是空间数据存储技术的重要研究内容[6-9],但有一定局限性[10-14]。在大数据应用环境下,应该考虑把空间索引技术从算法层面提升到方法策略层面,才能解决空间数据的高效检索问题。

      本文综合NoSQL数据库和关系型数据库各自的优势,提出一种混合的空间大数据分布式存储策略,既满足大数据存储的需要,又能满足传统GIS应用的需求。

    • 本文提出空间大数据分布式存储策略是针对传统的矢量、栅格及各种移动设备产生的实时/近实时的流式大数据存储与管理,设计基于内存数据库、关系型数据库、NoSQL数据库的三层物理存储体系及数据调度系统。

    • 面向空间大数据的分布式存储与管理系统具备存储和管理矢量、栅格和流式大数据的能力,整个系统能够对外提供多种能力,既包括实时/近实时的流式数据的存储和管理,又能对分布式数据库中的数据进行快速提取从而支持传统应用,如专题图展示、空间关联分析等。基于该系统的应用框架结构见图 1

      图  1  空间大数据分布式存储管理系统应用框架图

      Figure 1.  Application Diagram of the System of Spatial Big Data Storage and Management

      空间数据存储子系统。综合内存数据库、传统空间数据库和NoSQL数据库,三者结合对外提供流式数据处理能力、传统空间数据库查询和分析能力及分布式系统大数据处理能力。

      1) 内存数据库,高效的数据操作层。I/O处理速度比传统数据库要快很多,一般都在10倍以上。

      2) 传统空间数据库,提供数据集中存储的能力,与此同时使得整个空间大数据分布式存储管理系统对外具备传统GIS的能力,保证整个系统对外提供的能力不退化。

      3) 分布式存储系统,基于NoSQL数据库的分布式存储系统作为大数据仓库,为空间大数据提供低成本、高可扩展、高可用性、高通量I/O的持久化存储和数据提取能力。

    • 1) 空间数据在NoSQL数据库中的存储实现。本文主要研究MongoDB的数据库存储特点。MongoDB是一种基于文档的NoSQL数据库,与空间数据库中的各类对象的映射关系见表 1

      表 1  各数据库中空间数据存储组织方式

      Table 1.  Object Types Mapping in Database

      SQLite:MemPostgreSQLMongoDB
      空间位置信息存储格式TextbinBSON
      数据源对应的数据库对象databasedatabasedatabase
      图层对应的数据库对象tabletablecollection
      空间对象对应的数据库对象rowrowdocument

      2) NoSQL数据库中空间大数据的组织结构设计。本文主要讨论MongogDB的Replica Set集群和Sharding集群。在实际应用中,应用场景会极大地影响数据存储策略。本文的实验场景中,通过多次优化验证,采用的是根据地理范围进行外部分片,再搭建Sharding集群,可称之为滞后Sharding集群。

      3) NoSQL数据库中空间大数据的快速提取技术。除空间数据的组织结构会影响数据的提取效率,空间索引策略也是提高数据访问效率的关键点。本文设计的空间索引策略充分与集群方案结合,是基于元数据的多级图幅索引。

      4) 数据合理调度问题。考虑空间大数据高效分析和处理的需要,其存储需要设计内外存协同的存储模式。将高频率访问热点数据直接内存于数据库中,实现高通量I/O;其余海量的低频率“冷”数据以归档形式存储在关系型数据库或者NoSQL数据库中。

      5) 空间数据访问接口设计。对关系型数据提供的API(application programming interface)基于开源的OGDC(open geospatial database connectivity)[15],类似于空间数据库领域的ODBC,提供最基础的空间数据库访问接口,包含了多种关系型数据库的驱动程序,如Oracle、DB2、MySQL、DM、Kingbase等;对分布式存储系统,本文基于OGDC接口进行完善,为数据的并行存取提供通道。

    • 本文分别选取SQLite、PostgreSQL和MongoDB作为内存数据库、关系型数据库和NoSQL数据库的存储实践实现原型系统,重点解决空间大数据在MongoDB中的底层存储和上层逻辑组织结构等关键技术,实现大数据仓库中的空间数据快速存储与提取,对本文的存储策略进行验证。

      实验选取空间大数据入库和空间叠加统计分析两个场景对本文提出的存储策略进行对比和验证。

      实验数据采用全国大范围土地覆盖测试数据,共10 101幅shape文件,数据量5.4TB,约11亿个空间面对象。

      实验主要硬件为三台32核、内存128GB的服务器挂载磁盘存储;操作系统为64位RedHat。

    • 空间大数据存储原型系统分三层结构,包括数据库层、中间件层和数据访问接口层,见图 2

      图  2  分布式存储系统体系结构图

      Figure 2.  Distributed Storage Architecture of Spatial Big Data

      1) 数据库层。SQLite是一个跨平台的开源小型桌面数据库,提供全内存模式;PostgreSQL是一个传统类型的开源关系型数据库;MongoDB是目前为止与关系型数据库最接近的NoSQL数据库,实验搭建MongoDB的Sharding集群。

      2) 中间件层。属于核心部分,包括传统的空间数据库引擎、分布式空间数据库引擎和数据调度子模块。传统的空间数据库引擎主要负责空间数据在关系型数据库中的存储和管理,由于SQLite是关系型数据库,SQLite:Mem和PostgreSQL的存储处理方式基本类似;分布式空间数据库引擎负责空间大数据在MongoDB中的组织。各数据库中数据的组织方式见表 1

      关系型数据库中,图层与表对应。矢量图层的每个对象对应表中的一行,这一行数据就包括了位置信息和属性信息,对于MongoDB来说,每个对象包装成一个带有空间信息和属性信息的BSON对象。

      数据调度主要是基于数据操作接口,在不同的数据库之间进行数据的输入和提取。

      3) 数据访问接口层。主要为上层应用提供操作存储于不同数据库的空间数据的接口。

    • 实验目标:将5.4TB shape数据全部导入MongoDB,并建立空间索引。

      实验目的:对本文空间大数据分布式存储方案、空间索引策略和内存数据库的应用进行验证。

      1) 数据分布式存储方案

      数据入库主要是对数据集合 (记为collection)写操作,由于MongoDB采用的是数据库级锁,过多并发对同一数据库(记为database)中同一集合或不同集合的插入操作都会导致锁争用而产生性能瓶颈;通过Sharding集群的实例节点写入数据,由于节点间通信及维护开销,单个shape导入的性能比单节点写入性能慢2~3倍。为提高入库效率,本实验放弃对单个collection的Sharding集群存储,将研究区域的数据进行划分,存储到两个存储节点的6个database中,每个database包含多个collection,每个collection包含200万~300万个对象(见图 3)。图 3中,A1、A2;B1、B2;C1、C2等为研究区域的数据分片,DB_A1、DB_A2、DB_B1、DB_B2、DB_C1、DB_C2等为对应的存储节点数据库,Shard Node1、Shard Node2为存储节点。集群搭建采用滞后方式,即两个存储节点先作为单独实例启动,数据入库完成后再搭建Sharding集群。实际环境中也建议在数据入库完成后再建立各Sharding集群结点的备份结点,搭建数据副本-分片集群(Replica Set-Sharding)。

      图  3  基于MongoDB的分布式空间数据存储方案

      Figure 3.  Spatial Database Storage in MongDB Sharding

      本实验环境下,对单个数据库级别的database开启10进程并发持续写入能够获得较好的效果。

      2) 基于元数据的多级空间索引策略

      通过元数据表记录不同存储粒度的地理范围:存储结点级别(Shard Node)、数据库级别(database)和图层级别(layer)。图层的数据粒度为300万~400万对象,用图幅索引进行划分,即每个对应一张collection。在存储结构上,layer对应的database.collection的Tile_ID(图幅标识)列记录空间对象所在的图幅号,索引表的结构如图 4(b)所示。其中各变量满足以下条件:

      图  4  图幅索引的数据表

      Figure 4.  Index Collection of the Tile Index

      ① $\sum\limits_{i = 0}^k {{n_i} = N} $,N为对象总个数;

      tiT,T=∪Obj_IDTile,Obj_IDTile为索引表对象Obj_ID

      3) 内存数据库的应用

      入库过程中对图层建立图幅索引需要多次对collection进行ID查询,统计地理范围极值等操作,而MongoDB并不直接提供对列求极值的操作算子,需要遍历数据。本实验利用内存数据库,实现了单个shape(要素)入库处理时间不随目标层数据量增加而增长的目标。步骤如下。

      (1) 单个要素(shape)导入内存数据库得到MemLayer;

      (2) 对MemLayer切分图幅T1,T2,…Tn

      (3) 将n图幅数据追加至目标图层。对第Ti图幅数据,获取数据范围、对象数,获取目标数据集的新图幅标识(Tile_ID),写入目标图层。

      数据写入完毕,实际上图层的图幅索引也建立完毕。本文统计3个图层约60个shape,每个shape约500MB,11万个对象,单个shape处理的平均时间见表 3。实验中整个入库过程shape处理速度基本平稳。

      表 2  单个要素平均处理时间

      Table 2.  Average Time Consumption for One Shape File

      耗时/s 备注
      导入内存数据库 20.6 -
      内存图层切分图幅 2.3 12列×3行
      追加到目标图层 46.7 -
      总计 69.6 -

      4) 实验结果

      基于以上方案,对5.4TB的矢量数据采用2个存储节点、60进程并发入库并建立空间索引的总时间耗费为3 h 42 min,有效地保障了海量数据高并发环境下的入库效率。

    • 实验目标:从MongDB中提取安徽省相关数据,并对安徽省各县市土地覆盖类型进行分类统计。参与叠加分析的安徽省行政区划图层为L_AnHui,包含105个面对象。

      实验目的:对本文的空间索引策略的有效性进行验证;对本文的内存数据库、关系型数据库和分布式数据库的协同应用策略进行验证。

      实验步骤分为数据提取到关系型数据库PostgreSQL和基于关系型数据库的叠加分析统计。

      1) 数据提取过程

      充分利用基于元数据的空间索引,提取图幅粒度的相关数据输入PostgreSQL数据库。

      (1) 根据L_AnHui得到矩形查询范围rcBounds;

      (2) 查询元数据表找到与查询范围(rcBounds)相关的layer:L1,L2,…,Ln。数据入库后,存储结点、数据库和图层级别的元数据总计354条,因此对元数据的范围查询时间在ms级别;

      (3) 对图层Li询rcBounds相关的图幅Ti1 ,Ti2…Tim

      (4) 取图层LiTi1 ,Ti2,…,Tim图幅的数据,采用图幅追加的方式写入PostgreSQL。

      各步骤时间统计见表 3。与安徽省相关的图层共计8个,这8个图层中再次过滤得到3 861个图幅。最终分8个图层启用8个进程写入PostgreSQL,总对象数12 574 739。

      2)叠加分析统计

      在PostgreSQL中对提取的土地覆盖数据与L_AnHui进行叠加裁剪,并按土地覆盖类型字段CType对各县市进行分类统计求和。假设L_AnHui中的对象为A1,A2,…,An,土地覆盖数据各layer为L1,…,Lm,对于AiLj计算步骤如下。

      表 3  数据提取时间记录

      Table 3.  Data Extraction Bases on Spatial Index

      耗时/s 备注
      元数据查询 0.6 -
      图层内图幅查询 2.3 8个图层
      图幅数据追加 978 3 861个图幅
      总计 981 12 574 739对象

      (1) 通过Lj的图幅索引,提取被Ai完全包含的图幅TID_in和相交的图幅TID_intersect。通过图幅TID_in取对象面积以及CType值,得到结果R_in1;

      (2) 对于TID_intersect提取各图幅中空间对象的四至,与Ai叠加:被Ai包含的取出对象面积及CType值,写入结果R_in2;相交的对象写入内存数据库图层Mem layer等待计算;

      (3) 在内存数据库中对Mem layer和Ai进行叠加裁剪(线段打散→求交→拓扑构面),并计算裁剪后的对象面积,得到结果R_clip;

      (4) R_in1、R_in2和R_clip结果合并。

      该过程通过逐级过滤,尽量过滤掉不需要进行叠加裁剪的对象,并将裁剪过程迁移至内存数据库,减少计算过程中对数据库的频繁访问,提高计算效率。

      表 4对比了是否采用内存数据库的测试结果,实验中实际参与叠加计算的对象总数为182 947个。

      3) 实验结果

      本实验中,基于元数据的空间索引能够快速过滤定位到相关图幅,从MongoDB中提取安徽省相关数据并输入PostgreSQL的耗时主要用在数据的I/O;叠加分析和统计过程中采用内存数据源减少了与数据库的交互,有效提高了空间分析的效率。

      表 4  各图层叠加统计耗时

      Table 4.  Time Consumption on Overlay Analysis

      图层 图幅数 对象数 耗时A/s 耗时B/s(内存数据库)
      L1 73 253 454 192 126
      L2 385 1 264 189 643 397
      L3 656 2 159 563 1072 658
      L4 656 2 111 632 1123 744
      L5 658 2 176 057 1070 723
      L6 762 2 475 838 1119 691
      L7 581 1 879 148 649 419
      L8 90 254 858 215 141
    • 面向大数据的空间数据分布式存储策略结合了传统的基于关系型数据库的GIS基本能力和NoSQL数据库提供的大数据分布式存储能力,既满足了大数据存储的需要,又保证了整个系统对外提供的GIS功能不退化。本文基于SQLite、PostgreSQL和MongoDB数据库,开发了原型系统,并选取了两个实验场景对该存储策略的有效性进行了验证。空间大数据的存储和管理是一个相对复杂的问题,根据应用的实际情况,大数据的空间索引策略、数据分解方法、数据调度策略等都值得进一步深入研究。

参考文献 (15)

目录

    /

    返回文章
    返回