创建复本 (数据管理)

摘要

由企业级地理数据库中指定列表中的要素类、图层、数据集和表创建地理数据库的复本。

使用情况

  • 所有数据集必须来自同一企业级地理数据库。

  • 要复制的数据必须注册为传统版本化,但是无法通过“将编辑内容移动到基表”选项进行版本化。

  • 此外,连接的数据库用户必须具有对数据的写入权限。

  • 对于双向复本和单向复本(两种类型),所有数据集都必须具有 GlobalID 列。

  • 对于检出复本和单向复本,子复本地理数据库可以是企业级或文件地理数据库。

  • 对于双向复本和单向“子-父”复本,子地理数据库必须是企业级地理数据库。

  • 要对单向复本使用归档,父工作空间必须连接至默认版本。 对于单向“子-父”复本,子工作空间必须与默认版本连接。

  • 您可以复制数据集中的所有数据或复制数据的子集。 有三种方法可以指定要复制的数据子集:

    • 对数据使用定义查询。
    • 使用地理处理范围环境设置指定范围。
    • 使用几何要素参数。

  • 对于表,默认过滤器是“仅方案”,即只复制表的方案。 要对表应用过滤器,首先请使用所需过滤器创建一个表视图。 然后,请将其作为创建复本工具的输入使用。 有关详细信息,请参阅创建表视图。 要获取关于过滤器和复制的详细信息,请参阅准备要复制的数据

  • 还可以使用复本几何要素参数或范围环境设置定义复本几何。

    • 如果已设置复本几何要素参数,则系统会将其用作复本几何。
    • 如果未设置复本几何要素参数,则系统会将范围环境用作复本几何。
    • 如果复本几何要素参数或“范围”环境均未指定,则将使用数据的全部范围。

  • 复本几何要素可以是点、线或面。

  • 用于复本几何要素的要素图层可以包含一个或多个要素。 如果有多个要素,则将合并几何,并仅复制与合并的几何相交的数据。

  • 如果已对复本几何要素定义了过滤器(例如选择内容或定义查询),则将仅使用符合这些过滤器的要素定义复本几何。 有关详细信息,请参阅准备要复制的数据

  • 重用方案参数选项仅适用于检出复本。

参数

标注说明数据类型
复本数据集

要复制的数据。 此列表中所包含的图层和表引用了来自企业级地理数据库中版本化的可编辑数据。

Table View; Dataset
复本类型

指定要创建的复本类型。

  • 双向复本变更将在子复本和父复本之间进行双向发送。
  • 单向复本变更只能从父复本发送到子复本。
  • 检出复本一次复制、编辑并检回数据。
  • “子-父”单向复本变更只能从子复本发送到父复本。
String
数据复制的目标地理数据库
(可选)

将托管子复本的本地地理数据库。 地理数据服务用于表示远程地理数据库。 地理数据库可以是企业级或文件地理数据库。 对于双向复本,子地理数据库必须是企业级地理数据库。 对于单向复本和检出复本,地理数据库可以是文件或者企业级地理数据库。 运行此工具前,必须存在文件地理数据库。

如果输出类型参数设置为地理数据库,则此参数为必需项。

Workspace; GeoDataServer
复本名称

用于识别复本的名称。

String
复本访问类型
(可选)

指定要创建的复本访问类型。

  • 全部支持复杂类型(例如拓扑),并且必须对数据进行版本化。 这是默认设置。
  • 简单子复本上的数据不可版本化且必须为简单形式。 将允许复本互相操作。 在复制期间,父地理数据库中的非简单要素(例如,拓扑中的要素)将转换为简单要素(例如点、线和面要素类)。
String
初始数据发送方
(可选)

指定在断开连接模式下哪个复本可发送变更。 如果在连接模式下工作,此参数无关紧要。 这样可确保首先从初始数据发送方接收到变更后,关系复本才发送更新。

  • 子数据发送方子复本将为初始数据发送方。 这是默认设置。
  • 父数据发送方父复本将为初始数据发送方。
String
扩展要素类和表
(可选)

指定是否将添加扩展要素类和表(例如网络、拓扑或关系类中的要素类和表)。

  • 使用默认值将添加与复本中的要素类和表相关的扩展要素类和表。 要素类的默认设置是复制所有与空间过滤器相交的要素。 如果未提供任何空间过滤器,则系统会将所有要素包括在内。 表的默认设置是仅复制方案。 这是默认设置。
  • 仅使用方案添加将仅为扩展要素类和表添加方案。
  • 所有行将为扩展要素类和表添加所有行。
  • 不添加将不添加扩展要素类或表。
String
重用方案
(可选)

指定是否将重用包含要复制数据的方案的地理数据库。 这可以减少复制数据所需的时间。 此参数仅适用于检出复本。

  • 不重用将不会重用方案。 这是默认设置。
  • 重用将使用方案。
String
复制相关数据
(可选)

指定是否将复制与复本中现有行相关的行。 例如,复本过滤器内部存在一个要素 (f1),且该过滤器外部存在一个来自其他类的相关要素 (f2)。 如果您选择获取相关数据,则要素 f2 将包含到复本中。

  • 不取得关联将不会复制相关数据。
  • 取得关联将复制相关数据。 这是默认设置。
String
复本几何要素
(可选)

将用于定义要复制区域的要素。

Feature Layer
使用归档追踪单向复制的变更
(可选)

指定是否使用存档类来追踪变更而非对增量表进行版本化。 这仅适用于单向复本。

  • 存档存档将用于追踪变更。
  • 不使用存档存档将不会用于追踪变更。 这是默认设置。
Boolean
仅注册现有数据
(可选)

指定是否使用子地理数据库中的现有数据来定义复本数据集。 子地理数据库中的数据集名称必须与父数据库中的数据集名称相同,并由连接到子地理数据库的用户拥有。

  • 选中 - 将使用子地理数据库中的现有数据注册复本。
  • 未选中 - 父地理数据库中的数据将被复制到子地理数据库中。 这是默认设置。

Boolean
输出类型
(可选)

指定将被复制的数据的输出类型。

  • 地理数据库数据将被复制到地理数据库。 这是默认设置。
  • XML 文件数据将被复制到 XML 工作空间文档。
String
数据复制的目标 XML 文件
(可选)

将创建的 .xml 文件的名称和位置。

如果输出类型参数设置为 XML 文件,则此参数为必需项。

File
所有表的记录
(可选)

指定是否将所有记录或仅方案复制到未应用过滤器的表的子地理数据库(例如选择或定义查询)。

支持应用过滤器的表。

  • 选中 - 对于未应用过滤器的表,所有记录均将被复制到表的子地理数据库中。 此选项将覆盖扩展要素类和表参数值。
  • 未选中 - 对于未应用过滤器的表,仅方案将被复制到表的子地理数据库中。 支持应用过滤器的表。 这是默认设置。

Boolean

派生输出

标注说明数据类型
输出子工作空间

输出子地理数据库。

Workspace
输出复本名称

输出复本的名称。

String

arcpy.management.CreateReplica(in_data, in_type, {out_geodatabase}, out_name, {access_type}, {initial_data_sender}, {expand_feature_classes_and_tables}, {reuse_schema}, {get_related_data}, {geometry_features}, {archiving}, {register_existing_data}, {out_type}, {out_xml}, {all_records_for_tables})
名称说明数据类型
in_data
[in_data,...]

要复制的数据。 此列表中所包含的图层和表引用了来自企业级地理数据库中版本化的可编辑数据。

Table View; Dataset
in_type

指定要创建的复本类型。

  • TWO_WAY_REPLICA变更将在子复本和父复本之间进行双向发送。
  • ONE_WAY_REPLICA变更只能从父复本发送到子复本。
  • CHECK_OUT一次复制、编辑并检回数据。
  • ONE_WAY_CHILD_TO_PARENT_REPLICA变更只能从子复本发送到父复本。
String
out_geodatabase
(可选)

将托管子复本的本地地理数据库。 地理数据服务用于表示远程地理数据库。 地理数据库可以是企业级或文件地理数据库。 对于双向复本,子地理数据库必须是企业级地理数据库。 对于单向复本和检出复本,地理数据库可以是文件或者企业级地理数据库。 运行此工具前,必须存在文件地理数据库。

当将 out_type 参数设置为 GEODATABASE 时,此参数为必需项。

Workspace; GeoDataServer
out_name

用于识别复本的名称。

String
access_type
(可选)

指定要创建的复本访问类型。

  • FULL支持复杂类型(例如拓扑),并且必须对数据进行版本化。 这是默认设置。
  • SIMPLE子复本上的数据不可版本化且必须为简单形式。 将允许复本互相操作。 在复制期间,父地理数据库中的非简单要素(例如,拓扑中的要素)将转换为简单要素(例如点、线和面要素类)。
String
initial_data_sender
(可选)

指定在断开连接模式下哪个复本可发送变更。 如果在连接模式下工作,此参数无关紧要。 这样可确保首先从初始数据发送方接收到变更后,关系复本才发送更新。

  • CHILD_DATA_SENDER子复本将为初始数据发送方。 这是默认设置。
  • PARENT_DATA_SENDER父复本将为初始数据发送方。
String
expand_feature_classes_and_tables
(可选)

指定是否将添加扩展要素类和表(例如网络、拓扑或关系类中的要素类和表)。

  • USE_DEFAULTS将添加与复本中的要素类和表相关的扩展要素类和表。 要素类的默认设置是复制所有与空间过滤器相交的要素。 如果未提供任何空间过滤器,则系统会将所有要素包括在内。 表的默认设置是仅复制方案。 这是默认设置。
  • ADD_WITH_SCHEMA_ONLY将仅为扩展要素类和表添加方案。
  • ALL_ROWS将为扩展要素类和表添加所有行。
  • DO_NOT_ADD将不添加扩展要素类或表。
String
reuse_schema
(可选)

指定是否将重用包含要复制数据的方案的地理数据库。 这可以减少复制数据所需的时间。 此参数仅适用于检出复本。

  • DO_NOT_REUSE将不会重用方案。 这是默认设置。
  • REUSE将使用方案。
String
get_related_data
(可选)

指定是否将复制与复本中现有行相关的行。 例如,复本过滤器内部存在一个要素 (f1),且该过滤器外部存在一个来自其他类的相关要素 (f2)。 如果您选择获取相关数据,则要素 f2 将包含到复本中。

  • DO_NOT_GET_RELATED将不会复制相关数据。
  • GET_RELATED将复制相关数据。 这是默认设置。
String
geometry_features
(可选)

将用于定义要复制区域的要素。

Feature Layer
archiving
(可选)

指定是否使用存档类来追踪变更而非对增量表进行版本化。 这仅适用于单向复本。

  • ARCHIVING存档将用于追踪变更。
  • DO_NOT_USE_ARCHIVING存档将不会用于追踪变更。 这是默认设置。
Boolean
register_existing_data
(可选)

指定是否使用子地理数据库中的现有数据来定义复本数据集。 子地理数据库中的数据集名称必须与父地理数据库中的数据集名称相同。

  • REGISTER_EXISTING_DATA将使用子地理数据库中的现有数据注册复本。
  • DO_NOT_USE_REGISTER_EXISTING_DATA父地理数据库中的数据将被复制到子地理数据库中。 这是默认设置。
Boolean
out_type
(可选)

指定将被复制的数据的输出类型。

  • GEODATABASE数据将被复制到地理数据库。 这是默认设置。
  • XML_FILE数据将被复制到 XML 工作空间文档。
String
out_xml
(可选)

将创建的 .xml 文件的名称和位置。

当将 out_type 参数设置为 XML_FILE 时,此参数为必需项。

File
all_records_for_tables
(可选)

指定是否将所有记录或仅方案复制到未应用过滤器的表的子地理数据库(例如选择或定义查询)。

支持应用过滤器的表。

  • ALL_RECORDS_FOR_TABLES对于未应用过滤器的表,所有记录均将被复制到子地理数据库中。 此选项将覆盖 expand_feature_classes_and_tables 参数值。
  • SCHEMA_ONLY_FOR_TABLES对于未应用过滤器的表,仅方案将被复制到子地理数据库中。 支持应用过滤器的表。 这是默认设置。
Boolean

派生输出

名称说明数据类型
out_child_geodatabase

输出子地理数据库。

Workspace
output_replica_name

输出复本的名称。

String

代码示例

CreateReplica 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在 Python 窗口中使用 CreateReplica 函数。

import arcpy
arcpy.env.workspace = "C:/Data/MyData.sde"
arcpy.management.CreateReplica("roads", "ONE_WAY_REPLICA", 
                               "C:\Data\MyTargetGDB.gdb", "MyReplica", "FULL", 
                               "PARENT_DATA_SENDER", "USE_DEFAULTS", 
                               "DO_NOT_REUSE", "TRUE")
CreateReplica 示例 2(独立脚本)

以下 Python 脚本演示了如何在独立 Python 脚本中使用 CreateReplica 函数。

# Name: CreateReplica_Example2.py
# Description: Create a one-way replica of a Feature Dataset to a file geodatabase. 

# Import system modules
import arcpy

# Set workspace
arcpy.env.workspace = "C:/Data/MyData.sde"

# Set local variables
in_data = "Parks" # a feature dataset
replica_type = "ONE_WAY_REPLICA"
output_workspace = "C:\Data\MyTargetGDB.gdb"
replica_name = "MyReplica"
access_type = "FULL"
initial_sender = "PARENT_DATA_SENDER"
expand = "USE_DEFAULTS"
reuse_schema = "DO_NOT_REUSE"
get_related = "GET_RELATED"
replica_geometry = "LA_County"
archiving = "DO_NOT_USE_ARCHIVING"

# Run CreateReplica
arcpy.management.CreateReplica(in_data, replica_type, output_workspace, 
                               replica_name, access_type, initial_sender, 
                               expand, reuse_schema, get_related, 
                               replica_geometry, archiving)

许可信息

  • Basic: 否
  • Standard: 是
  • Advanced: 是

相关主题