UpdateDatabaseTable 2025.5.31.15

捆绑包

org.apache.nifi | nifi-standard-nar

描述

该处理器使用 JDBC 连接和传入记录来生成支持传入记录所需的任何数据库表更改。它预期采用“扁平”记录布局,这意味着没有任何顶级记录字段包含旨在成为列本身的嵌套字段。

标签

alter、database、jdbc、metadata、table、update

输入要求

REQUIRED

支持敏感的动态属性

false

属性

属性

描述

列名转换模式

列名将使用此正则表达式实现标准化

列名转换策略

用于标准化表列名的策略。无论策略如何,列名都将采用大写形式,以执行不区分大小写的匹配

数据库方言服务

数据库方言服务,用于生成特定于某服务或供应商的语句。

db-type

用于生成特定于某服务或供应商的语句的数据库类型。通用类型支持大多数情况,但选择特定类型可以实现最佳处理或附加功能。

record-reader

用于读取传入 FlowFile 的服务。读取器仅用于确定记录架构,不会处理实际记录。

updatedatabasetable-catalog-name

语句应更新的目录的名称。这可能不适用于您正在更新的数据库。在此类情况下,应将该字段留空。请注意,如果设置了该属性并且数据库区分大小写,则目录名称必须与数据库的目录名称完全匹配。

updatedatabasetable-create-table

指定在目标表不存在时,如何对其进行处理(例如,创建、失效)。

updatedatabasetable-dbcp-service

用于获取数据库连接的控制器服务

updatedatabasetable-primary-keys

逗号分隔式记录字段名称列表,用于唯一标识数据库中的一行。此属性仅在需要创建指定表时使用,在此类情况下,主键字段将用于指定新创建的表的主键。IMPORTANT:主键字段必须与记录字段名称完全匹配,除非“引用列标识符”为 false 并且数据库允许不区分大小写的列名。实际上,最好指定与记录字段名称完全匹配的主键字段,这些字段将成为所创建表中的列名。

updatedatabasetable-query-timeout

设置驱动程序将在多少秒内等待查询执行。如值为 0,则表示无超时。NOTE:驱动程序可能不支持非零值。

updatedatabasetable-quoted-column-identifiers

启用此选项将导致所有列名都被置于引号之间,从而允许您在表中使用保留字作为列名和/或强制要求记录字段名称与列名完全匹配。

updatedatabasetable-quoted-table-identifiers

启用此选项将导致表名被置于引号之间,以支持在表名中使用特殊字符和/或强制要求表名称属性的值与目标表名完全匹配。

updatedatabasetable-record-writer

指定用于将结果写入到 FlowFile 的控制器服务。记录写入器可以使用 Inherit Schema 来模拟推断架构的行为,即无需在写入器中显式定义架构,架构将由同样用于根据列类型推断架构的逻辑提供。如果将创建表策略设置为“不存在时创建”,则记录写入器的输出格式必须与记录读取器格式相匹配,才能将数据放置在所创建的表位置。请注意,仅当“更新字段名称”设置为 true 且字段名称并非都与列名完全匹配时,才使用此属性。如果不需要更新任何字段名称(或“更新字段名称”为 false),则不使用记录写入器,而是将输入 FlowFile 传送到 success 或 failure,而不进行修改。

updatedatabasetable-schema-name

表所属的数据库架构的名称。这可能不适用于您正在更新的数据库。在此类情况下,应将该字段留空。请注意,如果设置了该属性并且数据库区分大小写,则架构名称必须与数据库的架构名称完全匹配。

updatedatabasetable-table-name

要更新的数据库表的名称。如果该表不存在,则将创建该表或引发错误,具体取决于创建表属性的值。

updatedatabasetable-translate-field-names

如果为 true,处理器将尝试将字段名称转换为指定表的相应列名,以确定该字段名是否以列的形式存在于目标表中。NOTE:如果目标表不存在且需要创建,则忽略此属性,并按原样使用字段名称。如果为 false,则字段名称必须与列名称完全匹配,否则可能找不到该列,并且会报告有关该列已经存在的错误。

updatedatabasetable-update-field-names

此属性指示是否更新输出架构,以便将字段名称设为指定表中的确切列名。如果传入记录字段名称在大写和小写方面可能与表的列名不匹配,则应使用此选项。例如,如果输出 FlowFile 的目标是 Oracle,则应将此属性设置为 true,例如,Oracle 期望字段名称与列名完全匹配。NOTE:更新字段名时,“转换字段名称”属性的值将被忽略;相反,它们会更新为与数据库返回的列名相匹配。

关系

名称

描述

failure

包含无法传输到数据库的记录的 FlowFile 将路由到此关系。

success

包含已成功传输到数据库的记录的 FlowFile 将路由到此关系。

写入属性

名称

描述

output.table

此属性写入到路由到“success”和“failure”关系的 FlowFile,并包含目标表名称。

output.path

此属性写入路由到“success”和“failure”关系的 FlowFile,并包含文件系统上表的路径(如果表已分区,则为分区位置)。

mime.type

仅当指定了记录写入器且更新字段名称为“true”时,才将 mime.type 属性设置为记录写入器指定的 MIME 类型。

record.count

仅当指定了记录写入器且更新字段名称为“true”时,才设置 FlowFile 中的记录数量。

语言: 中文