可以从 ArcGIS Pro 连接到受支持的数据库以访问空间和非空间数据。 您可以对数据执行的操作因数据库类型而异。
要访问 ArcGIS 不直接支持的数据库中的非空间数据,请参阅使用 OLE DB 连接。
ArcGIS 支持的数据库类型
可以基于数据库的数据模型、事务支持、部署类型和选项对其进行分类。 由于这些差异,每种数据库类型的 ArcGIS 功能将有所不同。
关系数据库
关系数据库将在由行(或记录)和列(或字段)组成的表中存储和组织高度结构化的数据。 表将通过每个表中的键列相互关联。
这种数据存储模型可提供更线性但可预测的数据关系模型。
可以连接到关系数据库以执行以下操作:
- 显示和分析现有数据。
- 过滤数据。
- 管理现有数据。
- 从其他源添加数据。
- 通过将数据库内容发布到独立或联合 ArcGIS Server 站点来共享数据库内容。 要允许用户编辑数据,请将数据发布为 web 要素图层或要素服务。
如果需要扩展数据库以纳入诸如网络、拓扑、附件或存档之类的功能且您使用以下其中一种数据库管理系统,则您可以在数据库中启用地理数据库。
云数据仓库
数据仓库用于保存不经常进行编辑的结构化数据。 通常将来自多个源的数据添加至仓库,从而提供一个集中的数据存储系统,您可以访问该系统来分析和创建报表。
云数据仓库是托管在云环境中的数据仓库的软件即服务产品。
您可以从 ArcGIS Pro 连接到云数据仓库以执行以下操作:
- 显示和分析现有数据。
- 过滤数据。
- 通过将内容发布到 ArcGIS Enterprise 门户的托管服务器来共享内容。
非关系数据库
非关系数据库(也称为 NoSQL 数据库)定义的模式较少,可以存储非结构化和半结构化数据。 它们在本质上为分布式,通常包含大量数据,并提供强大的分析功能。 ArcGIS 支持以下非关系数据库类型:
图数据库
图数据库将存储构成互连数据模型的实体和关系。 每个实体可以与多个其他实体相关,并且这些关系中的每个关系都可以彼此不同。 借助图数据模型,可以可视化和分析复杂数据结构中的关系。
可以将受支持的图数据库(NoSQL 数据库数据存储)注册到 ArcGIS Knowledge Server 站点以创建和访问知识图谱。 有关受支持的图数据库的信息,请参阅 ArcGIS Knowledge Server 系统要求。
可视化数据
从 ArcGIS 连接到数据库后,您可以通过将数据库连接中的表拖动到该地图中来查看地图中的空间数据。 如有必要,为添加到地图的空间表定义唯一标识符、空间参考和几何类型。
将空间表(要素类)从大多数受支持的数据库拖动到地图上时,ArcGIS 会创建查询图层。 查询图层定义包含所有支持的数据类型的全部列。 ArcGIS 使用表的第一行来确定几何类型(点、多点、线或面)、空间参考和维数(即 2D 或 3D)。 如果不想使用那些属性 - 例如,想要显示表格中的三维记录,但是第一条记录是二维的 - 可以改变查询图层定义。
要查看包含大量要素(数千个或更多)的空间表中的数据,请将查询图层添加至 ArcGIS Pro 中的地图,而非将数据从目录窗格拖动到地图上。 有关将查询图层添加至地图的说明,请参阅以下内容:
要改善大量要素的绘制性能,请在为云数据仓库中的数据定义查询图层时创建物化视图。
另一种改善绘制性能的方法是将要素聚合到图格中。 对于大多数云数据仓库和关系数据库中的点数据,可以启用要素图格以聚合不同比例的要素,从而提高绘图性能并以有效方式在较小比例下绘制大量点。
支持的数据类型
要使用 ArcGIS 中的数据,则数据库表中的数据类型必须映射到 ArcGIS 支持的类型。 如果您的表中包含了 ArcGIS 不支持的数据类型,则 ArcGIS 不会显示这些不支持的列。 使用 ArcGIS 在数据库之间或在数据库与地理数据库之间移动表时,不支持的数据类型将不会包含在目标数据库中。 发布时,不受支持的数据类型将不会包含在 web 服务中。 有关每种数据库管理系统支持的数据类型列表,请参阅 ArcGIS 支持的数据库数据类型。
如果连接到包含 ArcGIS 不支持的数据类型的云数据仓库中的表,则 ArcGIS 不会显示这些不支持的列。 发布时,不受支持的数据类型将不会包含在 web 服务中。 有关详细信息,请参阅 ArcGIS 中支持的云数据仓库数据类型。
提示:
ArcGIS Pro 添加了对以下数据类型的支持:
- 大整数
- 仅日期
- 仅时间
- 时间戳偏移
各个数据库和云数据仓库平台对新数据类型提供的支持有所不同。 有关详细信息,请参阅 ArcGIS 中支持的数据库数据类型。
分析数据
您可以使用许多不同的地理处理工具来分析关系数据库或云数据仓库中的数据。 但是,如果该工具将记录添加到了现有数据库表中,则该表必须包含由该关系数据库维护的唯一标识符。 云数据仓库不支持向表添加记录的工具。
不过,在对大要素类进行空间分析时,在查询图层界面中写入使用数据库或云数据仓库的原生 SQL 函数的查询可能会更为高效。 这些查询在数据库或云数据仓库中进行处理。
过滤数据
您可以在查询图层界面中写入 SQL 查询以过滤地图中返回的数据。
如果希望在地图或工程之外的环境中仍然保留过滤器,则可在您的数据库中创建针对表的视图。 您可以通过运行创建数据库视图地理处理工具在数据库中创建视图,使用 SQL 创建调用工具的 Python 脚本或在数据库中直接定义视图。 使用第三方工具中的 SQL 在云数据仓库中创建视图。
管理数据
ArcGIS 提供多种工具以帮助您对关系数据库中的数据进行管理。 云数据仓库或非关系数据库不支持这些工具。
授予和撤消数据库表的权限
表所有者可以使用权限对话框或更改权限地理处理工具对其他数据库用户或角色授予或撤消权限。 有关说明,请参阅授予和撤消数据集权限。
管理索引和统计数据
可以使用重新构建索引和分析数据集工具来为您在数据库中拥有的表格重新构建索引及更新数据库统计数据。
请注意,SAP HANA 不具有用户创建的索引;因此无需对 SAP HANA 中的表运行重新构建索引工具。
更改数据库表的方案
您可以通过表属性或要素类属性对话框的字段选项卡向关系数据库中您所拥有的表添加字段,也可以从中移除字段。
重命名表
如果关系数据库管理系统允许,则可以更改已有数据库表的名称。
添加数据
您可以在 ArcGIS 中使用工具创建表并将来自其他数据源的数据加载到关系数据库中。 使用 ArcGIS 创建表和加载数据的选项包括:
- 从源数据库中复制表,然后将其粘贴到目标数据库中。
- 将表从一个数据库连接拖动到另一个数据库连接。
- 使用复制地理处理工具。*
- 使用复制要素地理处理工具。*
- 使用复制行地理处理工具。*
- 在数据库中创建一个表或要素类,然后使用追加地理处理工具引入来自其他源的记录。*
*不能与不含由数据库维护的唯一标识符的表一起使用。
要在数据库中创建表或要素类,以用户身份连接到数据库并具有创建数据库对象的权限。 数据库管理员可以使用 SQL 创建用户并授予所需权限,或运行创建数据库用户地理处理工具,以创建具有可以为工具支持的数据库创建数据库对象的权限的用户。
发布数据
在 ArcGIS Pro 中,您可以发布相应 web 图层(web 服务),这些 web 图层(web 服务)用于访问关系数据库或云数据仓库中的数据。 您可以发布的内容将取决于您使用的数据源。
当基于 NoSQL 数据库中的数据创建知识图谱时,将会创建一个知识图谱服务,但您无法像对关系数据库或云数据仓库数据那样直接发布该服务。 有关详细信息,请参阅配置知识图谱。
发布关系数据库数据
如果具有独立或联合 ArcGIS GIS Server 站点,则在创作包含数据库数据的地图后,即可发布地图图像图层,以便其他用户通过 web 访问您的地图。 如果 GIS Server 站点与 ArcGIS Enterprise 门户联合,则地图影像图层项目将被添加到门户中。
要允许其他用户编辑您的数据库数据,请发布 web 要素图层。
发布云数据仓库数据
如果地图包含来自云数据仓库的数据,您可以将地图影像图层或只读要素图层发布到 ArcGIS Enterprise 门户的托管服务器。
服务访问的数据(源数据、数据视图或复制到系统托管数据存储的数据)取决于您发布的数据类型和您在发布时选择的选项。
编辑数据
从 ArcGIS 编辑数据库中的数据的方式取决于数据库源。
- SQLite 数据库和 OGC GeoPackage 文件 - 可将这些源中的数据添加至 ArcGIS Pro 中的地图并编辑该数据。
- 支持的管理数据库 - 发布可编辑 Web 要素图层并通过要素图层进行编辑。
如果您的 GIS Server 站点与 ArcGIS Enterprise 门户联合,则需要发布引用源数据的 web 要素图层。 由此将在门户中创建一个要素图层项目,您可以与所属成员需要编辑数据的群组共享此项目。 可以通过 web 要素图层来设置要允许的编辑级别:
如果您拥有独立 GIS Server 站点,则需要在启用要素功能的情况下发布地图服务,启用服务的编辑功能,并授予用户对服务的访问权限,以便用户能够编辑数据。
- 您无法从 ArcGIS 编辑云数据仓库中的数据。
启用地理数据库功能
如果您需要在关系数据库中实现地理数据库功能,例如拓扑、网络或版本化编辑,您可以创建地理数据库管理员用户,然后以该用户身份连接到数据库,这样便可在那些支持地理数据库的数据库中启用地理数据库。 此操作会创建使用地理数据库所需的系统表、类型、过程和函数。
注:
您无法在云数据仓库或非关系数据库中启用地理数据库。
在受支持的关系数据库中启用地理数据库后,通过 ArcGIS 添加的所有新表或要素类都会自动注册到地理数据库。 也可以将现有数据库表注册到地理数据库,或者保留不注册并仍通过 ArcGIS 进行访问。