# 地理数据库配置

绝大部分用户手上都有比较成熟的空间数据或者数据库资源。这些已有的数据资源如何添加到MapGIS平台中进行管理?在本章节中,我们将带领用户寻找解决方法。

我们可以把数据归至三类:

①MapGIS的.hdf或.hdb文件数据库数据;

②符合MapGIS数据模型规范,但存储在DBMS上的数据库数据;

③其它地理信息系统的文件数据。常用的地理数据(如.shp、E00)可以直接添加到平台中进行查看和处理,较特殊的数据则必须通过数据中间件的方式读取。(注:平台标准版并不支持中间件)

我们将根据上面的归类,分别描述这些数据是如何添加到MapGIS平台中进行管理的。此外,还将介绍相关配置信息的设置方式。

# 相关主题

# 地理数据库检查

在进行地理数据库的附加之前,一般要检查该数据库的合法性。在MapGIS GDBCatalog目录中,提供了地理数据库检查工具:

地理数据库检查工具用来检查地理数据库的信息,输出错误报告供用户检查GDB,还可以浏览GDB的分配状态、数据库压缩。

地理数据库检查功能包括:

  • 对HDF/HDB的检查校正功能。该工具将检查数据存储器,并校正其中的非致命错误;

  • 对HDF/HDB的状态进行浏览的功能。该工具将显示数据存储器中数据分布、页面内容及内部数据文件(IDFile)的状态;

  • 对HDF/HDB的压缩功能。该工具将把数据存储器的各个组成文件截断到正好能存放所有内部数据的大小。

提示:

数据库压缩/检查的时候,被压缩/检查的HDF/HDB数据库必须先注销,否则无法进行处理,系统会给出提示:

# 附加基于HDF文件的地理数据库

为便于数据库的存储管理,在MapGIS 10中,与K9相同,本地数据库是以.hdf的格式存储的。针对数据库的附加,根据不同的需求,可以进行单个数据库的附加,也可以批量附加。当数据量比较大,并且存储在多个数据库中时,使用批量附加数据库的功能为数据的查阅和管理提供了很大的方便。

以下将分别介绍附加数据库时,单个附加和批量附加的具体操作说明。

# 单个数据库的附加

# 操作说明

1. 在MapGISLocal节点上右击,选择“附加数据库”;

2. 在弹出的对话框中选择数据库所存放的路径;如果有“数据库日志”文件,则将日志文件添加进来,如果没有可忽略此项;“数据库名称”,用于显示在MapGIS GDBCatalog目录树上,可作为别名来考虑。

提示:

建议数据库名称与.hdf文件名称保持一致,否则用户必须得通过查看hdf数据库的属性才能知道当前所操作的数据库归属于哪个.hdf文件。

# 批量数据库的附加

# 操作说明

1. 在MapGISLocal节点上右击,选择“批量附加数据库”。

2. 在“批量附加地理数据库”对话框中,单击“添加”按钮,添加要附加的地理数据库文件。可以通过“移除”按钮移出不需要附加的地理数据库。

提示:

添加文件支持每次都定位到上一次打开文件的位置。

# 附加基于HDB文件的地理数据库

随着GIS业务不断发展,对本地数据格式的共享、拷贝迁移、数据读写效率、文件加密、支持事务机制等都提出了新的要求。为此MapGIS平台特推出了新版的本地文件型地理数据库数据格式HDB。

HDB空间数据格式在MapGIS软件中组织在“MapGISLocalPlus”数据源下,意作原MapGIS本地型空间数据引擎“MapGISLocal”的升级。HDB空间数据格式具有以下特点:

(1)轻量、不依赖存储服务,使用方便;

(2)提升了数据的稳定性,断电等极端情况依然可保证数据的安全;

(3)支持事务,可实现数据编辑的原子性提交和撤销;

(4)支持数据加密和解密,可以对文件整体加密,适应需要数据保密的特殊场景。

以下将分别介绍附加数据库时,单个附加和批量附加的具体操作说明。

# 单个数据库的附加

# 操作说明

1. 在MapGISLocalPlus节点上右击,选择“附加数据库”;

2. 在弹出的对话框中选择数据库所存放的路径;如果有“数据库日志”文件,则将日志文件添加进来,如果没有可忽略此项;“数据库名称”,用于显示在MapGIS GDBCatalog目录树上,可作为别名来考虑。

提示:

建议数据库名称与.hdb文件名称保持一致,否则用户必须得通过查看hdb数据库的属性才能知道当前所操作的数据库归属于哪个.hdb文件。

# 批量数据库的附加

# 操作说明

1. 在MapGISLocalPlus节点上右击,选择“批量附加数据库”。

2. 在“批量附加地理数据库”对话框中,单击“添加”按钮,添加要附加的地理数据库文件。可以通过“移除”按钮移出不需要附加的地理数据库。

提示:

添加文件支持每次都定位到上一次打开文件的位置。

# 附加网络地理数据库

MapGIS GDBCatalog目录下只默认列出了本地数据源MapGISLocal、MapGISLocalPlus。本地数据源MapGISLocal/MapGISLocalPlus是系统默认的数据源,与本地.hdf/hdb格式的地理数据库建立连接,该数据源不可更改或删除。

在实际应用中,为了统一管理数据,用户往往会将数据存放在Oracle、SQL Server等网络数据源。在附加网络数据库前,要先将相应的网络数据源添加到MapGIS GDBCatalog目录树节点上。所以用户首先得确认DBMS产品,以及DBMS系统上是否已经存在符合MapGIS数据模型的网络数据库。

附加网络数据库基本流程:

# 操作说明

下面以创建SQL Server数据源为例,讲解附加Oracle/SQL Server数据库的全过程。

提示:

附加基于SQL SERVER数据源的数据库前,无需对SQL Server数据库端进行特殊的配置,只需要在MapGIS中配置SQL SERVER数据源。其他数据库,如Oracle、DB2、MySQL就需要先配置数据库客户端。

一、配置Oracle/SQL Server数据源

1. 在MapGIS GDBCatalog目录上方,单击(“客户端配置管理”按钮),弹出“客户端配置管理”对话框;

2. 在“数据源”页面上,点击“添加”,弹出“添加数据源”对话框。以创建SQL Server数据源为例,在弹出对话框中选择需要创建的数据源类型“SQL SERVER数据源”;选择SQL Server数据源的“服务名称”和“数据源名称”;最后单击"确定",相应数据源服务就被添加到“客户端配置管理/数据源”页面的列表中;

3. 在“数据源”页面上,选中新添加的数据源,点击“测试”,在弹出的窗口中输入用户名和口令验证创建的数据源是否可以连接到对应的服务器,若连接成功,说明该数据源可以正常使用;若连接失败,请确认连接口令或服务名称是否正确;

同样的方法,可以添加基于Oracle的数据源、基于MySQL的数据源、基于DB2的数据源。不同类型的数据源表明客户端和服务器端的不同连接方式,这些方式通过不同类型的数据传输协议来工作,通过这些数据源,可以访问MapGIS支持的各种类型的数据服务器上的数据,这些数据既可以是本地的也可以是远程的。

二、附加数据库

1. 在MapGIS GDBCatalog目录树上,右键要附加SQL Server数据库的数据源,在其右键菜单中,选择“附加数据库”项,弹出“附加地理数据库”对话框;

2. 在“附加地理数据库”对话框中,在“数据库”的下拉菜单中,选择SQL Server服务器下创建的数据库,单击"确定",完成附加。

其他SDE数据库的附加方法与步骤可以参考SQL Server数据库的附加。

提示:

1. 目前,还不能对网络数据库进行批量附加。

2. 该附加功能仅支持对数据库服务器中有效的,且尚未附加过的数据库使用。所谓“有效”的地理数据库,是指已经结构化、序列化的地理数据库,包含有MA表和MF表。即用户在SQL Server服务器中自己创建的一般数据库不能进行直接的附加。

3. 无主地理数据库“MPDBMASTER”时,不能完成附加操作。

# 配置管理

通过MapGIS GDBCatalog中的“客户端配置管理”可以设置客户端各种文件目录,设置客户端各项性能参数,及添加MapGIS数据源,这些配置是MapGIS 10应用的基础环节,是确保正确高效运行MapGIS 10的必要条件。

在MapGIS GDBCatalog视窗上方,单击(“客户端配置管理”按钮),将弹出“客户端配置管理”对话框(如下图所示)。

一、“目录设置”参数说明

“目录设置”页面中记录了MapGIS常用工作目录路径,默认为安装路径下。

  • 【工作目录】:设置MapGIS的工作目录。工作目录是用于选取和保存数据(如地理数据库、地图文档等)的目录;
  • 【字体库目录】:MapGIS字体库文件所在目录。缺省为MapGIS安装目录下的Clib目录;
  • 【系统库目录】:MapGIS符号库、颜色库文件所在的目录。缺省为MapGIS安装目录下的Slib目录;

提示:

MapGIS矢量地图符号化显示的基础是符号库,因此此信息必须正确设置。

  • 【系统临时目录】:存放MapGIS运行过程中所产生的临时文件的目录。系统正常退出时,这些临时文件会自动删除;非正常退出则可能仍保存在磁盘上,但他们已经不再有用,用户可以随时删除。建议用户定期检查该目录,删除不必要的文件;
  • 【多媒体数据目录】:存放MapGIS多媒体数据的缺省目录。MapGIS多媒体属性数据在属性中记录的通常是多媒体数据文件的路径,实际数据存放在数据目录下。注意目录支持的最长路径为128个字符;
  • 【6x系统库目录】:MapGIS 6x符号库、颜色库文件所在的目录。缺省为MapGIS安装目录下的Slib目录;
  • 【6x字体库目录】:MapGIS 6x字体库文件所在目录。缺省为MapGIS安装目录下的Clib目录。

二、“配置信息”参数说明

“配置信息”页面中用以设置MapGIS 10系统运行时客户端的缓冲模式、规模及字段显示方式:

  • 【客户端缓存规模】:当“客户端缓存模式”为“限量淘汰”时,对缓存内存用量进行配置。

  • 【是否缓冲图形】:在客户端缓存图形信息可以避免系统频繁的访问服务器以提取相关信息,从而在一定程度上提高系统的速度和性能。缺省情况下,都勾选了“是否缓冲图形信息”一项。

  • 【客户端缓存模式】:客户端缓存可以有不同模式,包括“无”、“不限制”、“限量淘汰”、“用户自定义”四种。用户需要根据数据安全性及系统性能的要求进行权衡。

    • 无:提供较低的系统性能,但却有较高的安全性,适合成块的频率不高的读写操作;
    • 不限量:是客户端对数据的操作完全缓存在客户端,适合数据量小,但性能要求高的情况。
    • 限量淘汰:采用额定的缓存分配策略,在系统缓存资源不足时,通过淘汰部分页面,实现空间复用,适用于大量数据的缓存,并有较好的性能。
  • 【字段显示方式】:属性记录列表中的属性列可以选择使用“字段名称”或者“字段别名”作为列名。

  • 【数据名称显示方式】:在GDBCatalog中数据名称的显示方式,默认为“显示类名”,用户可切换为“显示别名”。

  • 【结果集缓存大小】:系统提供“低”、“中”、“高”三种缓存大小选项。

    • 低:“低”为5M,适用并发进程较多的场景;
    • 中:“中”为50M,适用并发进程较少,及其性能较好的场景;
    • 高:“高”为500M,适用机器性能非常好,机器内存大的场景。
  • 【PG数据源连接池】:连接PostgreSQL数据源相关设置。

    • PG数据源连接池的最大连接数:当MapGIS通过多进程方式访问PostgreSQL数据库时,可自动增加连接数,提升PostgreSQL数据的读取效率。此处设置可提升至的最大连接数。

    • PG数据源连接池的最小连接数:当MapGIS程序通过多进程方式访问PostgreSQL数据库时,可自动增加连接数,提升PostgreSQL数据的读取效率。若此时不再执行访问PostgreSQL数据库访问相关操作,且超出PG数据源连接池最长空闲时间时,可自动减少连接数至此设置值。

    • PG数据源连接池的初始连接数:当MapGIS程序通过单程方式访问PostgreSQL数据库时,默认的连接数。推荐最大值为CPU总线程数*5,默认值为1。

    • PG数据源连接池的最长空闲时间:当MapGIS程序不执行访问PostgreSQL数据库访问相关操作,可认为此时处于空闲时间。设置最长空闲时间,有利于及时释放PostgreSQL数据库的连接数资源。

    • PG数据源连接池的最长等待时间:连接PG数据源时最长等待时间,若超出时间还未有数据返回,则显示空图。

提示:

1. 此配置信息记录在"MapGIS安装目录\Program\Config\DataManage\DataManage.ini"文件中。同一个环境的Desktop和IGServer产品共用一套参数配置信息。

2. 对于数据的读取,连接数越大,越有利于数据读取效率。PostgreSQL数据库会有一个最大的连接数,当所有客户端占用连接数大于最大连接数时会导致部分客户端连接PostgreSQL数据库异常。

3. 每一个MapGIS Dekstop应用程序相当于一个客户端,MapGIS IGServer每一个DCS都是一个客户端。通过数据库连接工具连接PostgreSQL数据库后,可通过如下查询语句来查询连接数的使用情况。

show max_connections;

select * from pg_stat_activity;

select * from pg_stat_activity where not pid = pg_backend_pid();

  • 【MySQL数据源单用户占用连接数】:推荐值为CPU总线程数*5,默认值为10。
  • 【MapGISLocalPlus数据源单用户占用连接数】:推荐值为CPU总线程数*5,默认值为60。
  • 【MapGISLocalPlus数据源数据上载模式】:系统提供“快速模式”和“安全模式”两个选项,默认选择“安全模式”。
    • 安全模式:安全上载模式下,在上载过程中出现断电或系统崩溃等问题时,可保证数据的安全性。
    • 快速模式:快速上载模式下,在断电或系统崩溃的场景下不保证数据的安全性,并且不支持多线程,但上载速度是安全模式的2~3倍。
  • 【KINGBASE数据源单用户占用连接数】:推荐值为CPU总线程数*5,默认值为10。
  • 【DM数据源单用户占用连接数】:推荐值为CPU总线程数*5,默认值为32。
  • 【HighGo数据源连接池】:HighGo数据连接参数设置,可参考"PG数据源连接池"设置。
  • 【PolarDB数据源连接池】:PolarDB数据连接参数设置,可参考"PG数据源连接池"设置。
  • 【ArcSDE数据源连接池的最大连接数】:推荐值为CPU总线程数*5,默认值为10。
  • 【Sqlite数据源连接池的最大连接数】:推荐值为CPU总线程数*5,默认值为60。
  • 【Yashan数据源单用户占用连接数】:推荐值为CPU总线程数*5,默认值为2。
  • 【PG瓦片连接池】:PostgreSQL中瓦片数据连接参数设置,可参考"PG数据源连接池"设置。
  • 【MongoDB数据源连接池】:MongoDB中数据连接参数设置,可参考"PG数据源连接池"设置。

三、“数据源”参数说明

“数据源”页面下只默认列出了本地数据源MapGISLocal/MapGISLocalPlus。本地数据源MapGISLocal/MapGISLocalPlus是系统默认数据源,用于和本地HDF/HDB地理数据库建立连接,该数据源不可更改或删除。

另外,使用添加“数据源”功能可以添加SDE数据源,如:Orcale、SQLserver、DB2、DM、MySQL、KingbaseES等数据源。添加SDE数据源后,可以在MapGIS GDBCatalog目录树上看到对应的数据源节点。各具体操作可查看“创建地理数据库”。

  • 【添加】:用于将各类SDE以及中间件的数据源添加到MapGIS GDBCatalog目录树上。
  • 【测试】:添加数据源后,用于测试客户端与SDE数据源是否可以正确连接。
  • 【删除】按钮,用于移除不需要的数据源。删除数据源并不会对数据源中所管理的数据库进行删除;仅将该数据源从MapGIS GDBCatalog目录树上移除。

四、中间件

“中间件”页面中显示了已注册的中间件信息,默认情况下注册了“跨平台ArcSDE”、“跨平台FileGDB”、“跨平台PersonalGDB”三种中间件,具体使用方法可参考“矢量数据中间件”。