You are on page 1of 3

第38卷第1期 测绘科学 VoL 38 No.1

Science of Surveying and Mapping Jan.


2013年01月

一种基于NoSQL的地图瓦片数据存储技术

陈超①②,王亮①,闰浩文②,仇阿根①。李玉祥①。朱芳菲①
(①中国测绘科学研究院,北京100039;②兰州交通大学数理与软件-r程学院,兰州730070)

【摘要】本文首先介绍了NoSQL(非关系型数据库)的起源与发展,对比其与关系型数据库的优缺点,提出了基
于NoSQL的地图瓦片数据存储策略,通过实验对比分析了面向文档型的NoSQL数据库产品Mongo DB与SQL Serv-
er 2000在瓦片入库与并发访问性能上的差异。研究结果表明,Mongo DB在海量空间数据存储与并发访问方面具

有明显的高效性。
【关键词】NoSQL;地图瓦片;Mongo DB;四叉树;SQL Server 2000

【中图分类号】P208 【文献标识码】A 【文章编号】1009-2307(2013)014)142-03

2.2 NoSQL与关系型数据库的比较
l 引言
NoSQL与关系型数据库的比较如下:
随着互联网技术的发展,地图的使用被赋予了一种全 1)关系型数据库是高度结构化的p1,通常由表或视图
新的方式。网络地图也作为新一代的地图产品脱颖而出, 里的字段构成,这些表都存储一些格式化的数据结构,并
特别是随着瓦片…(Tile)的概念被提出以来,利用金字塔 且每个元组的字段组成都一样。NoSQL数据库通常存储的
模型缓存地图瓦片的模式代替传统WebGIS地图模式构建 是一对键值或数组(Tuples),它允许创建许多不同类型的
WebGIS地图框架,大大提高了网络地图的响应速度,具有 非结构化的或任意格式的字段,从一定意义上来说,具有
良好的用户体验。然而,这些海量数据能否被高效的访问, 减少时间和空间的开销。
是影响WebGIS性能的重要因素。 2)关系型数据库通常被部署在高性能的服务器上,价
为了提高地图切片(也叫瓦片)的访问效率,目前大多 格比较昂贵。部署在多台服务器上的关系型数据库,为了
数的解决办法是建立空间索引机制,优化查询等方法。然 保持数据同步,通过依赖互相复制的方法来实现。NoSQL
而,这些方法都没有很好地解决访问效率的问题。由于在 数据库通常使用廉价服务器集群来管理暴增的数据与事务
实际应用中,用户对于数据库高并发读写的需求、对海量 规模,如果有需要只要多增加站点就可以解决,不会影响
数据的高效率存储和访问的需求、对数据库的高可扩展性 到服务的提供。
和高可用性的需求等,传统关系型数据库在这些方面已经 3)NoSQL松散的存储结构可以使得数据的存储更加灵
难以胜任。论文提出基于非关系型数据库(NoSQL)的地图 活和方便,但却很难实现数据的完整性。需要注意的是,
图片存储方案,并对此方案进行实现。 这一不足在Web 2.0的很多应用中并不很重要,因为很多
Web实时系统并不要求严格的数据库事务,对读一致性要
2非关系型数据库(NoSQL)的概述 求很低,有些场合对写一致性要求也不高。
2.1 NoSQL的起源与发展 4)到目前为止,NoSQL一般都是以开源的形式存在,
NoSQL的发展最早可以追溯到1991年Berkeley DB第 它们缺乏供应商技术人员的正式支持。关系型数据库大多
一版的发布。Berkeley DB是一个Key/Value(键/值)类型的 是商业性质的,有很好的售后技术支持和服务,可以很好
Hash数据库。这种类型的数据库适用于数据类型相对简 地保证产品的稳定性。
单,但需要极高的插入和读取速度的嵌入式场合旧-。No- 通过上述的比较我们可以看出,与传统的关系型数据
SQL是一种非关系型的数据存储,它不需要固定的表结构, 库相比,NoSQL非关系型数据库具有存储模式自由、高可
这种数据存储也不会表现出表之间的连接操作。典型的No- 扩展性、高并发读写等优势,但也存在着一些诸如实现数
SQL数据库以key-values的形式存储数据,具有模式自由的 据完整性、缺乏强有力的技术支持等问题。
特点。 2.3 NoSQL数据库的产品
随着Web2.0技术的兴起,传统的关系型数据库在性能 NoSQL基本都是基于Key—values的形式进行存储,它
上似乎遇到了瓶颈问题,对于用户对数据库高并发的读写 是很多非关系型数据存储的集合的总称。我们可以把No.
要求,特别是超大规模和高并发的SNS类型的web 2.0纯 SQL分为以下几种类型:
动态网站的时候更显得不能胜任,这时候非关系型数据库 表1 NoSQL数据库类型
应运而生。很多大公司基于NoSQL的概念开发出了很多实 数据存储方式 NoSQL数据库类型
际可用的数据库,例如,具有代表性的:Apache的Hbase, Wide Colullm Store/Column Families: Hadoop/HBase、Hypertable
Amazon的Dynamo等都取得了显著的应用成效。
Document Stom: CoucbDB、MongDDB

Key Value/Tuple Store: BerkeleyDB、Redis、Tokyo Cabinet

Eventually Consistent Key Value Store: Amazon Dynamo、Dynomite


作者简介:陈超(1986-),男,云南曲
靖人,在读研究生,主要研究方向为地
通过上述几种类型,我们大概可以把NoSQL分为两大
理信息系统开发与应用、WebGIS等。
类:面向文档的NoSQL和键值NoSQL。
E.mail:evedene@163.com
1)面向文档的NoSQL
面向文档的NoSQL有Couch DB、Mongo DB等,其中,
收稿日期:2011-5-20
Mongo DB是一种基于JSON的面向文档的数据库,数据以
基金项目:公益院属基本科研业务费基
BSON格式组织成一个文档,存储在一个集合里¨J。Mongo
金项目(7771014) DB可以将异构数据存储在同一个数据库中,同时其每个数

万方数据
第1期 陈超等一种基于NoSQL的地图瓦片数据存储技术 143

据集合中可以包括不同类型的数据,具有很高的访问效率。 程中为每一图块建立索引。下面分别介绍基于这两种数据
MongoDB自带一个分布式文件系统口J,用来支持海量数据 库的瓦片存储。
的存储;此外,Mongo DB还支持动态查询、完全索引;支 1)基于Mongo DB的瓦片存储
持复制和故障恢复;自动处理碎片,以及支持云计算层次 利用Mongo DB可以存储海量数据、自动分片,以及在
的扩展性等。 系统重启之后,其搭建的持久化缓存层可以避免下层的数
2)键值NoSQL 据源过载的特性,我们将预生成的图片存储于Mongo DB
键值NoSQL有Berkeley DB¨J,Redis等,其中,Berke- 中,并在存储过程中分别为每张图片建立索引。由于Mow
ley DB是一种功能强大、可处理海量数据、支持高并发性 go DB在32位的操作系统上,每个数据库文件的大小最大

和多样性扩展的键值数据库。它可以保存任意类型的键/值 只能为2GB,而在64位的操作系统上则没有限制H J,于是


对,而且可以为一个键保存多个数据。Berkeley D.S其函数 我们把数据库文件控制为2G左右的大小。下面给出利用
库只有300KB左右,却能管理高达256 TB的数据。Berke. Java语言连接Mongo DB的关键代码:
1ey DB不支持复杂的SQL语言,从而避免了大量解析和处 m=
Mongo new Mongo(”192.168.10.125”,
理的开销,它适用于嵌入式应用旧1、实时系统等。 27017);//建立连接
DB db =
毗getDB(”ImageDB0”); //获取数
3地图瓦片数据存储方案
据库,如果没有则创建一个

在实际应用中我们发现,地图数据以海量著称。如何 DBColleetion eoll =db.getColleetion (

有效地组织地图数据,从而使其被高效的访问,是我们必 imageColecfionO”);//获得一个集合
须考虑的问题。在WebGIS中,客户端经常向服务器发送地
图图形数据的请求,为了便于传输和减轻服务器端的压 BasieDBObject record=new BasieDBObject();
力¨J,我们可以建立金字塔式的地图图形瓦片,将瓦片存 record.put(”map_id”,id);
储在NoSQL中,并建立服务器端缓存。客户端只需到缓存 record.put(”Data”,fileSize);
中下载需要的图片。 coil.insert(record); //使用insert方法插入到数据
3.1四叉树切割地图 库中
首先,我们需要对原始数据进行配准和坐标转换。由 2)基于SQL Server 2000的瓦片存储
于我国属于东西延伸的中纬度地区哺1,除1:1000 000之外 为了便于访问,我们将同一层的数据放在同一张表中,
的基本比例尺地形图,均采用横轴墨卡托投影,这也是Ya. 并为每一图块建立索引。下面给出利用Java语言连接SQL
Server 2000的关键代码:
boo及国内众多在线地图服务的数据源投影选择的依据。然
jdbc:

eormectionUrl = sq]server://
后,从左上角开始进行切图,每张瓦片的大小为256×256。 String
192.168.10.125:1433:”+
以后不同等级地图之间采用四叉树分图法,即分辨率每增

”databaseNalne =TileDB:user ma;password
加一级,第£级上的一张瓦片到第£+1级将裂变成4张。
裂变后每一子块采用的编码规则是:按照每一子块裂变成4 =sa;”;

Class.forName(”COIIL microsoft. sqlserver. jdbc.


块,左上、右上、左下、右下,分别用z、菇、”、t表示。
每一子块的编码便是,子块所属父块的编码加上子块在父 SQLServerDriver”);
Connection con==DfiverManager.getConneetion f con—
块中的编号,如图l所示。
在需要显示某个范围的 neetionUrl);
地图时,我们根据如下所示
的地理坐标与图片位置正反 4实验
算公式,即可计算出需要哪
第2缎
些图片。然后,利用客户端 ・<:======3 为了对基于NoSQL的瓦片存储策略,以及并发访问特
技术将这些图片无缝地拼接 性进行性能分析,我们搭建了如下的实验环境。在局域网
图1四叉树切割图 内,我们把数据库服务器部署在一台CPU为Intel(R)Core
在一起,即可得到用户所需
要的地图。 (TM)2 CPU 3.00GHZ,内存3.25G,操作系统为Windows
Server 2003的台式机上;客户端的配置为Intel(R)Core
第L级F笫i行J列位置切片的地理坐标范围计算公式
如下: (TM)2 CPU 3.00 GHZ,内存3.25G,操作系统为Windows
XP的台式机上进行存储实验。由客户端向服务器端发出连
cur删in=XMin+J×者扣, 接请求,分别利用Mongo DB 1.8.1、SQL Server 2000进行
对比存储,并把数据储存在服务器端。我们预先生成了十
curXMax=XMin+(』+1)×者知 (1)
二层数据,每层(L)数据有2L。。×2。’张图片,平均每张图
片大小为25k。预生成的8层、lO层、12层数据量大小分
curYMin=yM强一(“1)×煮簪, 别为:187MB、859MB、5.49GB,得出如图2所示的图表
(取3次实验后的平均结果)。同时,我们测试了两个数据
curⅢax=Ⅲ觚一×煮知 (2) 库的并发访问性能,得出如图3所示的图表。

t『:『掌×m×妒--1(3)
5000 1 600000
已知地理坐标计算出瓦片的行列号,公式如下: 4 500
500 000
4t100

i:『旦堂}1×n×≯一t1 3 500
3 000
400 000

2 500 300000
其中,假设地图等级为从1开始、行列数为从0开始 2000
l 500 200 000
的整数;地图范围的极值用XMin,XMax,YMin,YMax表 1 000
l00000
示;血表示横坐标差,衄表示纵坐标差,r表示向上取 500
0 ,0
整。设第一个等级地图为m行n列,则第L级的地图行列 8层 10屡 12层

数为:行数:m×2。1,列数:nx2。1(£≥1)。 图2瓦片入库时间 图3并发访问


3.2瓦片存储 对比图 测试图
将切割后的地图瓦片以金字塔的形式进行组织,分别
利用Mongo DB和SQL Server 2000进行存储,并在存储的过 (下转第159页)

万方数据
第1期 刘涛等空间线群目标方向相似度计算模型 159

论的补充和完善。论文依据风向玫瑰图的基本原理,在对 学出版社.2006-02第一版:100-113.
空间线群目标的方向特征进行统计制作方向玫瑰图的基础 [4] 王新生.浅谈风玫瑰图在城市规划中的应用[J].武测
上,提出了3种线群目标的方向相似度计算模型,指出各 科技,1994,(3):35—38.
模型的适用范围和优缺点,并以实验对三种计算模型进行 [5] H Freeman,R Shapira.Determining the Minimum—Area

了验证和分析。实验表明论文所提算法比较符合人们的视 Encasing Rectangle for an Arbitrary Closed Curve[J].


觉认知习惯,可用于各种情况下线群目标的方向相似度计 Communications of the ACM,1975,18(7):409413.

算。论文所提算法只考虑了线群目标的几何特征,进一步 [6] 王宝军.基于标准差椭圆法SEM图像颗粒定向研究


的工作考虑加入语义信息的线群目标方向相似度的计算。 原理与方法[J].岩土工程学报,2009,31(7).
[7] 郝燕玲,唐文静,赵玉新,等.基于空间相似性的面实
参考文献
体匹配算法研究[J].测绘学报,2008,37(4).
[1] Goyal R K.Similarity assessment between cardinal direc— [8: M Stricker,M Orengo.Similarity of color images,SPIE95,

tionsI DI.Ph D.Thesis,Orono:NCGIS,Department of San Jose:1—12

spatial information science and engineering,University of [9] 张建方,王秀祥.直方图理论与最优直方图制作[J].


Maine,2000. 应用概率统计,2009,25(2):201.214.
[2] 郭黎,崔铁军,郑海鹰,等.基于空间方向相似性的面 [10]张青年.顾及密度差异的河系简化[J].测绘学报,
状矢量空间数据匹配算法[J].测绘科学技术学报, 2006,35(2):191—196.
2008,25(5):380-382. [11]郭庆胜,黄远林,郑春燕,蔡永香.空问推理与渐进式
[3] 郭庆胜、杜晓初、闫卫阳.地理空问推理[M].北京:科 地图综合[M].武汉:武汉大学出版社.2007:73-76.

Direction similarity calculation model of spatial line groups

Abstract:Three direction similarity calculation models of spatial line groups were proposed in this paper.Spatial line objects’di—
rectional characteristics were counted and the corresponding direction rosette histogram Was built according to the principle of wind

rose.Then the standard deviational ellipse and statistical histogram were buih on this basis.The direction similarity calculation models

based on rosette histogram,standard deviational ellipse,and statistical histogram were built respectively,which were verified by the

experiment finally.
Key words:spatial line groups;direction similarity;wind rose;standard deviational ellipse;statistical histogram
LIU Tao,YANG Shu—wen,LI Yi—kun,DUAN Huan—e(Faculty of Geomatics and Geographic Information System,Lanzhou Jiaotong
University,Lanzhou 730070,China)

(上接第143页) 海量空问数据缓存置换策略[J].武汉大学学报.信息
其中,图2中横轴代表瓦片层数,纵轴代表入库所用时 科学版,2009,34(6):667-668.
间(单位为秒)。从上图可以看出,随着数据量的不断增大, 心2 范凯.NoSQL数据库综述[J].程序员,2010,(6):

1j
DB插入数据量的高效性。在图3中,横轴代表线程
Mongo 76—78.

并发访问数,纵轴代表每并发平均访问时间(单位为毫秒), b3 萨师煊,王珊.数据库系统概论(第3版)[M].北京:
从中我们可以看出随着并发用户的增加Mongo DB所体现的 高等教育出版社,2000:9—10.
高并发访问特性。 H4 Mongo DB官方主页[EB/OL].http://www.mongodh org/

b5 Chang F。Dean J.Etal S.Bigtable:A Distributed Storage


5结束语
System for Structured Data[J].ACM Trans.Computer

本文针对NoSQL独特高效的体系结构、存储机制、索引 System,2008,26(2):l-26.
特点等关键技术,进行了深入研究。重点讨论了利用Mongo №6 刘巍巍,徐成,李仁发.嵌入式数据库Berkeley DB的
DB、SQL Server 2000进行瓦片数据的存储,并通过实验对其 原理与应用[J].科学技术与工程,2005,5(2):86—87.

1J]i
高效性进行了验证,以期为满足日后各种基于NoSQL的应用 口7 李浩松,朱欣焰,李京伟,等.WebGIS空间数据分布式
开发带来一定的启发。同时,如何利用Mongo DB自带的分 缓存技术研究[J].武汉大学学报信息科学版,2005,30
布式文件系统(GridFS)进行海量影像数据的高效管理等问 (12):1092—1095.
题,有待进一步深入研究。 哺8 王金鑫.地理空间数据生产网络的体系结构与关键技
术[J].测绘科学,2010,35(2).
参考文献
汐9 1J 李建松.地理信息系统原理[M].武汉:武汉大学出版
[1] 王浩,喻占武,曾武,等.基于瓦片寿命和访问热度的 社,2006:64-67.

A map tiles data storage technology based on NoSQL


Abstract:This paper described the origin and development of NoSQL,compared the advantages and disadvantages with relational
database,and forward the strategy of map tile data storage based on NoSQL Experiment Was carried out the type of document-
on
put
and Server 2000,and comparative analysis the differences between them in the
oriented NoSQL database products Mongo DB SQL on

tile storage and eoncurrent access


performance.The result could confirm the efficiency of Mongo DB in the mass data storage and con—

current access.

Key words:NoSQL;map tiles;Mongo DB;quadtree;SQL Server 2000


CHEN Ch∞①②。WANG Liang①,YAN Hao—wen②,QIU A-gen①,Id Yu—xiang①,ZHU Fang-fei①(@Chinese Academy of Survey—
100039,China;@School of Mathematics,Physics and Software Engineering,1.anzhou Jiaotong Universi-
ing and Mapping,Beijing

ty。Lanzhou 730070,China)

万方数据

You might also like