数据存储和管理是 ArcGIS Enterprise 部署的一个重要方面。它决定组织访问、管理、贡献和编辑数据的方式,并为如何使用数据奠定了基础。ArcGIS Enterprise 允许您在用户管理的数据存储位置或 ArcGIS 管理的数据存储中存储 Web 服务和图层的源数据。
用户管理的存储位置(例如数据库、文件夹或云存储位置)是您或您组织中的其他人管理的数据源。相反,当您使用 ArcGIS 管理的数据存储位置时,例如 ArcGIS Data Store - 则无法管理或访问基础数据库。在单个 ArcGIS Enterprise 部署中,很可能同时使用两种类型的数据存储;不必只选择其中的一个。
提示:
有关这些术语和概念的更多信息,请参阅 ArcGIS 中的数据:用户管理和 ArcGIS 管理白皮书。
将 web 地图、图层或服务发布到 ArcGIS Enterprise 时,您将决定如何管理数据。此过程的第一步是决定是复制数据还是向组成 ArcGIS Enterprise 门户的一个(或多个)联合服务器注册数据。
注册或复制数据
从 ArcGIS Pro 或 ArcMap 发布数据时,您需要确定 web 图层所使用数据的位置。您可以注册您的数据源(在这种情况下,web 图层访问数据源中的数据),或使 ArcGIS 将数据复制到由 ArcGIS 管理的位置,这一位置可以是 ArcGIS Data Store、联合服务器,或是托管服务器。
您也可以向门户添加文件并在 ArcGIS Enterprise 门户网站中发布。在这种情况下,数据始终会复制到通过 ArcGIS Data Store 提供的一个数据存储或托管服务器,具体取决于您发布的图层类型。
注:
托管服务器是联合 ArcGIS Server 站点,门户管理员指定运行支持多数托管 web 图层的服务。虽然站点可运行其他服务,但其预期目的是运行托管服务。每个门户只有一个托管服务器。
注册数据源
注册数据存储并发布 ArcGIS Server web 图层时,web 图层始终引用已注册数据存储中的数据。如果已注册数据存储中的数据发生变化,web 图层中将反映出这些变化。
已注册数据存储始终由用户管理。
以下情况建议或需要使用注册数据:
- 有多个客户端访问和更新源数据。
如果有应用程序直接编辑源数据、有应用程序通过服务编辑源数据,或存在转换或 ETL 进程从承包商向源加载数据,则发布引用数据源的地图或要素图层。通过这种方式,使用图层的用户可以看到在源中对数据进行的更改。
- 使用来自企业级地理数据库的版本化数据。
如果从中进行发布的地图包含版本化企业级地理数据库数据并且您复制了数据,那么复制的数据不会参与到版本中。通过已发布要素图层所做的编辑无法利用多用户编辑功能。
- 使用来自企业级地理数据库中启用了存档功能的数据。
由于数据所有者启用了存档功能,因此他们能够看见数据随时间变化产生的更改。如果在发布要素图层时复制来自源的数据,则复制后不再针对该数据启用存档功能,并且不再显示对数据所做的更改。
- 您拥有大型要素类或包含复杂几何的要素类。
要素数量越多,形状越复杂,复制数据花费的时间越长。复杂形状的示例包括具有上千个折点的面或线,例如海岸线和弯曲的河流。
- 您正在发布影像数据。
影像数据通常较大,所以在计算机之间复制这种数据需要花费很长时间。出于对这些数据潜在大小的考虑,即使发布时选择复制数据,也从不会复制镶嵌数据集引用的影像文件。
- 您使用的数据或文件类型只能从注册的数据源中进行发布。
如果从 ArcGIS Pro 或 ArcMap 发布以下类型的数据,则必须将数据源注册到 ArcGIS Server 站点并发布到该站点:
- 公共设施网络(仅限 ArcGIS Pro)
- 地理处理脚本或模型
- 动态地图
- 地理数据库(仅 ArcMap)
- 流数据(需要一个 ArcGIS GeoEvent Server 站点)
- 逻辑示意图(仅限 ArcMap)
- KML
- 删除 web 图层时,不希望 ArcGIS 清除数据。
删除与数据关联的服务或门户项目后,系统会自动删除复制到 ArcGIS Enterprise 的数据。如果用户只通过 web 图层与数据交互(即从本质上来说,web 图层是数据),那么您希望同时删除数据和 web 图层。但是,如果服务或门户项目只是用户访问数据的一种方式,则需要将数据保留在数据源中。在这种情况下,将数据源注册到联合服务器并发布。
提示:
如果在发布要素图层时复制数据,并在后来决定需要保留数据,则从门户项目导出数据、将数据移动到向 ArcGIS Server 注册的数据库或企业级地理数据库,然后发布。
有关注册数据的信息,请参阅如果将数据注册到 ArcGIS Server。
复制数据
复制数据类似于在发布时拍摄源数据的快照。不同于从已注册数据创建的项目,从复制数据创建的项目在数据源发生更改时不会接收来自数据源的动态更新。如果不需要 web 图层访问源数据,那么在发布时复制数据是一个合适的工作流。
以下情况可复制数据:
- 您正在向门户上传文件,并希望从中发布。
- 防火墙外部的用户需要访问数据。
- 您和其他用户只通过 web 图层访问数据。
- 您使用的应用程序或功能要求将数据存储在 ArcGIS Data Store 中。
- 您使用的数据类型要求您在发布时复制数据。
从 ArcGIS Pro 发布 3D 多面体数据或矢量切片时,必须在发布时复制数据。但是,尽管始终复制多面体缓存,您仍然可以选择将关联的要素数据保留在注册数据存储中,或是复制这些数据。
复制的数据可以由用户管理,也可以由 ArcGIS 管理。
由 ArcGIS 管理的数据
ArcGIS 管理的数据是 ArcGIS Enterprise 门户中的托管数据。从托管数据构建的服务始终位于门户的托管服务器中,数据始终存储在 ArcGIS Data Store 或托管服务器中。
ArcGIS Enterprise 中的许多常见工作流及其后续输出都取决于创建托管图层的能力。托管图层不仅创建为上传数据集和明确选择将其发布为新图层的直接操作。托管图层也创建为 ArcGIS Enterprise 门户中大量操作的输出:例如运行分析工具,以及复制要素图层的分布式协作工作流的一部分。
发布位置
组织成员可以从门户中的文件发布、从 ArcGIS Pro 发布、从 ArcMap 发布、从数据存储项目发布或使用 ArcGIS API for Python 发布。
从门户中的文件发布
您可以从向门户添加的某些文件发布托管 web 图层。
从门户中的文件进行发布时,生成图层的服务始终在门户的托管服务器上运行。
下表列出了您可以上传的文件、从中发布的托管 web 图层以及图层数据的存储位置:
文件 | 图层类型 | 图层的数据存储位置 |
---|---|---|
CSV 文件、Microsoft Excel 文件、GeoJSON 文件、压缩 shapefile、压缩文件地理数据库 | ArcGIS Data Store(关系数据存储) | |
切片包 (.tpk)、服务定义 (.sd) 文件,或矢量切片包 (.vtpk) | 托管服务器中的文件 | |
场景图层包 (.slpk) | ArcGIS Data Store(切片缓存数据存储) | |
影像集合(包含影像文件的 .zip 文件) | 影像文件已转换为镶嵌影像,位于注册到所选联合 ArcGIS Image Server 站点的栅格数据存储中 |
有关发布各种图层类型的信息,请参阅发布托管要素图层、发布托管切片图层、发布托管矢量切片图层、发布托管场景图层和发布托管影像图层。
从 ArcGIS Pro 发布
向 ArcGIS Pro 中的地图和场景添加图层时,可将图层共享为 web 图层。根据您创建的图层类型,图层的数据可以复制到 ArcGIS Data Store、联合服务器,或托管服务器,或保留在注册的数据源中。选择将数据保留在注册数据源的同时,您还选择了运行服务的联合 ArcGIS Server 站点。
复制所有数据
从 ArcGIS Pro 进行发布时如果选择复制所有数据,那么生成 web 图层使用的数据将不同于地图或场景中的源数据。有一些 web 图层需要复制所有数据。其中包括以下内容:
- 矢量切片图层
矢量切片图层从地图中的点、线、面或多点要素图层中共享(发布)。图层数据将被缓存,切片在门户托管服务器中的存储方式与上传矢量切片包并在门户网站中发布的方式相同。服务在托管服务器上运行,并在门户中创建一个切片图层。有关如何创建满足发布矢量切片图层要求的信息,请参阅 ArcGIS Pro 帮助中的为创建矢量切片制作地图。
- 切片图层
切片图层从 ArcGIS Pro 中的地图发布。发布切片图层会在门户的托管服务器上创建缓存地图服务,并会在门户中创建切片图层项目。切片缓存在托管服务器中的存储方式与在门户网站中发布切片包或服务定义文件的方式相同。有关作为切片图层发布地图和图层的信息,请参阅 ArcGIS Pro 帮助中的创作 web 地图。
- 场景图层
共享来自 ArcGIS Pro 的场景图层时,会在门户中创建托管场景图层和要素图层。场景服务始终位于托管服务器上,场景缓存在切片缓存数据存储中的存储方式与在门户网站中发布场景图层包的方式相同。但是,您需要确定是关联要素图层引用注册数据,还是将数据复制到关系 ArcGIS Data Store。
在 ArcGIS Pro 中发布要素图层时,您可以选择存储数据的位置。如果在发布时选择复制所有数据,则数据将被复制到关系 ArcGIS Data Store。
从 ArcGIS Pro 中将镶嵌数据集或栅格数据集发布为影像图层时,在大多数情况下,应引用源数据。有关发布影像图层的信息,请参阅 ArcGIS Pro 帮助中的 Web 影像图层。
提示:
如果您是从 ArcMap 过渡,则下表列出了 ArcMap 中的发布工作流,这些工作流等效于在 ArcGIS Pro 中发布和复制数据的工作流:
在 ArcGIS Pro 中使用复制所有数据发布的图层 | ArcMap 中的等效发布工作流 |
---|---|
向 ArcGIS Enterprise 门户发布矢量切片图层 | 没有等效的 ArcMap 工作流。 |
向 ArcGIS Enterprise 门户发布切片图层 | 登录到 ArcGIS Enterprise 门户时,向我的托管服务发布具有切片地图功能的服务。 |
向 ArcGIS Enterprise 门户发布场景图层 | 没有等效的 ArcMap 工作流。 |
向 ArcGIS Enterprise 门户发布要素图层 | 登录到 ArcGIS Enterprise 门户时,向我的托管服务发布具有要素访问功能的地图服务。 |
发布 web 工具时复制数据
您可以从 ArcGIS Pro 向门户共享地理处理脚本或模型。进行这一操作时,您需要确定是否向服务器复制用于脚本或模型的数据,这一决定将创建服务使用的数据静态复本或创建服务可访问的参考。如果选择复制数据,则数据将存储在联合服务器中。
发布 web 工具会在所选联合服务器上创建地理处理服务,并在门户上创建 web 工具项目。
从托管要素图层发布托管地图图像图层
通过开始使用 ArcGIS Pro 2.5,可以从您拥有的托管要素图层或托管时空要素图层发布托管地图像图层。数据将保留在关系数据存储或时空大数据存储中,托管地图像图层显示该数据。
如果您想要使要素图层数据以完全只读的形式供用户使用,则可能需要执行此操作。您可以使托管要素图层保持可编辑状态,以便对数据进行更新,并将托管地图图像图层与更广泛的受众共享。当显示大量数据时,托管地图像图层可能具有更好的性能,且它们支持比托管要素图层更广泛的符号系统。因此,您可能从托管要素图层发布托管地图图像图层,以将地图图像图层作为您与其他人共享的地图中的参考数据。
有关从托管要素图层发布托管地图像图层的详细信息,请参阅ArcGIS Pro 帮助。
引用注册数据
如果希望 web 图层引用源数据,必须将数据源注册到运行服务的 ArcGIS Server 站点。这可以确保服务能够访问数据。有关详细信息,请参阅 ArcGIS Pro 帮助中的管理托管数据存储。通过开始使用 ArcGIS Pro 2.5,数据存储项目将创建于注册数据源的门户中。
从注册数据库发布要素图层时,数据将保留在源数据库或企业级地理数据库中,并在门户中创建要素图层项目和地图图像图层项目。还会在发布时选择的联合服务器上创建启用了要素访问功能的地图服务。
对于影像图层来说,数据会保留在源地理数据库或文件夹中,在联合 ArcGIS Image Server 站点中创建影像服务,以及在门户中创建影像图层项目。
如果要从 ArcGIS Pro 中的地图发布地图图像图层,则必须将一个或多个数据源注册到要发布的联合服务器中。地图中的所有数据都将保留在注册数据源中,联合服务器中将创建地图服务,并且门户中将创建地图图像图层。
提示:
如果您是从 ArcMap 过渡,则下表列出了 ArcMap 中的发布工作流,这些工作流等效于在 ArcGIS Pro 中发布引用数据的工作流:
在 ArcGIS Pro 中使用引用已注册数据发布的图层 | ArcMap 中的等效发布工作流 |
---|---|
向联合 ArcGIS GIS Server 站点发布要素图层。 | 将具有要素访问功能的地图服务发布到授权为 ArcGIS GIS Server 并与门户联合的 GIS 服务器。 |
向联合 ArcGIS Image Server 站点发布影像图层。 | 将镶嵌或栅格数据集发布到授权为 ArcGIS Image Server 并与门户联合的 GIS 服务器。 |
向联合 ArcGIS GIS Server 站点发布地图图像图层。 | 将地图服务发布到授权为 ArcGIS GIS Server 并与门户联合的 GIS 服务器。 |
有关向联合服务器发布地图、要素和影像的详细信息,请参阅发布到门户联合服务器的图层。
使用引用数据发布 web 工具
将地理处理脚本或模型作为 web 工具从 ArcGIS Pro 共享时,您可以选择引用注册数据,而不是复制所有数据。如果希望工具引用数据,则数据必须位于注册到联合服务器的企业级地理数据库中。
从 ArcMap 发布
从 ArcMap 进行发布时,可以发布到门户或 ArcGIS Server 站点。如果 ArcGIS Server 站点与门户联合,则会发布时创建门户项目。
发布到门户
要从 ArcMap 将托管要素图层或托管切片图层发布到 ArcGIS Enterprise 门户,请将 ArcGIS Desktop 配置为连接到门户,从地图登录到门户,并将具有要素访问功能或切片地图功能的服务发布到我的托管服务中。
将具有要素访问功能的服务发布到我的托管服务时,数据将被复制到关系 ArcGIS Data Store,在门户的托管服务器中创建托管要素服务,并在门户中创建托管要素图层项目。将具有切片地图功能的服务发布到我的托管服务时,将在托管服务器中创建缓存地图切片和托管地图服务,并在门户中创建托管切片图层。
有关从 ArcMap 连接和发布到门户的信息,请参阅与门户搭配使用 ArcGIS Desktop。
发布至联合 ArcGIS Server 站点
从 ArcMap 创建到联合服务器的发布者 GIS 服务器连接,并发布 ArcGIS Server web 服务中描述的服务。如果您将要素数据发布为具有要素访问、WFS 访问或 WMTS 访问功能的地图服务,则必须将源数据库注册到联合 ArcGIS Server 站点。如果未注册,您将收到一条警告,指示将在发布时复制数据。如果继续发布,数据将被复制到联合服务器。如果发布的地图服务具有要素访问功能(或要素服务),并且数据被复制到联合服务器,则您将无法编辑要素服务中的数据或门户中的要素图层项目。
从数据存储项目发布
当您或其他门户成员将数据存储项目添加到门户时,您发布的图层类型将取决于数据存储的类型。
- 数据库数据存储项目 - 批量发布要素图层和地图影像图层,这些图层引用了可通过数据存储项目进行访问的数据库中的数据。
- 文件夹和云数据存储项目 - 可以根据文件夹和云数据存储项目创建影像图层。影像图层将引用可通过数据存储进行访问的影像文件。
使用 ArcGIS API for Python 发布
您可以使用 ArcGIS API for Python GIS 模块中的 Item 类将项目发布到使用 Python 脚本和 notebook 的 ArcGIS Enterprise 门户。有关基于场景的示例,请参阅面向内容发布者的 ArcGIS API for Python 示例 notebook。