Field Renamer

支持的管道类型:

  •  Data Collector

使用Field Renamer可以重命名记录中的字段。您可以指定单个字段来重命名,也可以使用正则表达式来重命名字段集合。

当源字段不存在,具有匹配名称的目标字段已经存在以及源字段与多个源字段表达式匹配时,可以配置行为。

未重命名或覆盖的字段将进入下一阶段。

重命名字段集合

您可以使用正则表达式(regex)以及StreamSets表达式语言来重命名字段集。您可以使用正则表达式来定义要重命名的字段集,以及定义目标字段名称。您还可以使用StreamSets表达式语言来定义目标字段名称。

下面是一些如何使用表达式重命名字段集的示例:

删除前缀或后缀

假设您要从一组字段中删除OPS前缀。您可以通过使用以下表达式定义要更改的源字段来执行此操作:

/'OPS(.*)'

然后使用以下表达式删除OPS前缀:

/$1
或者,假设在使用Field Flattener处理器展平XML数据之后,所有字段的后缀均为.0.value。您可以通过使用以下表达式来指定源字段名称以删除后缀:

/'(.*)\.0\.value'
然后使用以下表达式定义目标字段名称:

/$1
删除特殊字符
要从字段名称中删除特殊字符,可以对源字段名称使用以下表达式:

/'([A-Z a-z]*)[^a-z A-Z 0-9]([A-Z a-z 0-9]*)'
然后对目标字段名称使用以下表达式:

/$1_invalid_character_removed_$2
更改大小写
要将字段名称更改为全部大写,请对源字段名称使用以下表达式:

/(.*)

然后对目标字段名称使用以下表达式:

/${str:toUpper("$1")}
要将字段名称更改为全部小写,请对源字段名称使用以下表达式:

/(.*)

然后对目标字段名称使用以下表达式:

/${str:toLower("$1")}

注意:要在字段名称中包括正则表达式特殊字符(例如管道符号(|)),请使用单引号引起来。例如,如果您有一个名为tag|attr的字段,请按如下所示输入字段名称:

/'tag|attr'

配置Field Renamer

配置Field Renamer以重命名记录中的字段。
  1. 在“Properties”面板的“General选项卡上,配置以下属性:
    一般属性 描述
    Name 阶段名。
    Description 可选说明。
    Required Fields 必须包含用于将记录传递到阶段的记录的数据的字段。

    提示:您可能包括阶段使用的字段。

    根据为管道配置的错误处理,处理不包括所有必填字段的记录。

    Preconditions 必须评估为TRUE的条件才能使记录进入处理阶段。单击 添加以创建其他前提条件。

    根据为该阶段配置的错误处理,处理不满足所有前提条件的记录。

    On Record Error 该阶段的错误记录处理:

    • Discard-放弃记录。
    • To Error-将记录发送到管道以进行错误处理。
    • Stop Pipeline-停止管道。对集群管道无效。
  2. 在“Rename选项卡上,配置以下属性:
    字段重命名器属性 描述
    Fields to Rename 要重命名字段,请在“Source Field Expression”中输入或选择要重命名的字段,然后在“Target Field Expression”中输入该字段的新名称。单击 添加以重命名其他字段。

    要重命名字段集,请使用表达式:

    • 您可以在两个属性中使用正则表达式。
    • 您可以在“Target Field Expression”属性中使用StreamSets表达式语言。

    要重命名数组或映射,可以指定单个数组索引或映射元素,也可以使用星号通配符表示所有数组索引和映射元素。

    您不能使用正则表达式来选择数组索引和映射元素的子集。例如,如果Division数组包含20个索引,则不能使用以下正则表达式重命名前10个索引的字段路径:

    /Division[0-9]
    注意:如果重命名列表或列表映射字段中的字段,处理器将在列表或列表映射字段的末尾列出重命名的字段。您可以使用Field Order处理器对列表图字段中的字段进行重新排序。
    Source Field Does Not Exist 记录中不存在源字段时的行为:

    • Continue-继续处理记录,忽略缺少的源字段。
    • Send to Error-根据为该阶段配置的错误处理来处理记录。
    Target Field Already Exists 当记录包含与建议的目标字段匹配的字段名称时的行为:

    • Replace-将现有字段替换为重命名的字段。
    • Append Numbers-将数字追加到重命名字段中的所有重复项。
    • Continue-继续处理记录,不更改现有字段。
    • Send to Error-根据为该阶段配置的错误处理来处理记录。
    Multiple Source Field Matches 一个源字段匹配多个源字段表达式时的行为:

    • Continue-继续处理记录,跳过具有多个匹配项的字段。
    • Send to Error-根据为该阶段配置的错误处理来处理记录。