可以从 ArcGIS 客户端进行连接,然后使用数据库管理系统、数据库文件或在此列出的数据仓库设备中的数据。 要查看数据库如何与 ArcGIS Server 搭配使用,请参阅数据库和 ArcGIS Enterprise。
数据库管理系统之间的区别在于实施方式和所提供的功能不同。 因此,使用 ArcGIS 中的各个数据库类型时,有时需要了解其说明和规则。 这些参数将在下面的章节中列举:
Dameng
空间数据存储在 Dameng 几何类型中。 典型的 Dameng 安装包括空间类型;但是,您必须对其进行初始化才能使用。
请参阅 ArcGIS 支持的 Dameng 版本。
IBM Db2
Db2 使用操作系统登录帐户验证数据库连接。 但是,从数据库连接对话框或创建数据库连接地理处理工具连接至 Db2 时,可指定数据库身份验证选项。 这使您可以保存用于登录的特定用户名和密码,如果使用 ArcGIS Server 注册数据库连接需要用户名和密码。
ArcGIS 需要唯一的标识字段以渲染地图中的要素。 创建要素时,ArcGIS 依靠数据库向唯一的标识字段插入值。 由于 Db2 z/OS 不具备用于向 ID 字段填充值的数据类型或内置机制,Db2 z/OS 中的数据库无法使用在数据库表中创建行的 ArcGIS 工具。 此外,由于无法将 ArcGIS 中的要素插入到 Db2 z/OS 表,因此您无法发布包含 Db2 z/OS 数据库中数据的要素服务。
请参阅 ArcGIS 支持的 Db2 版本。
IBM Informix
Informix 使用操作系统登录帐户验证数据库连接。 但是,从数据库连接对话框或创建数据库连接地理处理工具连接 Informix 时,可指定数据库身份验证选项。 这使您可以保存用于登录的特定用户名和密码,如果使用 ArcGIS Server 注册数据库连接需要用户名和密码。
Microsoft SQL Server
虽然 Microsoft 允许 SQL Server 用户帐户将数据写入任何名称的方案,ArcGIS 要求在数据库中创建表、视图或其他对象的用户帐户拥有相同用户名和方案名。 例如,您无法从名为 elmer 的 ArcGIS 进行连接并写入名为数据所有者的方案。
Oracle
ArcGIS 支持 Oracle 数据库中的 Oracle SDO_Geometry 和 Esri ST_Geometry 空间类型。 SDO_Geometry 是独立的第三方安装程序。 要使用 Esri ST_Geometry 类型来存储空间数据,请将 ST_Geometry 形状库复制到 Oracle 计算机并运行创建空间类型地理处理工具以创建 ST_Geometry 类型、子类型和函数。
请参阅 ArcGIS 支持的 Oracle 版本。
PostgreSQL
ArcGIS 支持 PostgreSQL 数据库中的 PostGIS 几何和地理类型及 Esri ST_Geometry 空间类型。 PostGIS 是单独的第三方安装。 要使用 Esri ST_Geometry 类型来存储空间数据,请将 st_geometry 形状库复制到 PostgreSQL 安装并运行创建空间类型地理处理工具以创建 ST_Geometry 类型、子类型、视图和函数。
虽然 PostgreSQL 允许用户帐户将数据写入任何名称的方案,ArcGIS 要求在数据库中创建表、视图或其他对象的用户帐户拥有相同用户名和方案名。 例如,您无法从名为 vlad 的 ArcGIS 进行连接并写入公共方案。
SAP HANA
使用 SAP HANA 时应谨记以下信息:
- SAP HANA 使用分栏式数据存储,相当于其自己的索引。 因此,SAP HANA 表中的空间列不需要使用空间索引来实现查询性能。
- 由于 SAP HANA 不使用用户定义索引,因此不需要在 SAP HANA 的表中管理或重建索引。
- 将数据加载到 SAP HANA 时,数据使用的空间参考必须存在于 SAP HANA 系统表中。
- SAP HANA 将 WGS84 平面制图表达中的其空间参考系统 EPSG ID 4326 重新定义为圆形地球制图表达。 SAP HANA 中通过空间参考系统 4326 存储空间数据的表在 ArcGIS 中可能不会按预期执行。
SAP HANA 中 WGS84 (EPSG ID:4326) 的圆形地球执行包含关键限制,使用特定数据类型时,这些关键限制是不适合的。 例如,超过半球边界或跨半球边界线的全球数据集返回的结果不一致。 使用 ArcGIS 创建或加载的数据继续通过 WGS84 (EPSG ID 1000004326) 坐标系统的平面版本存储,以确保 ArcGIS 可处理所有类型的数据。 但是,ArcGIS 可使用 SQL 或第三方产品读取您在 SAP HANA 中创建的圆形地球 WGS 数据。
- SAP HANA 在其 ST_SPATIAL_REFERENCE_SYSTEMS 系统视图中存储空间参考系统信息。 加载到 SAP HANA 的空间数据必须具备空的空间参考或使用存在于 ST_SPATIAL_REFERENCE_SYSTEMS 系统视图中的空间参考。 如果该视图不包含您想加载数据的空间参考系统,则使用 SAP HANA CREATE SPATIAL REFERENCE SYSTEM 语句更新包含所需空间参考系统的视图。
提示:
有关详细信息,请参阅 SAP HANA 空间参考文档的 CREATE SPATIAL REFERENCE SYSTEM 页。
如果导入或复制到 SAP HANA 数据库的空间数据未定义空间参考,SAP HANA 将分配默认为 0 的 SRID,即使用 2D 平面上的数据的笛卡尔空间参考系统。
Teradata Data Warehouse Appliance
要从 ArcGIS 连接到 Teradata Data Warehouse Appliance,您必须在 ArcGIS 客户端计算机上按特定顺序安装 Teradata GSS 客户端、ICU 库和 ODBC 驱动程序。 有关信息,请参阅连接至 Teradata。
以下列出了将 Teradata Data Warehouse Appliance 与 ArcGIS 结合使用的准则:
- 表中的空间列必须命名为 shape 或在视图中使用别名 shape。
Teradata ST_Geometry 类型的基础存储是 CLOB;因此,列的名称或别名 (shape) 是 ArcGIS 确定列存储空间数据的唯一途径。
- 将表从 ArcGIS 客户端添加到 Teradata 时,ArcGIS 将始终在用户自己的数据库中创建表。 ArcGIS 不支持在用户自己数据库以外的数据库中创建表。 (用户和数据库必须具有相同的名称。)在 ArcGIS 之外添加的表不需要遵循此规则,从 ArcGIS 连接到 Teradata 的用户仍可查看和发布数据。 如果您发布可编辑的要素服务,则用户可以编辑数据。
- 您必须使用 Teradata 提供的镶嵌函数在 Teradata ST_Geometry 列上创建和维护空间索引。
Teradata 通过一个预定义的感兴趣区域使用镶嵌空间索引。 因此,基于动态输入的 ArcGIS 空间操作(如放大、缩小和平移)无法使用镶嵌索引。 但如果用于定义查询图层的 SQL 语句明确使用镶嵌索引查询数据子集(基于感兴趣的区域),则可在查询图层中使用镶嵌索引。
- ArcGIS 需要唯一的标识字段以渲染地图中的要素和发布 web 服务。 ArcMap 在您将空间表添加到地图时会提示您指定此唯一 ID 字段。ArcMap 和 ArcGIS Pro 在您将空间表添加到地图时会提示您指定此唯一 ID 字段。
ArcGIS 工具不会将新值插入到数据库中的唯一 ID 字段中;而是依赖于数据库向字段插入值。 由于 Teradata 不具备用于向 ID 字段填充值的数据类型或内置机制,Teradata 无法使用在数据库表中创建行的 ArcGIS 工具。
- 作为 Teradata 用户,您了解 Teradata 14.x ST_Geometry 仅支持二维空间数据;因此,不能将含有 z- 或 m- 坐标的空间数据粘贴到 Teradata 14.x。 Teradata 15.0 ST_Geometry 支持 z- 坐标但不支持 m- 坐标;因此,不能将含有 m- 坐标的空间数据粘贴到 Teradata 15.0。
- 大多数情况下,您会在 Teradata Data Warehouse Appliance 中存储大量数据。 要在 ArcGIS 客户端中查看、执行分析或发布数据,请使用数据子集。 操作方式取决于您使用数据的目的。
- 如果要向 ArcMap 或 ArcGIS Pro 添加数据以在地图中进行查看和分析,则添加查询图层并定义仅返回数据子集的查询图层表达式。
- 如果要向 ArcMap 添加数据以发布地图服务或向 ArcGIS Pro 添加数据以发布引用注册数据的地图影像图层,请定义仅包含数据子集的数据库视图。 数据库视图存储在数据库中。 可使用创建数据库视图地理处理工具或 SQL 客户端来定义视图。
- 如果要向 ArcMap 添加数据以发布要素服务,请在向地图添加数据前取消选中此选项以默认将新添加的图层设置为可见。 接下来,打开图层属性并使用 SQL 创建用于定义数据子集的定义查询。 限制地图中显示的数据量后,将图层设为可见并准备地图以供发布。
- 如果要向 ArcGIS Pro 添加数据以发布引用注册数据的要素图层或发布到门户,请在向地图添加数据前取消选中此选项以默认将新添加的图层设置为可见。 接下来,使用 SQL 为定义数据子集的图层创建定义查询。 限制地图中显示的数据量后,将图层设为可见并准备地图以供发布。
警告:
除非已对地图进行设置使数据在添加时不会自动显示,否则在尚未定义数据子集的情况下,请勿将数据直接从数据库连接中拖动到地图。 通常存储在数据仓库设备中的超大型数据集将花费大量时间才能显示在地图上。
- 如果使用 ArcGIS 向 Teradata 数据库添加要素类,并且为要素类指定的空间参考不在 Teradata 系统表中,ArcGIS 将会向 Teradata SPATIAL_REF_SYS 表添加记录,从而使该记录也添加到 GEOMETRY_COLUMNS 表中。
这允许您使用比 Teradata 默认提供的更多的空间参考。 但升级为主要 Teradata 版本时可能会删除这些表并进行重建,重建后的表中只包含默认值。
升级 Teradata 前,应始终对数据库进行备份。 确保备份中含有这些表中的记录,因此在升级 Teradata 后,可在需要时恢复这些记录。 在数据库升级操作期间,可按照此常规步骤来备份和恢复 SPATIAL_REF_SYS 和 GEOMETRY_COLUMNS 记录:
- 创建数据库的备份。
- 连接到可在其中复制 SPATIAL_REF_SYS 和 GEOMETRY_COLUMNS 表的数据库。
本示例中的数据库命名为 mybackupdb。
database mybackupdb;
- 创建表的备份副本。
本示例中的源表位于 sysspatial 数据库中。
CREATE TABLE mybackupdb.spatial_ref_sys AS sysspatial.spatial_ref_sys WITH DATA; CREATE TABLE mybackupdb.geometry_columns AS sysspatial.geometry_columns WITH DATA;
- 升级 Teradata 源数据库。
- 连接到具有表副本的数据库。
- 在升级后的数据库中恢复表。
--Restore the geometry columns table. INSERT INTO sysspatial.geometry_columns SELECT * FROM mybackupdb.geometry_columns; --Restore the spatial_ref_sys table. INSERT INTO sysspatial.spatial_ref_sys SELECT * FROM mybackupdb.spatial_ref_sys MINUS SELECT * FROM sysspatial.spatial_ref_sys;
- 恢复表内容后,便可删除表的备份副本。
DROP TABLE mybackupdb.spatial_ref_sys; DROP TABLE mybackupdb.geometry_columns;
- 如有必要,向在数据库中创建数据的用户授予这些表的权限。
基于云的数据库(作为服务)
ArcGIS 支持多种基于云的数据库即服务产品。 有关当前受支持服务的列表,请参阅将 ArcGIS 与云中的数据库配合使用的要求。
始终将 ArcGIS 客户端放在与云数据库相同的云端和位置(区域)中。
提示:
Esri 为包含 ArcGIS Enterprise 和 ArcGIS Pro 的 Microsoft Azure 和 Amazon Web Services (AWS) 提供图像。 有关详细信息,请参阅 Microsoft Azure 上的 ArcGIS Enterprise 和 AWS 上的 ArcGIS Enterprise 帮助。