UpdateDatabaseTable 2025.5.31.15¶
捆绑包¶
org.apache.nifi | nifi-standard-nar
描述¶
该处理器使用 JDBC 连接和传入记录来生成支持传入记录所需的任何数据库表更改。它预期采用“扁平”记录布局,这意味着没有任何顶级记录字段包含旨在成为列本身的嵌套字段。
输入要求¶
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 中的记录数量。 |