Nifi 正则表达式评估
Nifi Regex Evaluation
我在当前流程中遇到一个案例,我想评估我的流程文件中的某些属性。这是我的 flowfilw 的当前结构:
{
Attribute1: Value
Attribute2: Value
.
Attribute k: Value
.
}
(i) 例如,评估属性 2 是否为长度为 9 的整数。如果不是,则将属性 k 的值设置为 'not valid'。
我可以使用什么处理器或处理器组合(最多 2 个)来执行此操作?您还可以为我刚才提到的案例编写底层表达式语言吗,因为我是这项技术的新手,我需要尽快完成它。
您将需要使用 UpdateAttribute
处理器来修改属性值。如您所说,它可以使用表达式语言来评估其他属性的值以实现该目的。以下应该有效:
属性 姓名:Attribute k
属性 值:(以下表达式之一)
表达式选项(按推荐顺序):
- 使用正则表达式检查 9 位数字:
${Attribute1:find('^\d{9}$'):ifElse(${"Attribute k"}, 'not valid')}
- 检查数值:
${Attribute1:ge(100000000):and(${Attribute1:lt(1000000000)}):ifElse(${"Attribute k"}, 'not valid')}
- 检查字符串长度和类型强制:
${Attribute1:length():eq(9):and(${Attribute1:toNumber():gt(0)}):ifElse(${"Attribute k"}, 'not valid')}
我在当前流程中遇到一个案例,我想评估我的流程文件中的某些属性。这是我的 flowfilw 的当前结构:
{
Attribute1: Value
Attribute2: Value
.
Attribute k: Value
.
}
(i) 例如,评估属性 2 是否为长度为 9 的整数。如果不是,则将属性 k 的值设置为 'not valid'。
我可以使用什么处理器或处理器组合(最多 2 个)来执行此操作?您还可以为我刚才提到的案例编写底层表达式语言吗,因为我是这项技术的新手,我需要尽快完成它。
您将需要使用 UpdateAttribute
处理器来修改属性值。如您所说,它可以使用表达式语言来评估其他属性的值以实现该目的。以下应该有效:
属性 姓名:Attribute k
属性 值:(以下表达式之一)
表达式选项(按推荐顺序):
- 使用正则表达式检查 9 位数字:
${Attribute1:find('^\d{9}$'):ifElse(${"Attribute k"}, 'not valid')}
- 检查数值:
${Attribute1:ge(100000000):and(${Attribute1:lt(1000000000)}):ifElse(${"Attribute k"}, 'not valid')}
- 检查字符串长度和类型强制:
${Attribute1:length():eq(9):and(${Attribute1:toNumber():gt(0)}):ifElse(${"Attribute k"}, 'not valid')}