如果我理解正确的话,ArcSDEQuerier使用Esri遗留ArcSDE阅读器连接到SDE,因此是一种遗留转换器。将其更新为使用较新的SDE阅读器是否有意义?如果不是这样,我认为在Esri Legacy SDE阅读器中至少添加FME 2015中添加的“Populate from Connection File”选项是有意义的。前几天,我花了30分钟才想出如何设置连接的实例字符串,直到我在阅读器中看到这个选项并从那里复制了它。
我们的许多ArcSDE连接都是OS身份验证,而不是用户名/密码。如何使用ArcSDEQuerier连接到SDE实例?ESRI Geodatabase读写器似乎使用了一个连接文件,但是查询器没有使用。
通常接收一组数据,其中包含要对企业地理数据库进行的更改。附件的工作区显示了如何使用引入的功能来更新,从地理数据库中插入或删除数据。更改后的功能在Excel电子表格中,其中一页包含要更新的功能,或者,如果它们不存在,并且第二个工作表包含有关要删除的特性的信息,则插入。
因为地理数据库没有版本控制,我们可以使用SQLExecutor从底层表中提取数据,因为没有与此数据关联的添加/删除表。然后,SQLExecutor使我们能够查看该特性是否已经存在——在这种情况下,它是一个更新,还是作为一个插入的新特性。
在清理传入数据之后,fme_db_operation属性被分配正确的值,并将特性传递给编写器。
确保将写入器上的写入器模式参数设置为UPDATE,并指定将REFID用作匹配更新的字段。
删除操作可以通过使用ArcSDEQuerier来处理——同样,因为地理数据库表没有版本控制,所以不需要担心添加/删除表。
SQLExecutor用于检测特性是否已经存在——这也提取了现有记录的OBJECTID字段。然后ArcSDEQuerier可以使用OBJECTID字段删除现有记录。当SQLExecutor和ArcSDEQuerier使用的属性也在底层数据库中建立索引时,性能会得到很大的改善。
There are two attached template files - the Load_Data.fmwt loads some sample data into your Esri Geodatabase (ArcSDE).The Update_Insert_Delete.fmwt has the workspace,连同一些样本源数据,这显示了这个过程。
有关使用fme_db_operation的更多信息,请参阅本文使用FME format属性fme_db_operation进行增量数据库更新