Метод 1: Использование 1 процессора ReplaceText:
Поскольку я использовал одно из ваших регулярных выражений, которое вы упомянули в вопросе.
Настройте процессор ReplaceText как
Поиск значения
(?<=ServerSerial":")0(?=").*[\r\n]*|.*(?<=ServerName":")(?=").*[\r\n]
Значение замены
${literal("")} //as we are not having any capture groups so i have used empty value for replacing.
![enter image description here](https://i.stack.imgur.com/TKzf6.png)
Вход:
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"0","ServerName":"","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
Выход:
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
Метод 2: Использование процессора QueryRecord:
Если вам известна схема данных, вы можете использовать процессор QueryRecord, а затем добавить новое свойство в QueryRecord процессор как
select * from FLOWFILE where ServerName is not null and ServerSerial > 0
Затем процессор выводит файл потока сзаписей, удовлетворяющих приведенному выше SQL-запросу.
Метод 3: Использование 2 процессоров ReplaceText в серии:
Использование ReplaceText процессорсо следующими конфигами:
Поиск значения
\n+\s+
Замена значения
shift+enter
Набор символов
UTF-8
Максимум BРазмер UFFER
1 MB //needs to change this values as per your flowfile size
Стратегия замены
Regex Replace
Режим оценки
Entire text
![enter image description here](https://i.stack.imgur.com/rVRVK.png)
Я пыталсясо следующими данными в моем локальном экземпляре
содержимое входного потока:
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
содержимое выходного потока:
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"XYZ_P_O","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691950","ServerName":"ABC_P_1","deletedat":"2018-08-24 15:30:48.136"},
{"eventType":"delete","ServerSerial":"1142691750","ServerName":"COL_P_1","deletedat":"2018-08-24 15:30:48.136"}
Обратитесь к этой ссылке для другого подхода к замене пустых строк в файле потока.