作家指令

下面列出了Netezza Spatial编写器处理的指令。显示的后缀以当前前缀< Writer_Keyword >在映射文件中。

默认情况下,< Writer_Keyword >对于Netezza Spatial读者来说NETEZZA_SPATIAL;的< Writer_Keyword >对于Netezza读者来说NETEZZA

数据集,USER_NAME, PASSWORD, BEGIN_SQL{n}, END_SQL{n}

数据集USER_NAME密码BEGIN_SQL {n},END_SQL {n}指令的操作方式与它们对Netezza阅读器的操作方式相同。

其余的特定于编写器的指令将在下面的章节中讨论。

DEF

必须先定义每个Netezza表,然后才能写入它。Netezza定义语句的一般形式是:

NETEZZA_SPATIAL_DEF <表名> \
\ [netezza_type <类型>)
[netezza_overwrite_table <是的|不|截断>]\
[netezza_update_key_columns <列>(<列>)……) \
[netezza_delete_key_columns <列>(<列>)……) \
\ [netezza_geometry_column <几何学>)
[netezza_multi_geometry <是的|不| FIRST_FEATURE >] \
\ [netezza_geometry_column_width <宽度>)

注意,其中一些参数只适用于写入空间数据。

DEF行允许完全控制将要创建的表。如果表已经存在,则将忽略与创建表相关的DEF行参数。

如果指定的表不存在,则首先使用字段名和类型创建表。在任何情况下,如果< fieldType >,它可以是目标数据库支持的任何字段类型。

Netezza Spatial的作者将使用netezza_geometry_column参数设置表中几何列的名称。如果netezza_geometry_column参数时,则默认列名为THE_GEOM将用于几何列

定义行上的配置参数如下表所示:

参数

内容

netezza_type

它指定要写入目标表的特性的几何类型。

当追加到现有表时,如果该参数的值与现有表中空间列的几何列类型不兼容,则可能会发生转换失败。

当插入几何图形时,如果几何图形的类型与此参数的值不兼容,则预期转换失败。

netezza_overwrite_table

该参数可以设置为是的没有| |截断

  • YES:如果表存在,将被删除,然后再创建。
  • NO:如果表不存在,则创建。
  • TRUNCATE:如果表不存在,将创建该表。如果该表存在,则该表中的所有行都将被删除。

netezza_update_key_columns

该参数指示Netezza写入器对表执行UPDATE操作。

参数是一个用逗号分隔的列名列表。这些列名用于将输入特性上的同名属性与目标表中的行进行匹配。目标表中匹配的行将由输入特性的属性值更新。

例如:

netezza_update_key_columns ID、名称

如果此参数和netezza_delete_key_columns都提供了,翻译失败。

netezza_delete_key_

该参数指示Netezza写入器对表执行DELETE操作。

参数是一个用逗号分隔的列名列表。这些列名用于将输入特性上的同名属性与目标表中的行进行匹配。目标表中匹配的行将被删除。

例如:

netezza_delete_key_columns ID、名称

如果此参数和netezza_update_key_columns都提供了,翻译失败。

netezza_geometry_column

此参数可用于指定空间列的名称。如果未指定,则默认为THE_GEOM就会被使用。

netezza_multi_geometry

这个参数是DEF行参数的修饰符netezza_type当它的值为netezza_pointnetezza_linestring,或netezza_polygon.这个参数会导致这些netezza_type值分别被视为MULTIPOINT、MULTILINESTRING和MULTIPOLYGON。

下面,在的上下文中描述了该参数的行为netezza_typenetezza_point

如果该参数设置为YES,那么所有传入点将被写成MULTIPOINT几何图形。所有的单水平点集合将被写成MULTIPOINT几何体。所有嵌套的点集合将被写成GEOMETRYCOLLECTIONs。

如果这个参数被设置为NO,那么所有进入的点将被写为点几何。所有传入的点集合,包括嵌套的点集合,将被平铺并写出来,每个点一行。

如果该参数设置为FIRST_FEATURE,则第一个输入特性决定该参数是否设置为YES或NO。如果第一个输入特征是一个点集合,则该参数设置为YES。如果第一个输入特征是一个点,则该参数设置为NO。

几何类型不匹配导致翻译失败。有关详细信息,请参阅上述netezza_type文档。

注意:如果。该参数将被忽略netezza_type被设置为netezza_geometry

netezza_geometry_column_width

这将指定几何体列的固定宽度。任何几何尺寸大于此尺寸的特征将被删除。如果未指定此参数,则在插入时,几何列宽度将根据需要自动按大小展开,直到64000字节的最大大小。

必需的/可选

要求

TRANSACTION_INTERVAL

这个指令定义了在事务提交到数据库之前在每个事务中放置的特性的数量。

参数

内容

< transaction_interval >

单个事务中的特性数量。

默认值:100000

映射文件的语法

NETEZZA_SPATIAL_TRANSACTION_INTERVAL 5000

ABORT_ON_BAD_DATA

Netezza无法从数据库错误中恢复;当数据库发生错误时,在当前翻译中已经编写的特性将被删除。由于无效的几何图形或违反数据库约束,可能会发生数据库错误。所有数据库错误都必须导致翻译失败。因此,这个指令不会影响数据库错误的行为。

某些形式的坏数据可以预先验证,因此不会导致数据库错误。例如,FME可以在将数值写入数据库之前检测出超出范围的数值。FME还可以在写入之前检测某些类型的无效几何图形。在这些情况下,这个指令将允许用户拒绝这些不好的特性,或者失败翻译。

必需的/可选

可选

YES | NO(默认)

映射文件的语法

NETEZZA_SPATIAL_ABORT_ON_BAD_DATA是的