准备数据
首先,您需要确定与其他类型的复本相比,双向复本是在文化部门和旅游部门之间分配数据的最佳解决方案。 然后,您将下载数据,连接两个部门的企业级地理数据库,并确保针对复制正确配置文化数据。
为什么使用双向复本?
地理数据库复制可用于跨多个位置和地理数据库管理和分配空间数据。 它涉及创建源地理数据库数据的复本或副本并将这些复本转移到目标地理数据库。 复本的优势之一是可使用源数据定期同步。 同步意味着对源数据所做的任何更改还将在复本数据中反映,这有助于管理经常更新的数据。
共有三种类型的地理数据库复制:单向、双向和检出/检入。 所用类型取决于数据的存储方式、数据的预期分配方式以及数据的编辑要求。
本教程将重点介绍旅游部门和文化部门之间的复本。 使用的复本类型将为双向复本。
为什么双向复本是适用于文化部门和交通部门的最佳复制类型? 请注意工作流的以下方面:
- 这两个部门均在企业级地理数据库中存储数据。
- 文化部门需要与旅游部门共享其数据。
- 旅游部门将协助文化部门执行数据清理进程。 此进程将确保数据在公开之前准确无误。
- 两个部门均需要数据的编辑访问权限。
双向复制可用于多次将数据变更从父复本发送到子复本,反之亦然。 如果在两个复本地理数据库中编辑相同的数据,则在复本同步期间将会检测到冲突。 可以自动解决冲突以支持复本地理数据库,也可以使用版本化手动检查冲突。
下载数据
在确定双向复本最适合工作流后,您将下载并打开 ArcGIS Pro 工程包,其中包含本教程所用的数据。
注:
在本教程中,您将使用自己的企业级地理数据库完成工作流。 确保您已安装并授权 ArcGIS Server 并且已安装 Microsoft SQL Server(或另一个受支持的关系数据库管理系统)。 有关安装这些组件的详细信息,请参阅基础 ArcGIS Enterprise 部署文档以及 ArcGIS Enterprise Builder 入门教程。
- 下载 Tourism_and_Culture 工程包。
- 在计算机上找到已下载的文件。
注:
开始下载前,根据 web 浏览器的不同,系统可能会提示您选择文件的位置。 大多数浏览器将默认下载到计算机的 Downloads 文件夹下。
- 如果您的计算机上已安装 ArcGIS Pro,请双击 Tourism_and_Culture.ppkx 以打开该工程。 如果收到系统提示,请使用您获得许可的 ArcGIS 帐户登录。
注:
如果您没有 ArcGIS Pro 的访问权限或者 ArcGIS 组织帐户,请参阅软件访问权限选项。
该工程包含两个地图:Culture 和 Tourism,参与复制的每个部门对应一个地图。 这些地图将缩放至阿根廷布宜诺斯艾利斯,但是不含除了底图之外的其他数据。
该工程还包含工程地理数据库中的数据。
- 在目录窗格中,展开数据库,然后展开 tourism_and_culture.gdb。
该数据库包含三个要素类:Libraries、Museums 和 Religious_sites。 在本教程中,这些数据集由文化部门管理,旅游部门希望在其地图中使用这些数据集。
连接到企业级地理数据库
数据当前所在的数据库为文件地理数据库。 仅当父数据库和子数据库为企业级地理数据库时,才能进行双向复制,因此您将需要移动数据。
企业级地理数据库使用 ArcGIS Enterprise。 它增加了功能和数据集类型;同时允许与通过其数据发布的要素服务同步。
首先,您将创建或连接到表示文化部门所使用的企业级地理数据库的企业级地理数据库。 您需要向其复制文件地理数据库中的数据。 然后,您将创建或连接到表示旅游部门所使用的企业级地理数据库的企业级地理数据库。
- 如有必要,请在名为 Culture_BA 的 SQL Server 实例(或其他受支持的关系数据库管理系统)中创建企业级地理数据库。
注:
如果您已具有可用的企业级地理数据库,则可以直接使用该企业级地理数据库,而非进行新建。 如果您需要帮助创建新的企业级地理数据库,请参阅为房地产部署企业级地理数据库教程中的“创建企业级地理数据库”一节。
接下来,您将连接到企业级地理数据库。
- 在目录窗格中,右键单击数据库,然后选择新建数据库连接。
随即显示数据库连接窗口。 用于连接到企业级地理数据库的参数取决于您的 SQL Server 或关系数据库管理系统 (RDBMS) 实例。
- 对于数据库平台,选择实例所用的 RDBMS。 对于实例,键入 RDBMS 实例的名称。
注:
示例图像使用名为 BASQL 的 SQL Server 实例;您的实例将有所不同。
- 对于身份验证类型,选择数据库身份验证。
- 对于用户名和密码,键入可访问企业级地理数据库并加载数据的帐户的凭据。
此用户将作为文化部门企业级地理数据库的数据所有者。 在普通工作流中,此用户不同于地理数据库和数据库管理员用户。
注:
示例图像使用名为 BRUNO 的用户;您的用户名将有所不同。
- 对于数据库,选择之前创建的 Culture_BA 企业级地理数据库(或您有权访问并可针对本教程修改的另一个企业级地理数据库)。
- 单击确定。
即会向目录窗格添加企业级地理数据库。 默认情况下,数据库将以实例命名。 (例如,示例数据库名为 BASQL.sde。)您需要按照以下命名格式对该数据库进行命名:database name_database user.sde。
- 在目录窗格中,右键单击您的企业级地理数据库并选择重命名。 将名称更改为 Culture_BA_[您的数据库用户名].sde。
注:
在示例图像中,用户名为 BRUNO,因此该企业级地理数据库名为 Culture_BA_BRUNO_sde。 您的用户名将有所不同。
接下来,您需要将文件地理数据库中的数据复制到企业级地理数据库。
- 将 Libraries、Museums 和 Religious_sites 要素类从 tourism_and_culture.gdb 拖动到 Culture_BA.sde 中。
提示:
按住 Ctrl 键并单击每个要素类以同时选择所有三个要素类,然后进行拖动以同时复制所有三个要素类。
- 展开 Culture_BA.sde 以查看其内容。
数据即已复制。 副本的前缀为数据所有者的用户名。 在示例图像中,数据所有者为名为 BRUNO 的帐户;您的用户名将有所不同。
- 折叠 tourism_and_culture.gdb。
接下来,您将连接到旅游部门所使用的企业级地理数据库。 对于双向复本,子数据库也必须是企业级地理数据库。
- 如有必要,请在名为 Tourism_BA 的 SQL Server 实例(或其他受支持的关系数据库管理系统)中创建一个企业级地理数据库。
- 在目录窗格中,右键单击数据库,然后选择新建数据库连接。
- 在数据库连接窗口中,将相应的参数设置为连接到之前创建的 Tourism_BA 企业级地理数据库(或您有权访问并可针对本教程修改的另一个企业级地理数据库)。
- 单击确定。
- 将新数据库连接重命名为 Tourism_BA_[您的数据库用户名].sde。
在示例图像中,旅游数据库的用户名为 EMMA;您的用户名将有所不同。
您现在已连接到两个企业级地理数据库。 一个表示文化部门管理的企业级地理数据库;其中包含有关该城市文化机构的数据。 另一个表示旅游部门管理的企业级地理数据库;其中为空。
启用全局 ID
接下来,您将准备文化部门的数据以进行复制。 首先,您需要确认数据库连接使用传统版本化,而非分支版本化。 分支版本化不支持复制,因为复本需要直接连接到地理数据库,才能进行编辑。 然后,您将为要素类启用全局 ID。 当编辑导致数据版本化时,全局 ID 有助于映射在相同数据的多个版本中进行的编辑内容。
- 在目录窗格中,右键单击 Culture_BA.sde 并选择地理数据库连接属性。
- 在地理数据库连接属性窗口中,确认版本化类型设置为传统。
- 关闭地理数据库连接属性窗口。
接下来,您将启用传统版本化并为所有三个要素类启用全局 ID。
- 在目录窗格内,右键单击 Libraries 并选择管理。
要素类属性窗口随即显示。
- 在管理选项卡中,选中版本化,然后选择传统。 确认全局 ID 已选中。
- 单击确定。
- 对于 Museums 和 Religious_sites 要素类,打开要素类属性窗口,启用传统版本化,并确认全局 ID 已启用。
现在,可随时复制所有三个要素类。
- 在快速访问工具栏上,单击保存按钮以保存工程。
目前,您已确认双向复本复制类型适用于在文化部门和旅游部门之间分发数据。 您还连接到了要在教程中使用的企业级地理数据库,并准备好数据库连接和要素类以进行复制。
创建双向复本
接下来,您将在文化和旅游地理数据库之间创建双向复本。
创建复本
要创建复本,您需要运行地理处理工具。
- 在目录窗格中,右键单击 Culture_BA.sde,指向分布式地理数据库,然后选择创建复本。
地理处理窗格随即出现并显示创建复本工具。 首先,您需要将数据集设置为复制。
- 对于复本数据集,单击浏览按钮。
- 在复本数据集窗口中,展开工程下的数据库。 单击 Culture_BA.sde。
- 按 Ctrl 并单击 Libraries、Museums 和 Religious_sites 以选择全部三个。
- 单击确定。
数据集即会添加至地理处理窗格中的参数。
- 对于复本类型,选择双向复本。 确认输出类型设置为地理数据库。
接下来,您需要确保数据复制到旅游部门数据库。
- 对于要将数据复制到的地理数据库,单击浏览按钮。
- 在要将数据复制到的地理数据库窗口中,单击工程下的数据库。 选择 Tourism_BA.sde 并单击确定。
- 对于复本名称,键入 Culture_to_Tourism。
- 单击运行。
随即运行工具并创建复本。
- 关闭地理处理窗格。
浏览复本
在创建复本后,您需要从父数据库和子数据库的视角检查该复本。
- 在目录窗格中,右键单击 Culture_BA.sde,指向分布式地理数据库,然后选择管理复本。
随即出现管理复本窗格。 其中列出一个复本:您之前创建的 Culture_to_Tourism 复本。
- 在 Culture_to_Tourism 下,单击箭头展开该复本。
将显示复本相关信息。 复本所有者为创建该复本的数据库用户(在示例图像中,为 BRUNO)。 该信息还包含数据库是父项还是子项,它在发送还是接收数据。
在本例中,文化数据库为父项和数据接收方。 由于复本为双向复本,因此即使数据库的状态设置为接收方者,也可以同时发送和接收数据。
- 关闭管理复本窗格。
接下来,您需要确认数据是否已复制到子数据库。
- 在目录窗格中,右键单击 Tourism_BA.sde,然后选择刷新。
- 展开 Tourism_BA.sde。
已成功将 3 个要素类复制到子数据库中。
- 右键单击 Tourism_BA.sde,指向分布式地理数据库,然后选择管理复本。
- 在管理复本窗格中,展开 Culture_to_Tourism 复本。
从旅游地理数据库访问的复本相关信息指示角色为子项,状态为数据发送方,而非数据接收方。 由于您使用的是双向复本,因此数据库将能够发送和接收数据,不考虑其状态。
- 关闭管理复本窗格。 折叠 Tourism_BA.sde 连接。
- 保存工程。
您已在文化数据库和旅游数据库之间创建了双向复本。 您已确认正确复制数据并从父项和子项视角检查复本以评估数据流。 数据现在已准备好进行同步编辑。
同步更改
创建双向复本后,即可利用其数据同步功能。 在工作流的此部分中,假设文化部门正在清理其数据,以确保数据在公开之前准确无误。 由于数据量较大,因此旅游部门愿意提供帮助。 但是,两个部门将同时编辑相同的数据,由此可能会导致冲突。
首先,您将使用两个数据库中的数据执行编辑。 然后,您将同步更改并检查由此产生的任何冲突。
向地图添加数据
已复制宗教场所要素类中的其中一个要素。 作为文化部门的 GIS 专家,您将编辑数据以移除冗余要素。 首先,您将向地图添加数据并更改其符号系统。
- 确认 Culture 地图为活动地图。
- 在目录窗格的 Culture_BA.sde 下,右键单击 Religious_sites 并选择添加至当前地图。
随即将该要素类添加至地图。 (您的默认符号系统可能与示例图像的符号系统不同。)
接下来,您将更改符号系统。 为了节省时间,工程文件夹中已包含图层文件。 您需要从这些文件中导入符号系统。
- 在内容窗格中,确保 Religious sites 处于选中状态。
- 在功能区上,单击要素图层选项卡。 在绘制组中,单击导入。
导入符号系统窗格随即显示。
- 对于输入图层,确认选择 Religious sites。 对于符号系统图层,单击浏览按钮。
- 在符号系统图层窗口的工程下,展开文件夹、Tourism_and_Culture 和 commondata。 单击 userdata。
- 单击 Religious_sites.lyrx,然后单击确定。
该文件即会添加至工具参数。
- 单击确定。
符号系统已应用。
编辑文化部门数据
您将导航至重复要素的位置并将其删除。
- 单击功能区上的地图选项卡。 在导航组中,单击书签,然后选择 Iglesia San Francisco。
地图随即导航至布宜诺斯艾利斯的一座教堂 Iglesia San Francisco。 这座教堂似乎具有两个与之相关的要素。
您将调查每个要素以了解详细信息。
- 在地图上,单击左侧的要素。
随即显示其弹出窗口。 此要素的 ID 为 99。 值得注意的是,此要素的 Altura(高度)字段值为 0。 这个值肯定不正确,由此意味着此要素可能错误。
- 单击另一个要素。
弹出窗口指示实际上存在两个重叠要素。 一个要素的 ID 为 27,对应于 Iglesia San Francisco,该要素具有精确的属性信息。 另一个要素的 ID 为 34,对应于 Iglesia San Roque,该要素不正确。
您将删除两个不正确的要素。 您还需要修改正确的要素以从其名称中移除 Basilica 一词。
- 关闭弹出窗口。
- 单击功能区上的编辑选项卡。 在选择组中,单击选择按钮。
- 在地图上,单击 ID 为 99 的要素(左侧要素)。
即会选中该要素。
- 在功能区的要素组中,单击删除。
警告:
删除数据为永久性操作。 在删除任何数据中的要素之前,建议先保存该数据的备份。 在本教程中,您已在 Tourism_and_culture 文件地理数据库中拥有备份副本。
- 当系统询问您是否确定要删除数据时,请单击是。
要素已删除。
- 在地图上,在其余 Iglesia San Francisco 要素周围绘制一个框以将其选中。
注:
需要在该要素周围绘制一个框,而非单击该要素;否则,您将只能选择两个重叠要素之一。
由于两个要素重叠,因此您需要确保删除正确的要素。
- 在功能区的选择组中,单击属性。
- 在属性窗格中,右键单击 San Roque 并选择删除。
注:
如果您只看到 San Francisco 选项,而未看到 San Roque 选项,请在地图上的要素周围绘制一个框,以确保同时选择两个重叠要素。
- 当系统询问您是否确定要删除数据时,请单击是。
要素已删除。 最后,您需要编辑 San Francisco 要素的名称。
- 在属性窗格中,确认 San Francisco (Basilica) 处于选中状态。 对于 Nombre,请从名称中删除 (Basilica) 并按 Enter键。
- 在窗格的底部,单击应用。 关闭属性窗格。
- 在功能区上的管理编辑内容组中,单击保存。
- 在保存编辑内容窗口中,单击是。
将保存您对文化部门数据库中数据进行的编辑内容。
编辑旅游部门数据
接下来,您将对相同的要素进行编辑,但使用旅游数据库中的数据。 由于尚未对文化部门所做的更改进行同步,因此旅游部门的数据不包含新的编辑内容。
旅游部门进行的编辑内容和文化部门进行的编辑内容将会有所不同。 稍后对更改进行同步时,将在您需要解决的两个数据集之间产生冲突。
- 激活旅游地图。
- 在目录窗格中,展开 Tourism_BA.sde 数据库连接。 右键单击旅游部门的 Religious_sites 要素类并选择添加至当前地图。
- 或者,对于 Religious sites 图层,使用 Religious_sites.lyrx 导入符号系统。
注:
示例图像将显示已导入的符号系统,但是您可以继续工作流,而无需导入符号系统。
- 单击功能区上的地图选项卡。 在导航组中,单击书签,然后选择 Iglesia San Francisco。
地图随即缩放至感兴趣区域。 尽管您删除了文化部门数据副本中的其中一个可见要素,但该要素仍然存在于旅游部门的副本中。
在检查数据时,旅游部门在数据编辑内容方面得出了与文化部门不同的结论。 由于属性信息不正确,文化部门删除了左侧要素(要素 99)。 相比之下,旅游部门将删除右侧要素(要素 27),因为该点并不位于底图上教堂位置的中间。
但是,旅游部门将像文化部门一样删除 San Roque 要素。
- 在功能区上,确认选择按钮仍处于活动状态。
- 在地图上,在右侧要素周围绘制一个框以将其选中。
- 单击功能区上的编辑选项卡。 在选择组中,单击属性。
- 在属性窗格中,按 Ctrl 并单击 San Francisco (Basilica) 和 San Roque 以同时将其选中。 右键单击任一要素并选择删除。
- 当系统询问您是否确定要删除数据时,请单击是。
将删除两个要素。 接下来,您将编辑其余要素的属性,以确保其精确。
- 在地图上,单击其余要素以将其选中。
- 在属性窗格中,对于 Altura(高度),键入 380。 对于 Tipo(类型),键入 Iglesia。
- 在窗格的底部,单击应用。 关闭属性窗格。
- 在功能区上的管理编辑内容组中,单击保存。 在保存编辑内容窗口中,单击是。
同步更改
两个部门都对各自的数据版本进行了编辑。 现在,两个部门希望同步更改,以使其他部门的数据版本反映其编辑内容。
在双向复制中,父(文化)数据库和子(旅游)数据库都可以同步更改。 在这种情况下,由于旅游部门最后进行了其更改,因此其需要进行同步。
- 在目录窗格中,右键单击 Tourism_BA.sde,指向分布式地理数据库,然后选择同步更改。
地理处理窗格随即出现并显示同步更改工具。 系统已自动填充工具参数。 地理数据库 1 是正在同步更改的数据库(旅游数据库),而地理数据库 2 是双向复本中涉及的另一个数据库(文化数据库)。
默认情况下,同步方向为双向。 如果存在冲突,则将自动解决冲突,有利于数据库进行同步。 但是,您不希望以这种方式进行同步,因为您希望手动解决冲突。 您需要调整参数。
- 在同步更改工具中,对于方向,选择从地理数据库 1 到地理数据库 2。 对于冲突解决策略,选择手动解决冲突。
- 单击运行。
该工具将运行,但完成时出现警告。
- 对于同步更改已完成,但存在警告,请单击查看详细信息。
随即出现工具窗口。 该警告表示同步已成功,但检测到冲突。 从复本导出更改之前,您需要解决冲突。
- 关闭工具窗口。 关闭地理处理窗格。
解决冲突
要查看冲突,您需要在父数据库 Culture_BA.sde 中管理版本化。
- 激活 Culture 地图。
此地图中的数据来自 Culture_BA.sde。
- 在内容窗格中,单击按数据源列出按钮。
将按数据的源来组织数据。 该地图共有三个数据源,两个用于底图,一个用于文化部门的数据。
- 单击 Religious sites 图层的数据库连接以将其中。
注:
您的数据库连接的名称可能与示例图像中的名称不同。
在功能区上,上下文版本化选项卡将变为可用。
- 单击版本化选项卡。 在版本化组中,单击管理版本。
随即显示数据库的版本视图。 存在两个版本:默认版本,当您首次连接到文化部门的数据库时创建了该版本;以及 Culture_to_Tourism_15 相对复本版本,自动创建了该版本,用于存储冲突。 版本名称与复本名称相同,新版本的所有者是您用于连接到 Culture_BA.sde 的用户名(在示例图像中为 BRUNO)。
您需要将数据库使用的版本更改为新版本。
- 关闭版本视图。 如有必要,请激活 Culture 地图。
- 在内容窗格中,右键单击 Religious sites 图层的数据库连接并选择更改版本。
- 在更改版本窗口中,选择以您的用户名开头的 Culture_to_Tourism 版本。
- 单击确定。
随即更改版本。 在内容窗格中,Religious sites 图层的数据源现在为 Culture_to_Tourism 版本。 此外,地图也会发生变化,以显示旅游部门对数据进行的编辑内容,而非文化部门的编辑内容。
接下来,您将比较并协调两个版本之间的差异。
- 在功能区版本化选项卡的版本化组中,单击协调。
- 在协调窗口中,保留默认参数并单击确定。 在询问您是否要查看冲突的警告窗口中,单击是。
随即出现冲突视图。
- 在冲突视图中,展开 Religious_sites。 展开删除-更新和更新-删除。
存在两个冲突。 删除-更新冲突的编号为 27,指的是 ID 为 27 的要素。 此冲突指示要素 27 在当前版本(旅游部门的版本)中被删除,但在目标版本(文化部门的版本)中进行了更新。
相比之下,更新-删除冲突指示要素 99 在当前版本中进行了更新,但在目标版本中被删除。 不存在与 San Roque 要素相关的任何冲突,该要素在两个版本中均已被删除。
- 单击 27。
随即显示当前版本、目标版本和公共祖先(原始数据)的要素属性。
查看冲突后,文化部门认为目标版本正确。 您需要解决有利于该版本的冲突。
- 右键单击 27 并选择使用目标版本替换。
- 右键单击 27 并选择标记为已查看。
您还需要解决有利于目标版本的要素 99。
- 右键单击 99 并选择使用目标版本替换。 右键单击 99 并选择标记为已查看。
接下来,您需要使编辑内容可用于默认版本。
- 关闭冲突视图。 在功能区的版本化选项卡上,单击提交。
单击此按钮也会保存您进行的编辑内容。
手动检查了冲突并确定了要保留的编辑内容后,您需要同步更改以使其可用于子数据库。
- 在目录窗格中,右键单击 Culture_BA.sde,指向分布式地理数据库,然后选择同步更改。 在同步更改工具中,更改以下参数:
- 对于方向,选择从地理数据库 1 到地理数据库 2。
- 对于冲突解决策略,选择手动解决冲突。
- 单击运行。
这次,该工具将运行,并且完成时没有警告,因为您已经解决了冲突。
- 激活旅游地图。
现在,旅游地图显示了文化部门所做的更改。
- 保存工程。
在本教程中,您帮助了文化部门与旅游部门共享其数据。 您将单向双本标识为了工作流的最佳地理数据库复制类型。 然后,您在两个企业级地理数据库之间创建了复本。 最后,您编辑了两个版本的数据,同步了更改并解决了冲突。 借助此双向复本,两个部门将能够根据需要更新数据以确保精度。
本教程重点介绍了使用双向复本在文化部门和旅游部门之间分发数据。 该系列中的其他教程将重点介绍使用单向和检出/检入复本分发来自运输和零售部门的数据。
您可以在教程库中找到更多教程。