NiFi: QueryRecord с использованием ExecuteScript - PullRequest
1 голос
/ 21 мая 2019

Я использую данные из темы кафки (nested json), которая должна быть отфильтрована по значению поля.Поэтому я использовал ExecuteScript processor для фильтрации записей и преобразования некоторых полей.Для фильтрации я использовал findAll функцию без использования QueryRecord, и она работала.

Мой вопрос здесь заключается в том, позволяет ли этот подход решить ту же задачу, что и процессор QueryRecord для фильтрации, потому что я НЕ уверен, как использовать запись запроса, когдаявляются вложенными объектами json из входящих потоковых файлов.

Я попытался записать запрос, но он выдал ошибку:

SELECT * FROM FLOWFILE WHERE RPATH(order, '/orderDetail/orderId') = '1126'

Error:
No match found for function signature RPATH(<JavaType(...Record)>,<CHARACTER>)
org.apache.calcite.runtime.CalciteContextException

Sample Data:

{  
   "retail":{  
      "retailId":"6133",
      "retailName":"Maveric"
   },
   "order":{  
      "orderDetail":{  
         "orderId":"1126",
         "orderName":"NNDRFG"
      }
   }
}

1 Ответ

2 голосов
/ 21 мая 2019

RPATH_STRING не правильный синтаксис, это просто RPATH.

См. Дополнительную документацию для QueryRecord:

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-standard-nar/1.9.2/org.apache.nifi.processors.standard.QueryRecord/additionalDetails.html

У него есть пример JSON с вложенными полями.

...