MongoDB在SuperMap产品中的使用

作者:Emily

相信很多人都听说过MongoDB,对于MongoDB的优劣势就不再赘述,本文从入门的角度来介绍MongoDB的安装布署,以及MongoDB在SuperMap中的应用。

安装布署

下载

下载地址:http://www.mongodb.org/downloads
相关文档:http://www.mongodb.org/display/DOCS/Tutorial

文件解释

MongoDB在SuperMap产品中的使用_第1张图片

数据库启动

  MongoDB启动非常简单,就两步:创建日志及数据文件夹、启动服务。在创建日志及数据文件夹后,在MongoDB的bin文件夹内启动运行窗口并执行如下语句:
    mongod --logpath D:\MongoDB\logs\MongoDB.log --logappend 
    --dbpath D:\MongoDB\data –directoryperdb
    –port 27010
    第一行:指定日志文件D:\MongoDB\logs\MongoDB.log,且日志是以追加的方式输出的
    第二行:指定数据文件目录D:\MongoDB\data,并且参数--directoryperdb说明每个DB都会以数据库名新建一个文件夹
    第三行:指定服务端口,默认端口是27017
    输入以上语句并按下回车键后,MongoDB的服务已经启动。

系统服务注册

    每次通过命令启动比较麻烦,可将MongoDB注册为windows系统服务,注册语句仅仅是在服务启动语句后加了两项,具体如下:
    mongod --logpath D:\MongoDB\logs\MongoDB.log --logappend --dbpath D:\MongoDB\data –directoryperdb –port 27010 –serviceName MongoDB –install
    通过如上语句,MongoDB服务已启动且注册为windows系统服务,每次可通过系统服务来启动和停止。

安全认证

    MongoDB数据库在默认情况下没有用户名及密码,不用安全验证的,只要连接上服务就可以进行CRUD操作。
    如果需要给MongoDB数据库使用安全验证,则需要用--auth开启安全性检查,分两种情况操作:
    1.  MongoDB已经注册为windows服务
        修改注册表,搜索HKLM——SYSTEM——ControlSet001——Services——MongoDB,将ImagePath值末尾加上【-auth】;
    2.  通过命令启动MongoDB
        在命令末尾加上【-auth】。
    在安全验证模式下,创建一个库后,需要给这个库赋予用户名密码,并在登录后进行安全验证,在不进行安全验证情况下任何操作都会提示错误,如下图所示:

数据库监测

    除服务器和客户端外,bin文件夹内的mongostat也非常重要,可以说是运维人员的福音。
    操作:运行窗口输入mongostat –host 主机IP –port 端口号
    结果:除增删改查外,flushes这一项也至关重要,通过计算两个1之间的间隔时间,可以大致了解多长时间flush一次

常用命令


其他操作可以通过下面要介绍的客户端工具MongoVUE来实现。

客户端工具

比较推荐MongoVUE,如果经常使用关系型数据库,在MongoVUE中操作MongoDB会比较得心应手。下载地址:http://www.mongovue.com/

MongoDB在SuperMap中的应用

    目前SuperMap产品有三处使用到了MongoDB:
    1. iServer分布式切图
    2. 桌面二维地图创建缓存
    3. OSGB数据保存到MongoDB
    大家可以看到,三处功能都是与缓存相关,这也是利用了MongoDB在缓存数据上的优势。此外,相比原始文件,使用MongoDB存储缓存,对缓存数据的迁移也带来了极大的便利。下面介绍下三处的具体使用,以iServer分布式切图为主。

iServer分布式切图

    iServer进行分布式切图时,推荐利用多个客户端同时出图以达到分布式切图的效果。如下通过详细步骤讲解iServer分布式切图。
    1.发布地图
    iServer分布式切图,主节点中需要将地图先发布为REST地图服务,可以从iServer服务管理器首页快速发布。发布过程按向导下一步即可。
    2.创建切图库
    只需要在主节点创建切图库即可,子节点不需要做任何事情。

MongoDB在SuperMap产品中的使用_第2张图片

MongoDB在SuperMap产品中的使用_第3张图片

    3.加入集群
    子节点作为切图节点加入集群。

MongoDB在SuperMap产品中的使用_第4张图片

    4.切图
    主节点创建切图任务,子节点不需要做任何事情,主节点设置完比例尺等参数之后,任务将自动开始。主节点自动将数据推送至子节点并分派任务。

这里写图片描述
MongoDB在SuperMap产品中的使用_第5张图片
MongoDB在SuperMap产品中的使用_第6张图片

    切图过程可以监控状态,包括切图进度、各个节点已完成的图片数、当前每秒切的图片数等信息。

MongoDB在SuperMap产品中的使用_第7张图片

二维地图创建MongoDB缓存

    1.创建缓存
    在iDesktop中创建MongoDB缓存,相对较为简单,需要在【生成地图缓存】窗口修改【输出设置】即可。
    MongoDB默认设置为无权限访问限制,但在iDesktop创建MongoDB缓存时,需要使用到用户名密码,即需要使用到权限访问限制,还请提前创建。

MongoDB在SuperMap产品中的使用_第8张图片

    2.文件结构
    从MongoVUE可以看到,当我们将二维缓存保存至MongoDB后,对应用户下有多张表,主要是源数据和不同比例尺的瓦片数据。源数据表中主要存储了sci中相关信息,如下图所示:

MongoDB在SuperMap产品中的使用_第9张图片

    从瓦片数据表中,可以看到,该表对该比例尺下图片的存储,与文件夹中png的存储类似,均按行列号来区分,根据指定的行列号存储对应的图片二进制信息。

OSGB数据保存到MongoDB

    1.保存至MongoDB
    在712以后的iDesktop版本中,提供了将OSGB数据保存至MongoDB的功能。

MongoDB在SuperMap产品中的使用_第10张图片

    2.文件结构
    从MongoVUE可以看到,当我们将缓存保存至MongoDB后,对应用户下有两张表,源数据和瓦片数据。

MongoDB在SuperMap产品中的使用_第11张图片

    从瓦片数据表中,可以看到,该表存储了osgb文件名及文件内容对应的二进制流。 

MongoDB在SuperMap产品中的使用_第12张图片

你可能感兴趣的:(mongodb,数据库,supermap)