UpdateDatabaseTable

文档中心 › 组件索引 › UpdateDatabaseTable

UpdateDatabaseTable Processor

类型全限定名:cn.org.acal.lynxus.processors.standard.UpdateDatabaseTable

所属 Bundle:cn.org.acal.lynxus:lynxus-standard-nar:2.11.8

描述

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

标签

metadatajdbcdatabasetableupdatealter

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
Record Reader控制器服务 API:
RecordReaderFactory
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
用于读取传入 FlowFiles 的服务。 读取器仅用于确定记录的模式,不会处理实际记录。
Database Connection Pooling Service控制器服务 API:
DBCPService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
用于获取数据库连接的Controller Service
数据库类型Generic
  • Database Dialect Service — 需要为 SQL 语句配置 Database Dialect Service
  • Generic — 生成 ANSI SQL
  • Oracle — 生成符合 Oracle 规范的 SQL
  • Oracle 12+ — 生成符合 Oracle 规范的 SQL(12 或更高版本)
  • MS SQL 2012+ — 生成兼容 MS SQL 的 SQL(2012 或更高版本)
  • MS SQL 2008 — 生成兼容 MS SQL 的 SQL(2008 版本)
  • MySQL — 生成兼容 MySQL 的 SQL
  • PostgreSQL — 生成兼容 PostgreSQL 的 SQL
  • Phoenix — 生成符合 Phoenix 规范的 SQL
用于生成特定于服务或供应商的语句的数据库类型。通用类型支持大多数情况,但选择特定类型可以启用优化处理或额外功能。
Database Dialect Service控制器服务 API:
DatabaseDialectService
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
数据库方言服务,用于生成特定于特定服务或供应商的语句。
Catalog Name指定要更新的目录名称。这可能不适用于您正在更新的数据库。在这种情况下,请将字段留空。请注意,如果设置了该属性且数据库区分大小写,则目录名称必须与数据库的目录名称完全匹配。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Schema Name指定表所属的数据库 Schema 名称。这可能不适用于您正在更新的数据库。在这种情况下,请将字段留空。请注意,如果设置了该属性且数据库区分大小写,则 Schema 名称必须与数据库的 Schema 名称完全匹配。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Table Name指定要更新的数据库表名称。如果表不存在,则将根据'创建表策略'属性的值来创建表或抛出错误。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Create Table StrategyFail If Not Exists
  • 不存在时创建 — 如果表不存在,则使用给定的 Schema 创建表
  • 不存在时失败 — 如果目标不存在,记录错误并将 FlowFile 路由到失败关系
指定当目标表不存在时如何处理它(例如创建它、失败)。
Primary Key Fields逗号分隔的 Record 字段名称列表,用于唯一标识数据库中的一行。此属性仅在指定表需要创建时使用,此时主键字段将用于指定新创建表的主键。重要提示:除非'引用列标识符'为 false 且数据库允许大小写不敏感的列名,否则主键字段必须与 Record 字段名称完全匹配。实际上,最好指定与 Record 字段名称完全匹配的主键字段,这些字段将成为创建表中的列名。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)
Translate Field Namestrue
  • true
  • false
如果为 true,处理器将尝试将字段名称转换为指定表中对应的列名称,以确定字段名称是否存在于目标表的列中。注意:如果目标表不存在且需要创建,则忽略此属性,字段名称将按原样使用。如果为 false,则字段名称必须与列名称完全匹配,否则可能找不到列并报告列已存在的错误。
Column Name Translation StrategyREMOVE_UNDERSCORE
  • Remove Underscore — 下划线 '_' 将从列名中移除。例如:'Pics_1_23' 变为 'PICS123'
  • Remove Space — 空格将从列名中移除。例如:'User Name' 变为 'USERNAME'
  • Remove Underscores and Spaces — 空格和下划线将从列名中移除。例如:'User_1 Name' 变为 'USER1NAME'
  • Remove Regular Expression Characters — 移除匹配正则表达式的字符。例如:'user-id' 变为 USERID,total(estimated) 变为 TOTALESTIMATED
  • Regular Expression — 从列名中移除匹配此正则表达式的字符。例如:1. '\d' 将移除所有数字 2. '[^a-zA-Z0-9_]' 将移除除下划线外的特殊字符
用于规范化表列名称的策略。列名称将被大写以进行大小写不敏感的匹配,与策略无关。
Column Name Translation Pattern列名将使用此正则表达式进行规范化
Update Field Namesfalse
  • true
  • false
此属性指示是否更新输出 Schema,使字段名称设置为指定表中的确切列名称。当传入的 Record 字段名称在大小写上可能与表的列名称不匹配时应使用此属性。例如,如果输出 FlowFile 的目标是 Oracle(期望字段名称与列名称完全匹配),则应将此属性设置为 true。注意:更新字段名称时会忽略'转换字段名称'属性的值;字段名称将更新为数据库返回的列名称。
Record Writer控制器服务 API:
RecordSetWriterFactory
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定用于将结果写入 FlowFile 的控制器服务。Record Writer 应使用继承 Schema 来模拟推断的 Schema 行为,即无需在 Writer 中定义显式 Schema,将由与从列类型推断 Schema 相同的逻辑提供。如果创建表策略设置为'不存在则创建',Record Writer 的输出格式必须与 Record Reader 的格式匹配,以便将数据放入创建的表位置。请注意,此属性仅在'更新字段名称'设置为 true 且字段名称不完全匹配列名称时使用。如果不需要更新任何字段名称(或'更新字段名称'为 false),则不使用 Record Writer,输入 FlowFile 将直接路由到成功或失败关系而不做修改。
Quote Table Identifiersfalse
  • true
  • false
启用此选项将对表名称加引号,以支持在表名称中使用特殊字符,和/或强制'表名称'属性的值与目标表名称完全匹配。
Quote Column Identifiersfalse
  • true
  • false
启用此选项将对所有列名称加引号,允许您在表中使用保留字作为列名称,和/或强制 Record 字段名称与列名称完全匹配。
Query Timeout0设置驱动程序等待查询执行的秒数。值为 0 表示无超时。注意:非零值可能不受驱动程序支持。
支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值)

关系 (Relationships)

名称描述自动终止
failure如果记录无法传输到数据库,则包含路由到此关系的记录的 FlowFile。否
success包含在记录成功传输到数据库后路由到此关系的记录的 FlowFile。否

写入的 FlowFile 属性

名称描述
output.table此属性写入路由到 'success' 和 'failure' 关系的 FlowFile,并包含目标表名。
output.path此属性写入路由到 'success' 和 'failure' 关系的 FlowFile,并包含文件系统上到表的路径(如果表已分区则为分区位置)。
mime.type仅在指定了 Record Writer 且使用时,将 mime.type 属性设置为记录写入器指定的 MIME 类型
record.count仅当指定了Record Writer且更新字段名称为“true”时,才设置 FlowFile 中的记录数。

状态管理

该组件不存储状态。

受限 (Restricted)

该组件不受限。

输入要求

该组件要求有传入连接。