在 Standard 或 Advanced 许可等级下可用。
当数据分布在多个地理数据库中时,可以提高数据可用性和性能。 数据分布后,它有助于减轻服务器争用,并允许组织在执行编辑的用户与为了执行只读操作而访问数据的用户之间平衡其地理数据库上的负载。
地理数据库复制是 ArcGIS Pro 中的可用数据分布工作流之一。 您可以选择两种地理处理工具来创建地理数据库复本:
- 创建复本 - 使用企业级地理数据库中指定列表中的要素类、图层、数据集和表创建复本。 请参阅如何在在线环境中创建检出复本、单向复本或双向复本,或如何在离线环境中创建复本。
- 从服务器创建复本 - 使用指定的要素类、图层、要素数据集列表,或者来自远程地理数据库(该地理数据库使用在 ArcGIS Server 站点上运行的地理数据服务)的表创建复本。 有关详细的工作流步骤,请参阅如何从 ArcGIS Server 创建复本。
在实施之前,准备要复制的数据时需要考虑以下几个方面。
地理数据库复制要求
要复制的数据集必须满足以下要求:
- 源(父)地理数据库必须为企业级地理数据库。
- 连接到父地理数据库的数据库用户必须具有数据的写入权限。
- 复本中的所有数据集必须来自同一企业级地理数据库。
- 必须针对传统版本化对企业级地理数据库连接进行配置;该连接不能为分支版本连接。
- 如果针对传统版本化注册数据,则无法通过将编辑内容移至基表选项进行版本化。
其他复制要求取决于复制类型:
- 检出/检入复制
- 您可以选择检出非版本化数据或使用传统版本注册的数据。
- 单向和双向复本
- 每个数据集必须具有一个 GlobalID 列。 此列用于保持行在地理数据库之间的唯一性。
- 单向复制
- “父-子”单向复制 - 子复本可以是企业级地理数据库或文件地理数据库。
- “子-父”单向复制 - 子复本和父复本必须都托管在企业级地理数据库中。
- 使用存档追踪复本变更选项的单向复制 - 父复本版本必须为默认地理数据库版本。 在创建复本之前,必须启用数据存档。
不满足这些要求的所有数据集均不会包含在复本中。 有关更多详细信息,请参阅创建复本地理处理工具。 如果任何数据集均不满足要求,则复本创建将失败。
要复制的数据列表将自动扩展为包括相关数据集。 例如,如果选择拓扑或要素数据集中的任何要素类进行复制,则会包括该拓扑或要素数据集中的所有要素类。 有关创建复本时应用附加规则和行为的数据类型和地理数据库功能的信息,请参阅以下内容:
确定要复制的数据集
创建复本的最重要方面之一是确定应复制哪些数据。 创建复本时,您可以选择复制数据集中的所有数据或仅复制数据的子集。 按需计划复制适量的数据。 请考虑复本的生存时间并确保满足您的相应要求。
要复制的数据的元数据在复本创建过程中进行复制。 但是,在复本同步过程中不会应用对元数据所做的更改。
复制所有数据
创建复本地理处理工具允许您复制在复本的图层中包含的所有数据。
注:
对于非空间表,默认行为是仅复制表的方案。 要复制特定表的所有记录,请按照创建要复制的数据子集中的以下步骤指定 SQL 表达式 1=1 作为表上的定义查询。 要将所有表的所有记录复制到子地理数据库复本,请使用创建复本地理处理工具的高级设置部分下的表的所有记录选项。 要复制记录的子集,请设置适当的 SQL 表达式。
创建要复制的数据的子集
有时,您可能只希望复制数据集中要素的子集。 有多种方法可以指定要复制的数据子集:
- 使用定义查询。
- 使用选择集。
- 指定范围。
- 使用几何要素。
根据所使用的任何过滤器确定数据后,即可应用关系类逻辑(如果关系类存在)。 对于关系类中包含的每个数据集来说,会额外添加一些行,前提是它们与复本中的现有数据相关。 有关详细信息,请参阅复制与相关数据。
使用定义查询
定义查询使用 SQL 语法编写,可用于通过过滤要从数据集中检索并显示在图层属性表中要素的方法,来定义将在图层中使用的要素子集。 要复制要素的子集,请按照以下步骤首先在 ArcGIS Pro 中为图层创建定义查询。
由于定义查询应用于地图中的图层,而非随地理数据库中的数据集一起保存,因此您必须将图层从地图“内容”窗格拖动到创建复本地理处理工具中的复本数据集字段,或者从创建复本地理处理工具的复本数据集下拉菜单中选择图层。
注:
请勿使用浏览按钮添加复本数据集。 使用浏览按钮时,不支持对地图中数据的定义查询。
使用选择集
通过选择要素可在地图上高亮显示要素子集,以便在随后的数据探索或数据分析中使用。 选择要素后,可以复制单个要素类和表的选择集。 从创建复本地理处理工具,使用复本数据集下拉菜单,以确保复本内使用了映射中选定的数据集。
指定范围
范围环境设置可用于定义要复制的数据的空间范围。 此设置将仅处理和包括通过指定范围的要素。
即使设置了输出坐标系环境,仍假设所输入的范围位于存储输入数据的坐标系之中。 如果该工具采用了多个输入数据集,则第一个数据集将定义范围的坐标系。
使用几何要素
可以指定包含一个或多个要素的图层,并且该图层中与几何相交或者聚合几何的任何数据都将包含在复本中。 有关如何使用此参数定义复本几何的详细信息,请参阅下一部分中复本几何要素参数的说明。
创建复本地理处理工具参数
以下将介绍创建复本地理处理工具的输入参数。
- 复本数据集 - 要复制数据的子集,可应用定义查询,然后使用下拉菜单将其添加到复本中。 对于其他数据集,浏览到数据集并进行选择,或者,如果图层已存在于地图中,则可使用下拉菜单。
- 复本类型 - 选择检出,单向复本,“子-父”单向复本或双向复本。
- 输出类型 - 要复制数据的输出类型。
- 地理数据库 - 将数据复制到地理数据库。 这是默认设置。
- XML 文件 - 将数据复制到 XML 工作空间文档。
- 数据复制的目标地理数据库 - 如果输出类型为地理数据库并且要复制到本地或远程目标地理数据库,则此参数为必填项。 可通过在 ArcGIS Server 站点上运行的地理数据服务访问远程地理数据库。 浏览到地理数据库或用于接收数据的地理数据服务并进行选择。 如果复本类型为检出或单向,则目标可以是文件地理数据库;否则,必须是企业级地理数据库。 使用此选项将数据复制到地理数据库允许您在在线环境中创建复本。 有关详细的工作流步骤,请参阅如何创建检出复本、单向复本或双向复本。
- 数据复制的目标 XML 文件 - 如果输出类型是 XML 文件且输出 XML 工作空间文档作为 XML 文件,则此参数为必填项。 XML 文件选项支持离线环境,您可以将 XML 工作空间文档发送到目标位置,然后将其导入以完成复本创建。 有关详细的工作流步骤,请参阅如何在离线环境中创建复本。
- 复本名称 - 输入要创建的复本的名称。
高级设置
以下各部分将介绍创建复本地理处理工具的高级设置。
复本访问类型
创建复本时,可为要素信息模型选择以下两个选项:
- 完整模型 - 使用完整模型时,所有简单和复杂的数据类型(例如,拓扑、注记和尺寸要素类)都将被复制到子地理数据库并进行版本化。 这是默认设置。
完整模型假定要素在父复本和相关子复本地理数据库中按同一要素类型进行存储。 例如,如果父复本中的要素类是网络中的交汇点要素类,则子地理数据库中的相应要素类也必须是交汇点要素类。
该选项用于基于 ArcGIS 客户端软件编辑应用程序。
- 简单模型 - 在此模型中,子地理数据库仅包含简单的要素。 使用简单模型时,不复制拓扑、网络数据集、注记和尺寸要素类,也不对子地理数据库中的数据进行版本化。 必要时,可在复本创建后对子地理数据库上的数据进行版本化。
在复制期间,父地理数据库中的非简单要素(例如,宗地结构)转换为子地理数据库中的简单要素。 考虑到两个地理数据库中的要素类型和特征存在差异,在同步期间还将应用其他处理过程。
当子地理数据库通过简单要素编辑器(包括并非基于 ArcGIS 客户端软件的第三方编辑器)进行编辑时,必须使用此选项。 该选项还可用于简化子地理数据库中的数据模型,以便将子地理数据库用于单向复制或在基于 ArcGIS 或 ArcGIS 客户端软件的编辑器中使用。
简单模型具有以下优势:
- 您可以通过非基于 Esri 软件的简单要素编辑器对子地理数据库进行编辑。
- 对于单向复本,子地理数据库上的数据不进行版本化,从而可以轻松地与非 Esri 应用程序集成。
注:
对于拓扑,在使用简单模型时,拓扑对象将从子地理数据库中排除。但会包括所有参与的要素类。 创建复本后,从子地理数据库向父地理数据库发送更改会自动维护父版本中的要素。 在父版本上会进行进一步处理以更新拓扑脏区。
扩展要素类和表
此设置的选项用于指定复本是否包含属于任何扩展数据集类型(例如拓扑、关系类或网络)的表,即复本中的要素类或表参与其中。
- 使用默认值 - 添加属于关联扩展数据集类型的要素类和表。 要素类的默认设置是复制所有与空间过滤器相交的要素。 如果未提供任何空间过滤器,则系统会将所有要素包括在内。 表的默认设置是仅复制方案。
- 仅添加方案 - 将添加扩展数据集中要素类和表的方案,但不添加它们的数据。
- 所有行 - 将添加扩展数据集中要素类和表的所有行。
- 不添加 - 不添加关联扩展数据集中的要素类和表。
复制相关数据
此设置的选项用于指定是否复制与复本中现有行相关的行。 例如,假设复本过滤器内部存在一个要素 (f1),且该过滤器外部存在一个来自其他类的相关要素 (f2)。 如果您选择获取相关数据,则要素 f2 会包含到复本中。
- 不取得关联 - 不复制相关行。
- 取得关联 - 复制相关数据。 这是默认设置。
复本几何要素
复本几何要素选项可用来定义复本几何。
仅注册现有数据
创建复本的过程包括将数据从源地理数据库复制到目标地理数据库,然后在每个地理数据库中注册复本以描述已复制的数据。 对于大型数据集而言,在复本创建过程中将数据复制到另一个地理数据库并注册复本是一项非常耗时的任务。
如果用户的数据集较大或在两个不同的地理数据库中具有相同的数据,则在创建复本时可以使用仅注册现有数据选项。 这样会创建在地理数据库之间同步更改所需的复本版本,但无需经历漫长的数据复制过程,因为在两个位置都已存在该数据。
仅注册现有数据选项可以在创建复本地理处理工具的高级设置下找到。
- 选中 - 如果选中仅注册现有数据,则假定数据已存在于子地理数据库中,并将用于注册复本。
注:
如果选中仅注册现有数据选项,则表的所有记录选项将不可用。
- 未选中 - 如果未选中仅注册现有数据(默认设置),则父地理数据库中的数据将复制到子地理数据库。
注:
必须满足以下所有要求,才能使用创建复本地理处理工具及仅注册现有数据选项。 地理数据库复制要求,以及具有匹配数据集名称和数据集由连接到子地理数据库的用户拥有的要求,是在复本创建过程中进行的唯一验证。 创建复本后,如果之前未满足其他要求,尝试同步复本时会遇到错误。
- 满足地理数据库复制要求,包括基于所选复制类型的其他复制要求。
- 对于单向“子-父”复本和双向复本,子复本上的数据必须注册为版本。
- 由连接到子地理数据库的用户拥有。
- 与父数据库中的数据集名称相同。
- 与父数据库中的数据集具有相同的方案、规则、关系和属性
- 与父数据库中的数据集具有相同的几何类型。
提示
在使用仅注册现有数据选项时,请注意以下几点:
- 如果复制类型需要全局 ID,您必须确保将全局 ID 添加到数据中,然后再将数据复制到其他地理数据库。 如果使用 ArcGIS 中的功能复制数据,请确保使用复制与粘贴或 XML 工作空间导出及导入这几种方法之一。
- 在用户创建复本时,必须以目标地理数据库的数据所有者的身份处于连线状态。
- 在复本创建过程中应用的过滤器同样会应用于关系地理数据库中的数据。
局限性
使用仅注册现有数据选项时,请务必注意以下限制:
所有表的记录
在复本创建过程中,需要将要复制的数据集的数据和方案从源地理数据库复制到目标地理数据库,并在每个地理数据库中创建复本。 数据将定义为表中的行和列,方案包含用于描述已复制数据的字段、属性域、子类型和其他属性。
对于数据集,默认行为是同时复制数据和方案。 对于表,默认行为是仅复制表的方案。
可以使用表的所有记录以指定是将所有记录,还是仅将方案复制到未应用过滤器(例如选择或定义查询)的表的子地理数据库。
表的所有记录选项可以在创建复本地理处理工具的高级设置下找到。
数据复制示例
以下示例维护工序将说明数据复制的某些默认行为。
维护工作队准备在某居民区进行一些检查。 为了进行某些字段编辑,工作队需要对覆盖此居民区的那部分基础设施进行复制。 要开始复制过程,需要使用空间过滤器来标识检查区域的空间范围(在本例中,范围将通过环境设置进行设置)。
工作队要重点关注已采用特殊材料进行绝缘的电缆。 为了标识这些电缆,需要对相关数据集应用查询。
最后,由于每个维护工作队希望每天只访问一定数量的属性,因而通过基于属性数量的定义查询来标识一个居民区的住户。 选择如下所示。
将复制以下内容:选定的要素、由定义查询标识的要素,以及与所选空间范围相交的要素。 其中还将包括一些额外的要素。