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