UpdateDatabaseTable Processor
描述
该处理器使用 JDBC 连接和传入记录来生成支持传入记录所需的任何数据库表更改。 它需要“平面”记录布局,这意味着顶级记录字段都没有打算成为列本身的嵌套字段。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Record Reader | | 控制器服务 API:RecordReaderFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于读取传入 FlowFiles 的服务。 读取器仅用于确定记录的模式,不会处理实际记录。 |
| Database Connection Pooling Service | | 控制器服务 API:DBCPServicecn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 用于获取数据库连接的Controller Service |
| 数据库类型 | Generic |
| 用于生成特定于服务或供应商的语句的数据库类型。通用类型支持大多数情况,但选择特定类型可以启用优化处理或额外功能。 |
| Database Dialect Service | | 控制器服务 API:DatabaseDialectServicecn.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 Strategy | Fail If Not Exists |
| 指定当目标表不存在时如何处理它(例如创建它、失败)。 |
| Primary Key Fields | | 逗号分隔的 Record 字段名称列表,用于唯一标识数据库中的一行。此属性仅在指定表需要创建时使用,此时主键字段将用于指定新创建表的主键。重要提示:除非'引用列标识符'为 false 且数据库允许大小写不敏感的列名,否则主键字段必须与 Record 字段名称完全匹配。实际上,最好指定与 Record 字段名称完全匹配的主键字段,这些字段将成为创建表中的列名。 支持表达式语言:是(使用 FlowFile 属性与环境/系统变量求值) | |
| Translate Field Names | true |
| 如果为 true,处理器将尝试将字段名称转换为指定表中对应的列名称,以确定字段名称是否存在于目标表的列中。注意:如果目标表不存在且需要创建,则忽略此属性,字段名称将按原样使用。如果为 false,则字段名称必须与列名称完全匹配,否则可能找不到列并报告列已存在的错误。 |
| Column Name Translation Strategy | REMOVE_UNDERSCORE |
| 用于规范化表列名称的策略。列名称将被大写以进行大小写不敏感的匹配,与策略无关。 |
| Column Name Translation Pattern | | 列名将使用此正则表达式进行规范化 | |
| Update Field Names | false |
| 此属性指示是否更新输出 Schema,使字段名称设置为指定表中的确切列名称。当传入的 Record 字段名称在大小写上可能与表的列名称不匹配时应使用此属性。例如,如果输出 FlowFile 的目标是 Oracle(期望字段名称与列名称完全匹配),则应将此属性设置为 true。注意:更新字段名称时会忽略'转换字段名称'属性的值;字段名称将更新为数据库返回的列名称。 |
| Record Writer | | 控制器服务 API:RecordSetWriterFactorycn.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 Identifiers | false |
| 启用此选项将对表名称加引号,以支持在表名称中使用特殊字符,和/或强制'表名称'属性的值与目标表名称完全匹配。 |
| Quote Column Identifiers | false |
| 启用此选项将对所有列名称加引号,允许您在表中使用保留字作为列名称,和/或强制 Record 字段名称与列名称完全匹配。 |
| Query Timeout | 0 | 设置驱动程序等待查询执行的秒数。值为 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)
该组件不受限。
输入要求
该组件要求有传入连接。