【问题标题】:how to apply condition on RouteOnAtrribute for filter json data in NIFI [duplicate]如何在 RouteOnAtrribute 上应用条件以过滤 NIFI 中的 json 数据 [重复]
【发布时间】:2020-09-08 00:43:49
【问题描述】:

在尼菲 我使用了从 Web 应用程序获取数据的调用 http 处理器。我想在 json 数据文件上应用条件...我的意思是当资源 =“abc”时,警报获取过滤器并转到一个处理器,其他警报将去到另一个处理器.....所以我的问题是需要什么处理器..到目前为止,我已经使用了一个 http 调用,它将提供我的网络应用程序的所有警报..两个 putfile 处理器用于存储警报一个资源="abc" 和一个用于其他资源。而且我还使用了一个 Routonatrribute 处理器来处理条件..在 RoutOnAttribute 配置中,我已经在动态属性上标明了 ....属性的名称是 alarms.resource,值是 ${alarms.resource:equals('abc' )}

【问题讨论】:

    标签: apache-nifi minify


    【解决方案1】:

    您可以使用 QueryRecord 对流文件(例如 SELECT * FROM FLOWFILE WHERE resource = 'abc')执行 SQL 查询。但是,如果 resource 字段有多个值,则可以使用 PartitionRecord。这将写出单独的流文件,每个流文件都包含具有相同resource 值的所有行。但是,此时您仍然需要进行路由。

    【讨论】:

      【解决方案2】:

      @AnnapurnaGautam

      您需要先将资源放入一个属性 (EvaluteJsonPath),然后将该属性用于 RouteOnAttribute。您不能在 RouteOnAttribute 中使用相同的编码 EvaluateJsonPath。以 EvaluateJsonPath 为例:

      checkResource = $.alarms.resource  
      

      然后在 RouteOnAttribute 中对该属性进行编码:

       ${checkResource:equals('abc')}
      

      【讨论】:

        猜你喜欢
        • 2020-09-07
        • 1970-01-01
        • 2022-01-19
        • 2021-04-27
        • 1970-01-01
        • 2020-09-29
        • 2020-12-13
        • 2021-11-24
        • 2022-12-19
        相关资源
        最近更新 更多