Процессор Apache Nifi ReplaceText работает не так, как я ожидаю. Я не могу понять, почему при вычислении выражения вставляются строки нулевой длины, куда должны направляться данные.
Конфигурация процессора ReplaceText:
Стратегия замены: Всегда заменять.
Режим оценки: весь текст.
Цепочка процессоров: QueryDatabaseTable-> SplitAvro-> UpdateAttribute-> ReplaceText-> PutSQL
Значение замены в процессоре ReplaceText:
INSERT INTO public.journal (payee, amount, billed_date, paid_date)
VALUES ('${payee}', ${amount}, '${billed_date}', '${paid_date}');
Это должно стать….
INSERT INTO public.journal (payee, amount, billed_date, paid_date)
VALUES ('Dead End LLC', 2000.000, ‘2018-02-01’, ‘2018-02-01’);
Вместо этого я получаю:
INSERT INTO public.journal (payee, amount, billed_date, paid_date)
VALUES (‘’, , ‘’, ‘’);
Что особенно расстраивает, когда я смотрю на вывод предыдущего шага процессора UpdateAttribute и вижу…
[ {
"payee" : "Dead End LLC",
"amount" : "2000.00",
"billed_date" : "2018-02-01",
"paid_date" : "2018-02-02"
} ]
Это ломает мне голову, так как обработка выражения, кажется, работает просто отлично, но не получает правильные данные (что, как предполагает моя наивная реализация, будет).
Предыдущее чтение, которое привело меня туда, где я сейчас нахожусь:
Извлечение базы данных
Вставка базы данных