Netezza 和 ArcGIS
如果您正在使用 Netezza 数据仓库设备,则可从 ArcGIS 连接至数据库以对数据子集执行复杂的空间分析。
要在 ArcGIS 中使用 Netezza,必须在数据库管理系统中安装受支持版本的 Netezza Spatial Package,并在 ArcGIS 客户端计算机上安装和配置 Netezza ODBC 驱动程序,以便从客户端计算机建立数据库连接。有关受支持的 Netezza 数据仓库、空间包和 ODBC 驱动程序的列表,请参阅 ArcGIS IBM Netezza Data Warehouse Appliance 的要求。
处理数据
在大多数情况下,您将在数据仓库设备中存储大量数据。要从 ArcGIS 执行分析,您将使用一个仅包含有兴趣对其进行分析的数据的子集。您可以在查询图层定义中定义此子集,也可以创建一个只返回数据子集的数据库视图。
如果要使用查询图层定义,请在 ArcMap 中创建定义文件。单击文件 > 添加数据 > 添加查询图层,可打开新建查询图层 对话框,连接至数据库,然后键入 SQL 语句以定义数据子集。
![警告 警告](rsrc/caution.png)
如何尚未定义数据子集,请不要将数据直接从 ArcMap 的目录 窗口中的数据库连接拖到地图中。正常存储在数据仓库设备中的超大型数据集需要耗费很长时间才能显示在地图上。
如果要使用数据库视图,您可以使用创建数据库视图地理处理工具或 SQL 定义要分析的数据子集。
ArcGIS 中使用的 Netezza 数据指南
ArcGIS 针对使用 Netezza 有两项特定的限制:
- 如果使用传统 Netezza 空间类型,则表中所有空间列必须命名为 shape 或使用别名 shape。
传统空间类型使用 VARCHAR 数据类型;因此,shape 列名称或别名是 ArcGIS 确定该列存储空间数据而非文本的途径。
- ArcGIS 需要唯一的标识字段以渲染地图中的要素。将空间表添加至地图时,系统将提示您指定此唯一 ID 字段。
ArcGIS 工具不会将新值插入到数据库中的唯一 ID 字段中;而是依赖于数据库向字段插入值。由于 Netezza 不具备用于向 ID 字段填充值的数据类型或内置机制,Netezza 无法使用在数据库表中创建新行的 ArcGIS 工具。
其他限制与 Netezza 本身相关。作为 Netezza 用户,我们知道 Netezza 空间存储的是简单数据。因此,您无法将非简单数据从其他数据库粘贴至 Netezza 中。
作为 Netezza 用户,您还了解行的总大小被限制为 65,535 字节。为帮助计算行的大小,下表列出了您通过 ArcGIS 在 Netezza 中创建表或要素类时所创建的 Netezza 数据类型与其占用的磁盘空间数:
ArcGIS 字段类型 | 所创建的 Netezza 数据类型 | 磁盘空间使用 |
---|---|---|
DATE | timestamp | 8 字节 |
DOUBLE | numeric(p,s) 默认情况下,p(精度)= 38 且 s(比例)= 8。 | 精度小于等于 9 = 4 字节 精度为 10-18 = 8 字节 精度为 19-38 = 16 字节 |
FLOAT | 如果指定的精度小于等于 6,将创建 numeric(p,s)。如果指定的精度为 7-15,将创建双精度。 | 数字 = 4 字节 双精度 = 8 字节 |
GEOMETRY | 如果使用传统 Netezza Spatial Package,将会创建一个变量长度字符(最多为 64,000) 的列。 如果使用 Netezza Spatial Esri Package,将会创建 ST_Geometry 列。 | 对于传统 Netezza Spatial Package:
对于 Netezza Spatial Esri Package:
![]() 当数据插入到要素类时,如有任一单个几何的大小超过了字段大小,则将会插入空几何。 例如,如果将面要素类从另一数据源复制并粘贴到您的 Netezza 数据库,则将使用几何字段来创建表(最大为 64,000 字节)。接着,将记录插入表中。如果要插入的几何超过了 64,000 字节,则将插入记录和所有其他属性,但会在几何字段中插入空值。 |
GUID | 固定长度字符 (38) | 40 字节 |
LONG INTEGER | 如果比例大于 0,将创建 numeric(p,s)。如果比例为 0,将创建整数。 | 整数 = 4 字节 numeric 的精度小于等于 9 = 4 字节 数值精度为 10-18 = 8 字节 数值精度为 19–38 = 16 字节 |
OBJECTID | 整型 | 4 字节 |
SHORT INTEGER | smallint | 2 字节 |
TEXT | 变量长度,Unicode(p) 其中 P 表示针对 TEXT 字段指定的字段长度。默认值为 50。 | p x 4 = 使用的字节数量 |