可以从 ArcGIS 客户端进行连接,然后使用数据库管理系统、数据库文件或在此列出的数据仓库设备中的数据。 要查看使用 ArcGIS 中数据库时可用的功能描述,请参阅数据库和 ArcGIS。
数据库管理系统之间的区别在于实施方式和所提供的功能不同。 因此,使用 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 数据库的空间数据未定义空间参考,SAP HANA 将分配默认为 0 的 SRID,即使用 2D 平面上的数据的笛卡尔空间参考系统。
SQLite 和 OGC GeoPackage
SQLite 是一种独立的数据库文件格式,可以访问简单要素并支持单个编辑器。 OGC GeoPackage 文件根据 SQLite 数据库文件构建而成。
独立的 SQLite 和 GeoPackage 文件对于在软件包之间交换数据或者在软件包中嵌入数据非常有用。
这两种文件类型都与 ArcGIS 支持的其他数据库明显不同。
- 由于它们是文件;因此,通过在其中存储文件的文件夹来控制访问权限。 在文件夹上设置特权以限制可访问其内容的人员。
- 要访问 SQLite 数据库,ArcGIS 要求数据库文件具有扩展名 .sqlite。 可以使用 Esri ST_Geometry 或 SpatiaLite 以在具有 .sqlite 扩展名的数据库文件中存储和访问空间数据。
- 要访问 GeoPackage,ArcGIS 要求文件具有扩展名 .gpkg。
- 每个 SQLite 数据库只能使用一种空间存储类型。 有关将空间存储类型添加到现有数据库的信息,请参阅在空间上启用 SQLite 数据库。
- SQLite 或 OGC GeoPackage 未强制使用字段数据类型定义。
- 您无法在 SQLite 或 GeoPackage 文件中发布数据。
要创建使用 ST_Geometry 或 SpatiaLite 存储的 SQLite 数据库,或创建 GeoPackage,可使用创建 SQLite 数据库地理处理工具。
数据访问
通过控制对存储 SQLite 数据库或 GeoPackage 的文件夹的权限来控制对 SQLite 数据库或 GeoPackage 的访问。 与其他数据库不同的是,您没有创建经过数据库验证的用户或将特定数据集的权限授予其他用户。
从 ArcGIS 连接到 SQLite 或 GeoPackage 时,您需要将连接添加到该文件夹。
SQLite 和 GeoPackage 文件可由多个用户进行读取,但在其他用户编辑数据或更新数据库时,您不能更新数据库或数据库的任何内容。 例如,当其他用户加载数据或在数据库中创建表时,不要将数据追加到现有表或在数据库中创建表。
数据类型
SQLite 与其他数据库的不同之处还在于,不会为字段分配特定的数据类型,而且不必严格遵守数据类型定义。 但 SQLite 会使用可在其中存储不同数据类型值的存储类。
但是,ArcGIS 的每个字段只能使用一种数据类型,并且要严格规定数据类型。 查看 ArcGIS 中的 SQLite 数据时您应该注意数据类型强制遵守方面的不同。
以下示例将创建一个包含整型和文本型字段的表:
CREATE TABLE mytable (
id INTEGER PRIMARY KEY NOT NULL,
item TEXT,
weight INTEGER,
store TEXT;
即使权重字段被定义为整数,SQLite 也允许您存储带有小数的数字。 还允许您在其中存储文本。 例如,您可以插入以下记录:
INSERT INTO mytable (id, item, weight, store) VALUES(
1,
"magnetic dual elliptical trainer with seat",
75,
"CardioPlus Equipment"
);
INSERT INTO mytable (id, item, weight, store) VALUES(
2,
"superfit treadmill4000",
81.2,
"Sports Pit"
);
INSERT INTO mytable (id, item, weight, store) VALUES(
3,
"serenity yoga mat",
.4588,
"Aerobic Angels Sporting Goods"
);
INSERT INTO mytable (id, item, weight, store) VALUES(
4,
"swim fins",
"two",
"The Plunge"
);
但由于权重字段被定义为整数,因此这些值会在 ArcGIS 中以如下方式显示:
id | 项目 | 权重 | 商店 |
---|---|---|---|
1 | magnetic dual elliptical trainer with seat | 75 | CardioPlus Equipment |
2 | superfit treadmill4000 | 81 | Sports Pit |
3 | serenity yoga mat | 0 | Aerobic Angels Sporting Goods |
4 | swim fins | 0 | The Plunge |
有关哪些 SQLite 数据类型映射哪些 ArcGIS 数据类型的列表,请参阅 ArcGIS 支持的 DBMS 数据类型。
请参阅 ArcGIS 支持的 SQLite 版本。
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 字段。
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 添加数据以在地图中进行查看和分析,则添加查询图层并定义仅返回数据子集的查询图层表达式。
- 如果要向 ArcMap 中添加数据以发布地图服务,则定义仅包含数据子集的数据库视图。 数据库视图存储在数据库中。 可使用创建数据库视图地理处理工具或 SQL 客户端来定义视图。
- 如果要向 ArcMap 添加数据以发布要素服务,请在向地图添加数据前取消选中此选项以默认将新添加的图层设置为可见。 接下来,打开图层属性并使用 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 客户端放在与云数据库相同的云端和位置(区域)中。