span8
span4
要求FME 2016.1或更高
FME 2016.1及以后版本能够从企业地理数据库(ArcSDE)中提取差异(或增量)。关键功能是:
本教程着重于从事务版本化的地理数据库中提取差异。然而,在阅读历史档案时,其原则是相同的。
如果你不熟悉Esri地理数据库版本或存档,那么以下链接将是有用的:
版本控制只在企业地理数据库(ArcSDE)中可用。
能够从地理数据库中提取差异(或增量)允许您将地理数据库与组织中的其他数据库进行复制或同步。
版本化的地理数据库通常具有如下层次结构:
在ArcCatalog中,它看起来像:
ESRI Geodatabase (ArcSDE Geodb) Reader参数对话框有几个参数,这些参数控制可以从版本中提取的不同数据(参见FME用户文档更多的细节)。参考下面的Geodatabase读取器参数的图像…
如果您希望可视化地理数据库中的增量,那么在FME数据检查器中也可以使用这些参数。
请注意:如果您想运行本教程中讨论的示例,请参阅本教程末尾的附录并遵循示例设置说明。
用于提取差异的FME工作空间非常简单。本例将水务数据从地理数据库(ArcSDE)转换为PostGIS。工作流的关键部分是基于已发布的参数:亚搏在线
在本例中,数据是从事务版本esri读取的。WaterUpdates3 and compared against the Baseline Transactional Version sde.DEFAULT.对于PostGIS编写器,PostGIS表处理:使用现有的方法,即PostGIS表已经存在,我们将向这些表添加增量。
以下三张来自FME Data Inspector的图片说明了Esri地理数据库版本的状态:
图1:原始数据- sde。默认版本
图2:编辑过的水管数据- esri。WaterUpdates3版本
图3:esri之间的差异。WaterUpdates3和钻。默认版本
你在图片中看不到被删除的物体,因为它们没有几何形状。但是,它们被记录在FME数据检查表查看器和功能信息窗口:
注意,fme_db_operation属性被设置为DELETE。
当您从Geodatabse事务版本或归档中提取差异时,FME会自动将fme_db_operation属性设置为插入、更新或删除。大多数FME数据库写入器支持fme_db_operation对数据库进行增量更新。这意味着将delta推入目标数据库非常简单。有关如何使用fme_db_operation的更多信息,请参阅本文使用FME格式属性fme_db_operation进行增量数据库更新。
Geodatabase Reader有一个子版本参数,可以用来创建下一个版本进行编辑。在本例中,我们将读取esri之间的差异。WaterUpates3和sde。默认的版本。如果我们将子版本设置为WaterUpdates4,那么FME将创建新版本,这将是您在地理数据库中进行下一轮编辑的起点。这允许您设置一个数据复制工作流:提取差异,创建新版本,在新版本中进行编辑,下一轮的差异,等亚搏在线等。
使用历史档案与上面描述的事务版本非常相似。Geodatabase阅读器参数对话框有几个参数(在上面的参数对话框图像中标记),它们控制可以从存档中提取的不同数据:
当从版本化的地理数据库中提取差异时,FME使用了公共祖先的概念,因此所有的差异都基于您使用的两个版本的公共祖先。因此,在版本化的地理数据库中提取不同分支之间的差异不是一个好主意,如下所示:
-你可能会得到无法预料的结果!
如果希望运行上述示例,则可以使用以下步骤将示例数据加载到您自己的地理数据库(ArcSDE)环境中。使用包create-differences.zip。如果您不熟悉使用版本化的地理数据库,那么您可能希望回顾本文在ArcGIS中编辑版本数据。
使用图中显示的版本层次结构:
请注意:你不能创建所有的版本然后加载它们,你必须创建,加载,创建,加载等等。
一旦将示例数据加载到版本中,就可以使用FME提取差异。您可以使用FME数据检查器来查看结果,或者使用工作区Geodb_to_PostGIS_Replication。fmw来运行一个复制场景。工作区具有描述步骤的注释。
©2019安全亚搏在线软件公司法律