从服务器创建复本 (数据管理)

摘要

使用在 ArcGIS Server 上发布的地理数据服务,从远程地理数据库利用指定列表中的要素类、图层、要素数据集和表创建复本。

使用情况

  • 源必须是表示远程企业级地理数据库的地理数据服务。 目标地理数据库可以是本地地理数据库,也可以是远程地理数据库。

  • 要复制的数据必须注册为传统版本化,但是无法通过“将编辑内容移动到基表”选项进行版本化。 此外,连接的数据库用户必须具有对数据的写入权限。 对于双向复本和单向复本(两种类型),所有数据集都必须具有 globalid 列以及高精度的空间参考。

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

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

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

  • 要素类的默认设置是复制所有要素。 表的默认过滤器是“仅方案”,即只复制表的方案。 如果设置范围环境或指定复本几何要素,会将其作为空间过滤器加以应用,这样将只复制与该范围相交的要素。 表中还将包含与作为复本一部分的行相关的行。

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

    • 如果仅设置了复本几何要素参数,则仅复制与复本几何要素相交的数据。
    • 如果仅设置了范围环境,则仅复制与范围相交的数据。
    • 如果同时设置了复本几何要素参数和范围环境,则将使用复本几何要素参数。
    • 如果复本几何要素参数或范围环境均未指定,则将使用数据的全部范围。

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

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

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

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

参数

标注说明数据类型
地理数据服务

表示用于创建复本的地理数据库的地理数据服务。 地理数据服务所引用的地理数据库必须是企业级地理数据库。

GeoDataServer
数据集

地理数据服务中要复制的要素数据集、独立要素类、表和独立属性关系类的列表。

String
复本类型

指定要创建的复本类型。

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

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

Workspace ; GeoDataServer
复本名称

用于识别复本的名称。

String
复本访问类型
(可选)

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 存档存档将用于追踪变更。
  • 不使用存档存档将不会用于追踪变更。 这是默认设置。
Boolean
所有表的记录
(可选)

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

支持应用过滤器的表。

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

Boolean

派生输出

标注说明数据类型
外部地理数据服务

已更新地理数据服务。

Workspace;GeoDataServer
复本名称

输出复本的名称。

String

arcpy.management.CreateReplicaFromServer(in_geodataservice, datasets, in_type, out_geodatabase, out_name, {access_type}, {initial_data_sender}, {expand_feature_classes_and_tables}, {reuse_schema}, {get_related_data}, {geometry_features}, {archiving}, {all_records_for_tables})
名称说明数据类型
in_geodataservice

表示用于创建复本的地理数据库的地理数据服务。 地理数据服务所引用的地理数据库必须是企业级地理数据库。

GeoDataServer
datasets
[dataset_name,...]

地理数据服务中要复制的要素数据集、独立要素类、表和独立属性关系类的列表。

String
in_type

指定要创建的复本类型。

  • TWO_WAY_REPLICA变更将在子复本和父复本之间进行双向发送。
  • ONE_WAY_REPLICA变更只能从父复本发送到子复本。
  • CHECK_OUT一次复制、编辑并检回数据。
  • ONE_WAY_CHILD_TO_PARENT_REPLICA变更只能从子复本发送到父复本。
String
out_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
all_records_for_tables
(可选)

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

支持应用过滤器的表。

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

派生输出

名称说明数据类型
out_geodata

已更新地理数据服务。

Workspace;GeoDataServer
output_name

输出复本的名称。

String

代码示例

从服务器创建复本 (CreateReplicaFromServer) 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何在即时模式下使用 CreateReplicaFromServer 函数。

import arcpy
arcpy.env.workspace = "C:/Data/MySDEdata.sde"
arcpy.management.CreateReplicaFromServer(
        "C:/MyServerConn/RoadMap.GeoDataServer", "Roads", "TWO_WAY_REPLICA", 
        arcpy.env.workspace, "MajorRoads_replica", "FULL", "CHILD_DATA_SENDER", 
        "USE_DEFAULTS", "DO_NOT_REUSE", "GET_RELATED")
CreateReplicaFromServer 示例 2(独立脚本)

以下独立脚本演示了如何使用 CreateReplicaFromServer 函数。

# Name: CreateReplicaFromServer_Example2.py
# Description: Creates a two-way replica from a geodata service

# Import system modules
import arcpy

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

# Set local variables
gisServer = "C:/MyServerConn/RoadMap.GeodataServer"
in_datasets = "Roads; Streets"
replica_type = "TWO_WAY_REPLICA"
out_workspace = env.workspace
replica_name = "MajorRoads_replica"
access_type = "FULL"
initial_sender = "CHILD_DATA_SENDER"
expand = "USE_DEFAULTS"
reUse = "DO_NOT_REUSE"
related = "GET_RELATED"
replica_geometry = "LA_County"
archiving = "DO_NOT_USE_ARCHIVING"

# Run CreateReplicaFromServer
arcpy.management.CreateReplicaFromServer(
        gisServer, in_datasets, replica_type, out_workspace, replica_name, 
        access_type, initial_sender, expand, reUse, related, replica_geometry, 
        archiving)

许可信息

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

相关主题