声明一下:以下都是以ArcGIS10之前适用,因为ArcGIS10.1在某些方面可能与以前版本有所差别,而且在以下说明中会尽可能的涉及到所有针对ArcSDE的相关知识,并有相关链接,大家可以有选择的去了解。
现在提出关于ArcSDE的学习,显得比较过时,因为现在ArcSDE的处境非常尴尬,因为本人一直从事对ArcSDE产品的研究,所以对ArcSDE这个软件感情颇深,谈不上资深但是对这该软件还算有深刻了解,先特别以需要接触ArcSDE或者对ArcSDE软件概念模糊需要进一步了解的读者以意见参考。
============================关于ArcSDE产品
关于ArcSDE产品,在Esri的ArcGIS9.2已经归结到ArcGIS Server basic版本了,只是因为ArcSDE这个技术比较特殊,所以仍然叫这个名字,而且大家所见到ArcSDE有两个软件体现,一个是嵌入到桌面的Personal ArcSDE,一个是单独光盘的ArcSDE(也就是我们常说的ArcSDE)
关于区别参考:http://blog.csdn.net/linghe301/article/details/6756766
=============================关于ArcSDE理解
怎么理解ArcSDE呢,有人说是中间件,因为它的位置是处于客户端和数据库之间,有人说是空间数据引擎技术,因为所有的数据IO都需要通过ArcSDE的管理,有人说是软件,因为他直观看到的是一张光盘,有人说是一些表,因为安装Post之后,在数据库里面表现的是一些表,其实这些都是可以的,这是不同的用户对ArcSDE不同的理解。
简单理解就是我们的数据导入到数据库中,通过ArcSDE进行管理,怎么说是通过ArcSDE进行管理呢?我们导入到数据库里面所有的要素类、要素类的字段、要素类的投影、要素类的范围都会在安装后ArcSDE的相关Schema进行注册,如果有数据库基础的用户理解不难,这和Oracle的相关字典表是一样的。
我们可以通过arcSDE进行诸如多用户并发操作、历史数据管理、多数据库的同步等等。
=============================关于ArcSDE安装
使用ArcSDE的用户应该比较深刻的体会,这个软件从一开始安装就给大家带来很多麻烦,截至到ArcGIS10之前,ArcSDE是ArcGIS软件家族体系中最特殊的一员,只有他分不同的操作系统(Windows、Linux、AIX、Solaris等),分位数(32Bit、64Bit),结合相关的数据库类型(Oracle、SQL Server、DB2、PostgreSQL等),光看这些名词大家可能就有点望而却步了,所以大家在学习ArcSDE软件之前,要对安装有所了解。
关于安装参考:http://blog.csdn.net/linghe301/article/details/6214641
http://wenku.baidu.com/album/view/0f37c41755270722192ef736
在这里需要说明一下,ArcSDE的安装不仅仅是对ArcSDE的软件安装,更重要的是后面的Post Installation的过程,Post的过程也就是连接到数据库中创建相关的ArcSDE的相关表。
===================================关于ArcSDE连接
如果ArcSDE安装完毕之后,我们第一步就是需要连接ArcSDE,或者说让ArcSDE管理数据,不管是使用ArcCatalog连接,或者是ArcGIS Engine等开发代码连接,其实无疑就是五个参数,如果有相关数据库的基础的话可以类比数据库连接参数。
参数 |
服务连接 |
直连 |
Server |
服务器IP,如果是分布式安装为ArcSDE机器IP |
参考左边 |
Service |
默认5151,参考SDEHOME/etc/Services.sde里面的信息 |
以Oracle为例:sde:oracle11g |
Database |
如果是SQLserver或者DB2、PG需要填写 |
参考左边 |
User |
无需说明 |
无需说明 |
Password |
无需说明 |
以Oracle为例:你的密码@netservidename |
那么说起ArcSDE连接肯定又要说起了ArcSDE直连和ArcSDE服务连接,简单的说,ArcSDE服务连接就是启动ArcSDE服务,其他用户可以远程使用ArcGIS客户端来连接ArcSDE,那么直连也就是不需要启动ArcSDE服务,其他用户通过数据库的客户端来连接ArcSDE,需要说明一下,直连不是说可以不用ArcSDE,它还是需要ArcSDE的相关Schema的。其实对调用来说,不管是ArcGIS Engine,或者ArcSDE SDK,都是一样的,无非把几个参数写上就可以了
另外,如果是不同版本的客户端与服务器端的直连需要有相关的版本兼容性和直连驱动:
http://help.arcgis.com/zh-cn/arcgisdesktop/10.0/help/index.html#/na/002n000000q7000000/
那么怎么选择这两个连接类型呢?
在以下情况下,可能会使用直接连接:
在以下情况下,将不会使用直接连接:
- 如果您的桌面计算机没有足够资源用于处理 ArcSDE 进程,应使用 ArcSDE 服务连接。您可能有一个混合的环境,在这样一个环境中,那些可以管理 ArcSDE 进程的桌面计算机使用的是直接连接,而那些不能管理 ArcSDE 进程的桌面计算机使用的是 ArcSDE 服务连接。
- 如果想充分利用 ArcSDE 64 位的内存管理功能,需要使用 ArcSDE 服务连接。随 ArcSDE 客户端一起安装的直接连接驱动程序(如 ArcGIS Desktop)是 32 位的驱动程序。因此,无法使用与 ArcSDE 64 位地理数据库的直接连接。
- 要使用从客户端到 ArcSDE for Oracle 地理数据库的直接连接,必须在客户端计算机上安装和配置 Oracle 客户端。如果不想对每台客户端计算机都进行配置以使用直接连接,可改为使用 ArcSDE 服务。
==============================关于ArcSDE参数
ArcSDE的参数在好几个方面体现:
有关于数据组织存储方面的 SDEHOME/etc/dbtune文件里面
有关于ArcSDE参数设置方面的 SDEHOME/etc/giomgr.def文件里面
这些参数都可以对我们以后的ArcSDE性能起到关键作用
一把来说,在ArcGIS10之前,我们可以在Post的时候将已经组织好的相关参数文件直接加载过去,使新的ArcSDE库之间安装按照该参数文件进行组织,我们也可以使用ArcSDE命令将这些相关的参数进行修改,我们也可以通过修改数据库里面的表对相关参数进行修改。
关于参数方面的,大家需要了解最主要的参数就是Connections了
参考:http://blog.csdn.net/linghe301/article/details/6269815
http://blog.csdn.net/linghe301/article/details/6652722
=============================关于ArcSDE命令
接着上面的题目,我们可以使用ArcSDE命令来将相关参数进行修改,这远不是ArcSDE命令的价值体现,ArcSDE命令是一个ArcSDE管理员必须具备的相应素质,他可以在不使用ArcGIS客户端软件的基础上对ArcSDE的相关指标进行体现,对ArcSDE的相关性能进行简单的优化,更是非Windows操作系统,非GUI环境下的必经之路,所以ArcSDE的学习也是很有必要的。
参考:http://wenku.baidu.com/album/view/88b30ad276a20029bd642d37
http://help.arcgis.com/en/geodatabase/10.0/admin_cmds/Support_files/admincmdref.htm
=============================关于ArcSDE存储
其实现在说起ArcSDE存储以及意义不大了,如果是ArcSDE9.3我们还可以说说BLOB、ST_GEOMETRY、SDO_GEOMETRY的存储对比,随着ST_GEOMETRY存储的普遍使用,已经成为默认的一种高效的存储格式,特别是对SQL直接操作ST_GEOMETRY来说,还是需要提一下,SQL操作,顾名思义与我们COM的ArcGISEngine对比就是我们不需要使用ArcGIS接口对数据进行操作,我们之间使用SQL语句的增删改对空间数据进行操作,这样的好处是突破了ArcGIS的种种障碍限制,在特定的环境下特别是用户的数据都是简单的点线面方面,而且业务只有相关的编辑方面,无需版本要求,SQL操作显得非常便捷直观,在操作中其实也降低了操作人员的GIS门槛,但是高利益和高风险并存,那就是你跳出了种种桎梏,就意味着可能遇到莫名的问题,这需要在实际实践过程中不断积累经验来解决。
关于SQL操作:
SQL访问Geodatabase |
|
为了能够最大程度的提高空间数据库访问效率,使用SQL 来直接操作空间数据库的需求越来越大。该讲座主要包括使用SQL语句访问Geodatabase的系统表,使用SQL语句访问版本数据和非版本数据的相关原理、操作过程以及注意事项,而且会对相关的访问效率进行的解释与说明。 |
预备知识:了解Geodatabase10的Schema、RDBMS、ArcSDE基础、ArcGIS版本原理 |
=============================关于ArcSDE用户
关于这一点其实就是说说sde管理员,在安装ArcSDE后Post时我们需要创建一个SDE管理员,默认都是sde/sde希望大家不要更改,因为这是一个标识,改了可能其他维护人员就不知道了。这个用户是有相关的创建Schema和升级Schema的权限的,至于什么权限大家可以在SDEHOME/tools/oracle/createsdeoracle.sql查看。
我们在很多方面都需要使用SDE管理员用户,按照标准的软件工程流程来说,我们创建用户、数据库备份恢复、ArcSDE服务维护、ArcSDE参数调整等都是有该用户来管理的。还有我们后面会讲到的版本压缩等也需要ArcSde管理员来管理。
==============================关于ArcSDE的表结构
ArcSDE9与ArcSDE10的Schema发生了比较大的变化,这个Schema包含Geodatabase的相关表、ArcSDE的相关表、其他表。
ArcSDE10结构参考:http://wenku.baidu.com/view/e6df246e58fafab069dc02c4.html
==============================Geodatabase高级应用
一般的Geodatabase的高级应用于ArcSDE关系比较紧密,所以我们对ArcGIS版本、归档、同步复制等高级对象的操作以及原理也需要了解
参考:http://wenku.baidu.com/album/view/35e02c0c844769eae009ed36
==============================ArcSDE性能调优
这一点也是ArcSDE老掉牙但是又无法让人启齿的问题了
参考:http://blog.csdn.net/linghe301/article/category/882207
==============================其他
为什么ArcSDE难学,因为这个软件与操作系统、数据库相关,特别是非Windows或者Oracle,这些门槛也比较高,有些问题其实大部分是数据库的问题,但是用户可能对这些不太熟悉一般都以为是ArcSDE的问题,所以我们在学习ArcSDE也同时要对数据库方面有更深入的理解才能在实际过程中来分析ArcSDE的相关问题,理解ArcSDE的相关机制。
以上是给新入门ArcSDE的用户在看到ArcSDE摸不着头脑,毫无头绪的情况下提供相应的学习指导,本文没有具体的说明,但是相关链接都是以前相关方面的总结,以供大家参考!