Nifi 根据一组值验证记录

问题描述 投票:0回答:1

我想根据一组值验证 nifi 文件字段,

例如:如果 nifi 字段 AGE 在 [7,8,9] 中,CLASS 在 [2,3,4] 中,如果不是无效记录,则认为这是有效记录

知道如何在 nifi 中实现这一点吗

我尝试了 ValidateRecord 处理器但找不到解决方案

apache-nifi
1个回答
0
投票

使用

ScriptedValidateProcessor
(https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-scripting-nar/1.25.0/org.apache.nifi.processors。 script.ScriptedValidateRecord/additionalDetails.html)

示例

输入JSON:

[{
 "name": "test",
 "age": 8,
 "class": 3
},
{
 "name": "test2",
 "age": 6,
 "class": 7
}
]

脚本验证处理器

  • Record Reader
    JsonTreeReader
  • Record Writer
    JsonRecordSetWriter
  • Script Language
    Groovy
  • Script Body
if (record.getValue("class").toInteger() >= 2 && 
   record.getValue("class").toInteger() <= 4 && 
   record.getValue("age").toInteger() >= 7 && 
   record.getValue("age").toInteger() <= 9) {
   return true;
} else {
   return false;
}

输出(2 个关系 - 有效和无效):

  • valid
[ {
  "name" : "test",
  "age" : 8,
  "class" : 3
} ]
  • invalid
[ {
  "name" : "test2",
  "age" : 6,
  "class" : 7
} ]
© www.soinside.com 2019 - 2024. All rights reserved.