GenerateTableFetch удаляет потоковый файл при отсутствии данных для запроса

Я использую GenerateTableFetch с файлами входящего потока, содержащими table_name, для импорта данных. И я поставил Additional WHERE clause для обработки инкрементных обновлений, используя updated_at столбец таблицы вручную.

Проблема в том, что когда для созданного запроса нет данных для импорта, он просто удаляет потоковый файл. У него должны быть отдельные отношения, отличные от успеха и неудачи для этого случая, чтобы я мог справиться самостоятельно, если что-то нужно сделать для таких случаев.

В настоящее время, в начале рабочего процесса, я использую Wait для количества таблиц, которые я ввел в поток, и отслеживаю, когда они готовы, чтобы увеличить счетчик выполненных операций с помощью Notify. Но для таблиц, которые были отброшены в GenerateTableFetch, он просто продолжает ждать.

Как с этим справиться?


person pratpor    schedule 18.09.2018    source источник


Ответы (1)


Это действительно было бы хорошим улучшением для добавления в GenerateTableFetch, возможно, как дополнительное свойство для «Выводить пустой FlowFile при нулевых результатах» или что-то в этом роде. Я написал NIFI-5604, чтобы описать это улучшение. Комбинируя это с NIFI-5601, вы можете выполнять нисходящую маршрутизацию (например, если fragment.count = 0).

person mattyb    schedule 18.09.2018
comment
да. Свойство или отдельные отношения, такие как no-result, отлично справятся с этим. Что касается NIFI-5601, у меня пока есть рабочая версия с MergeContent. Но это некоторые из основных препятствий для нашего конвейера приема. :( - person pratpor; 18.09.2018