RenameRecordField Processor
描述
重命名 FlowFile 的每个记录中的一个或多个字段。 该处理器要求至少添加一个用户定义的属性。 属性的名称应指示确定应更新的字段的 RecordPath。 该属性的值是分配给与 RecordPath 匹配的记录字段的新名称。 属性值可以使用Expression Language来引用FlowFile属性以及变量“field.name”、“field.value”、“field.type”和“record.index”
标签
使用场景
将每条记录中的字段重命名为特定的已知名称。
根据输入格式配置 'Record Reader'。
根据期望的输出格式配置 'Record Writer'。
向处理器添加一个属性,该属性的名称是一个用于标识要重命名字段的 RecordPath。 该属性的值是字段的新名称。
例如,要将 `name` 字段重命名为 `full_name`,添加一个名为 `/name`、值为 `full_name` 的属性。
可以按照此模式添加许多属性,以重命名多个字段。
将每条记录中的字段重命名为从 FlowFile 属性派生的名称。
根据输入格式配置 'Record Reader'。
根据期望的输出格式配置 'Record Writer'。
向处理器添加一个属性,该属性的名称是一个用于标识要重命名字段的 RecordPath。 该属性的值是一个 Expression Language 表达式,可用于确定字段的新名称。
例如,要将 `addr` 字段重命名为存储在 `preferred_address_name` 属性中的任意值, 添加一个名为 `/name`、值为 `${preferred_address_name}` 的属性。
可以按照此模式添加许多属性,以重命名多个字段。
将每条记录中的字段重命名为从当前字段名派生的新名称。
根据输入格式配置 'Record Reader'。
根据期望的输出格式配置 'Record Writer'。
向处理器添加一个属性,该属性的名称是一个用于标识要重命名字段的 RecordPath。 该属性的值是一个引用 `field.name` 属性的 Expression Language 表达式。
例如,要为所有字段添加 `pre_` 前缀,我们添加一个名为 `/*`、值为 `pre_${field.name}` 的属性。 如果我们希望递归地对嵌套字段也执行此操作,则使用名为 `//*`、值为 `pre_${field.name}` 的属性。
要将所有字段名转为大写,我们可以添加一个名为 `//*`、值为 `${field.name:toUpper()}` 的属性。
可以按照此模式添加许多属性,以重命名多个字段。
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| Record Reader | | 控制器服务 API:RecordReaderFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定用于读取传入数据的 Controller Service |
| Record Writer | | 控制器服务 API:RecordSetWriterFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定用于写出记录的 Controller Service |
动态属性
| 名称 | 值 | 描述 |
|---|---|---|
| 用于标识要更新哪些字段的 RecordPath | 要分配给 Record 字段的新名称 | 允许用户为匹配 RecordPath 的每个字段指定新名称。 |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
failure | 如果 FlowFile 无法从配置的输入格式转换为配置的输出格式,未更改的 FlowFile 将被路由到此关系 | 否 |
success | 成功转换的FlowFiles将被路由到此关系 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
record.index | 此属性提供当前行索引,仅在字面量表达式内可用。 |
状态管理
该组件不存储状态。
受限 (Restricted)
该组件不受限。
输入要求
该组件要求有传入连接。