可使用迁移存储地理处理工具将现有的二进制列、空间列或栅格列从一种存储类型迁移到另一种存储类型。为此,可以指定一个包含 ATTRBUTE_BINARY、GEOMETRY_STORAGE 或 RASTER_STORAGE 参数的配置关键字,并将参数设置为数据转换的目标存储类型。
也可以使用迁移存储地理处理工具更改 SQL Server 中的地理数据库中参数对象和表面片几何属性的存储格式。
创建配置关键字,并使关键字包含正确的参数和值,这一点非常重要。如果指定的关键字中包含不正确的信息或缺少必要的信息,将会从 DEFAULTS 关键字读取所需信息。Esri 建议您专门为迁移创建自定义关键字。 确保关键字中包含将要向其中迁移数据的参数和值,以及 UI_TEXT 参数。UI_TEXT 参数使关键字也可用于 ArcGIS 客户端。
以下是各数据库管理系统所支持的迁移路径:
数据库管理系统 | 配置参数 | 迁移路径 |
---|---|---|
Oracle | ATTRIBUTE_BINARY | 从 Long raw 到 BLOB |
GEOMETRY_STORAGE | 从 Long raw (SDEBINARY) 到 BLOB (SDELOB) | |
从 Long raw (SDEBINARY) 到 ST_Geometry | ||
从 BLOB (SDELOB) 到 ST_Geometry | ||
从 SDO_Geometry 到 ST_Geometry | ||
RASTER_STORAGE | 从 Long raw 到 BLOB | |
从 Long raw 到 ST_Raster* | ||
从 BLOB 到 ST_Raster* | ||
PostgreSQL | RASTER_STORAGE | 从 Bytea 到 ST_Raster* |
SQL Server | RASTER_STORAGE | 从 Image 到 ST_Raster* |
GEOMETRY_STORAGE | 从 SDEBINARY 到 Geometry | |
从 SDEBINARY 到 Geography | ||
从 OGCWKB 到 Geometry | ||
从 OGCWKB 到 Geography | ||
从存储在相关表中的几何属性到存储在基表的列中的几何属性 |
*地理数据库中必须安装 ST_Raster。有关说明,请参阅在 Oracle 中安装 ST_Raster、在 PostgreSQL 中安装 ST_Raster 或在 SQL Server 中安装 ST_Raster。
为何迁移数据?
以下是迁移数据的原因:
- 使用结构化查询语言 (SQL) 访问空间数据或栅格数据
- 从将来可能不受支持的数据类型迁移到受支持的数据类型
- 将几何属性信息从 SQL Server 中的端表移至基表中的列以改善宗地结构中的性能
使用 SQL 访问数据
通过 SQL 访问地理数据库中的信息允许外部应用程序(不是在 ArcObjects 环境中开发的应用程序)使用地理数据库管理的表格数据。如果这些外部应用程序需要访问地理数据库中的空间数据或栅格数据,您必须将空间数据或栅格数据存储为允许 SQL 访问的数据类型。例如,ST_Geometry 存储类型允许通过 SQL 访问要素数据。如果将数据存储在 BLOB 或 long raw 字段中,将无法轻松访问这些数据。
迁移将来版本可能不支持的数据类型
在默认情况下,创建于 SQL Server 中 ArcGIS 10.1 及更新版本地理数据库的要素类使用 Microsoft 几何类型。要将现有要素类移动到几何存储类型,请使用迁移存储地理处理工具或 Python 脚本。
移动几何属性以改善性能
从 ArcGIS 10.5 开始,参数对象(例如真曲线)和曲面片(例如 PointID 和多面体)几何属性的存储得到了改善:可直接存储于业务表中。 在更早版本中,该属性数据存储在已连接业务表的相关表中。该连接会造成性能降低,使用宗地结构时常会注意到该连接。
如果现有要素类参与宗地结构或存储真曲线、多面体或 pointID,并且您发现显示性能降低,请考虑迁移这些几何属性的存储。以下为支持的现有要素类迁移路径:
- 存储类型为 Microsoft 几何,并且您希望继续使用几何类型。
要从相关表中将几何属性迁移至要素类业务表中的新列,请指定 GEOMETRY_STORAGE 参数设置为 Geometry 的配置关键字,然后运行迁移存储工具。
- 存储类型为 Microsoft 地理,并且您希望继续使用地理类型。
要从相关表中将几何属性迁移至要素类业务表中的新列,请指定 GEOMETRY_STORAGE 参数设置为 Geography 的配置关键字,然后运行迁移存储工具。
- 存储类型为 SDEBINARY,并且您希望迁移至 Microsoft 几何类型。在此情况下,请指定 GEOMETRY_STORAGE 参数设置为 Geometry 的配置关键字,然后运行迁移存储工具。由此可将空间数据类型和几何属性迁移至新存储格式。
在此情况下,请指定 GEOMETRY_STORAGE 参数设置为 Geography 的配置关键字,然后运行迁移存储工具。由此可将几何属性迁移至新存储格式。
- 存储类型为 SDEBINARY,并且您希望迁移至地理类型。
在此情况下,请指定 GEOMETRY_STORAGE 参数设置为 Geography 的配置关键字,然后运行迁移存储工具。由此可将空间数据类型和几何属性迁移至新存储格式。
迁移先决条件
转换数据之前必须满足以下条件:
- 在迁移数据之前,必须对数据进行备份。
- 如果要转换空间列数据类型,必须采用高精度存储数据。如果当前采用基本精度存储数据,则必须首先将数据迁移到高精度,然后才能迁移存储类型。使用升级空间参考地理处理工具升级到高精度。
- 表或要素类必须注册到地理数据库。
- 迁移数据类型时所指定的配置关键字的 GEOMETRY_STORAGE、ATTRIBUTE_BINARY 或 RASTER_STORAGE 参数必须含有正确的值。例如,如果要将 long raw 几何列迁移到 ST_Geometry,但指定的关键字却将 GEOMETRY_STORAGE 参数设置为 SDO_GEOMETRY,迁移会因迁移路径不受支持而失败。
- 必须以包含待迁移列的表的所有者身份登录。
- 将要素类迁移到 SQL Server Geography 类型的要求:数据必须采用 Geography 类型支持的地理坐标系。