GDAL2.1增加支持Mongodb存储空间大数据
随着空间数据越来越渗透到社会生活的各个方面,大数据提供服务的能力有待增强。如全国地理国情普查数据,仅空间矢量数据一个省数据量在30GB左右,影像更在TB级,全国数据量就更不得了,传统的集中存储模式如果在几个部门间使用还凑合,在十几个部门,成千上万次服务请求并发的情况下,难以为继。为此尽早使用互联网思维,采用集群并发处理的模式处理空间数据,提供必要的统计分析为当务之急。为此本文探讨了如何使用Mongodb存储空间大数据,从最基本的数据入库存储开始。
1目录
1.1 gdal2.1增加支持Mongodb空间数据库连接
1.2 必要模块编译
1.3 使用虚拟机和主机建立虚拟局域网构建分布式数据库作为实验
1.1 GDAL2.1特性
GDAL作为空间数据众多格式的桥,被很多成熟的商业空间数据库所采用。高度抽象的数据驱动模型,更容易添加新的数据格式驱动,并且屏蔽数据物理存储,使得系统设计开发人员针对数据逻辑进行必要操作。GDAL2.1添加了Mongodb数据空间模块支持,很好的将Mongodb空间数据存储特性、分布式存储、自动负载平衡结合到一起,这样通过Mongodb将空间数据暴露给系统设计开发人员,获得了较大的设计自由度。
1.2
gdal支持mongodb编译参数
1、scons
2、boost1.55
3、gdal2.1 trunk svn
4、mongo-cxx-driver C++客户端legacy-1.0.2代码下载
1)编译命令行:
C:\Users\zjz\Desktop\mongo-cxx-driver\legacy-1.0.2>scons --32 --cpppath=c:\local
\boost_1_55_0 --libpath=C:\local\boost_1_55_0\lib32-msvc-10.0 --dynamic-windows
--sharedclient --prefix=C:\local\mongo-client-install install
2)编译GDAL2.1 ,在nmake.opt 中寻找注释行,如下;采用非插件模式(即DLL动态调用方式)
# Uncomment for MongoDB support
# This configuration is valid for a libmongoclient built as a DLL with: scons.bat --32 --ssl --dynamic-windows --sharedclient --prefix=c:\users\even\dev\mongo-client-install --cpppath=c:\users\even\dev\boost_1_55_0_32bit --libpath=c:\users\even\dev\boost_1_55_0_32bit\lib32-msvc-10.0 install
MONGODB_PLUGIN = NO
MONGODB_INC = C:\mongo-client-install\include
# Boost library names must be edited to reflect the actual MSVC and Boost versions
BOOST_INC = C:\local\boost_1_55_0
BOOST_LIB_PATH= C:\local\boost_1_55_0\lib32-msvc-10.0
MONGODB_LIBS = c:/mongo-client-install/lib/mongoclient.lib $(BOOST_LIB_PATH)\libboost_thread-vc100-mt-1_55.lib $(BOOST_LIB_PATH)\libboost_system-vc100-mt-1_55.lib $(BOOST_LIB_PATH)\libboost_date_time-vc100-mt-1_55.lib $(BOOST_LIB_PATH)\libboost_chrono-vc100-mt-1_55.lib
1.3 win7上安装virtualbox 虚拟linux系统,安装ubuntu32位
与主机虚拟mongodb跨系统集群
切片存储geodatabase数据库
采用gdal2.1 mongodb driver驱动读写geodata
存储大数据,如30GB湖北省地理国情普查数据库,存储效果图如下,在MongoVUE中连接显示如下:
下一章将介绍如何在集群中配置数据库存储。
相关文章
1)ArcGIS plugin 支持Mongodb数据库存储空间大数据
2)GDAL1.11.1 支持PostGIS、ArcGIS模块
3)构建基于PostGIS空间信息查询系统
4)在虚拟机安装Linux系统与主机联合构建分布式空间数据存储环境