空间架构
Netezza Spatial读写器和写入器依赖于两个元数据表的存在来解读哪些表(和列)是空间的,以及哪些坐标系统与它们相关联。这些元数据表被命名geometry_columns.和SPATIAL_REF_SYS。
写入空间数据时,如果用户连接的当前模式不包含两个所需的元数据表,则元数据表将被克隆并截断一次,从以下位置之一:
对于单个架构配置: |
|
对于多个模式配置: |
|
如果找不到元数据表,则转换失败。如果安装了不包含这些元数据表的inza包,请参阅支持版本和配置介绍如何手动创建这些元数据表。
这f_table_name.列geometry_columns.表记录当前模式中的空间表的名称。如果在当前模式中不存在录制的空间表名称,则在Netezza空间编写器的表列表选择器中不会显示。如果在FME之外创建空间表,请确保将正确更新的机制存在geometry_columns.和SPATIAL_REF_SYS表。请注意表名和列名的含量敏感性。
将空间数据写入数据库时,该数据库具有注册的ESRI空间分析包,或者倒回具有ESRI空间分析包的inza数据库,请注意以下警告。
编写非同质集合会导致数据库错误。在指定坐标系的边界之外写几何图格会导致数据库错误。类似地,当写入坐标崩溃到由指定坐标系定义的离散网格上的几何形状时,并且在折叠导致重复的连续坐标或自交叉点,期望数据库错误。
数据库错误可能导致功能拒绝或转换故障,具体取决于在不良数据上的中止平均值的设置。强烈建议在错误的数据中陷入困境,因为数据库错误导致当前事务的回滚,包括已成功写入的任何良好数据。
FME支持写入每个表的单个几何列。
geometry_columns的列描述
架构geometry_columns.:
列 |
类型 |
修饰符 |
f_table_catalog. |
Nvarchar(256) |
不为空 |
F_TABLE_SCHEMA |
Nvarchar(256) |
不为空 |
f_table_name. |
Nvarchar(256) |
不为空 |
f_geometry_column. |
Nvarchar(256) |
不为空 |
GEOMETRY_TYPE |
整数 |
|
coord_dimension. |
整数 |
|
SRID |
整数 |
|
解散_column. |
Nvarchar(256) |
列 |
描述 |
f_table_catalog. |
数据库的名称。FME目前尚未使用此列。 |
F_TABLE_SCHEMA |
数据库模式的名称。FME目前尚未使用此列。 |
f_table_name. |
包含几何数据的空间表的名称。 |
f_geometry_column. |
存储下的表中的几何列的名称 |
GEOMETRY_TYPE |
几何列中包含的空间数据的WKB数据类型。 |
coord_dimension. |
几何柱的维度(XY = 2,XYZ = 3,XYM = 3,XYZM = 4,其中M为测量)。 |
SRID |
空间参考ID,并对应于相同的命名列SPATIAL_REF_SYS桌子。它为空间表指定了坐标系或缺陷 |
解散_column. |
FME目前尚未使用此列。 |
SPATIAL_REF_SYS
表SPATIAL_REF_SYS符合OpenGIS标准地理信息实现规范。简单特征访问。第2部分- §7.1.2。
空间存储和坐标系统
在写入空间数据时,几何数据首先被转换为WKB,然后通过ST_GEOMFROMWKB()转换为ST_GEOMETRY。如果使用Esri空间分析包向数据库写入数据,几何体将进一步进行转换,以便其坐标(如果它们在指定的坐标系统的范围内)被捕捉到坐标系统下的离散网格上。
在编写空间表时,应该提供单个坐标系统。有三种情况:
- 没有提供坐标系统:如果未指定坐标系,则LL-WGS84(SRID = 4326)的默认坐标系统将附加到正在写入的空间特征。
- 提供坐标系,并在目标数据库中已知:空间功能将用对应于已知坐标系的SRID写入。
- 提供坐标系,并在目标数据库中未知:如果写入ESRI数据库,则空间功能将首先被恢复为LL-WGS84(SRID = 4326),然后在重新注入成功时写入;如果写入非ESRI数据库,则未知坐标系将被添加到非ESRI数据库,然后分配给该坐标系的SRID将附加到正在写入的空间特征。
几何尺寸
最大几何尺寸较小:
- 64000字节,或
- 65,535字节减去非几何列的大小。
要拆分大于最大几何尺寸的区域或线条功能,请使用a砍刀变压器。线部件可以使用a粘在一起LineCombiner.变压器,并且可以使用aeal零件使用a达索尔变压器。IBM文档指出,一条线或一个区域可以拥有的最大坐标数大约是3990(假设是2D,没有度量)。
为了将几何部分粘合在一起,需要在目标表中创建一个特性ID列。特性ID需要在它们被分割之前分配给它们。一个达索尔或LineCombiner.变压器可用于通过设置将部件粘在一起集团到特性ID列。
如果写入的几何图形的尺寸大于表架构指定的几何大小,则将尝试增加几何列大小。如果传入的几何形状的尺寸太大而无法容纳,则期望功能抑制或翻译失败。如果您知道最大的几何大小先天的,使用几何列宽以下参数格式参数选项卡。如果在运行时发生几何列大小调整,则会出现减速。