Процессор InvokeHTTP, ориентированный на запись - PullRequest
2 голосов
/ 01 апреля 2019

У меня есть CSV-файл

longtitude,lagtitude
34.094933,-118.30674
34.095028,-118.306625
(more to go)

Я использую процессор UpdateRecord (который поддерживает обработку записей) с CSVRecordSetWriter, используя RecordPath (https://nifi.apache.org/docs/nifi-docs/html/record-path-guide.html) для подготовки поля ГИС.

longtitude,lagtitude,gis
34.094933,-118.30674,"34.094933,-118.30674"
34.095028,-118.306625,"34.095028,-118.306625"

Мой следующий шаг - извлечь gis в качестве входного параметра в HTTP API, где этот HTTP API возвращает информацию (poi), которую я хотел бы сохранить.

longtitude,lagtitude,gis,poi
34.094933,-118.30674,"34.094933,-118.30674","Restaurant A"
34.095028,-118.306625,"34.095028,-118.306625","Cinema X"

Похоже, процессор InvokeHTTP не обрабатывает записи. Любое возможное решение, чтобы подготовить вышеупомянутое, не разделяя это далее?

1 Ответ

3 голосов
/ 01 апреля 2019

Когда вы хотите обогатить каждую запись таким образом, она обычно обрабатывается в NiFi с использованием процессора LookupRecord с LookupService.По сути, для каждой записи во входящем файле потока передайте некоторые поля записи службе поиска, а затем возьмите результаты поиска и сохраните их обратно в записи.

Для вашего примераПохоже, вы хотели бы RestLookupService:

https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-lookup-services-nar/1.9.1/org.apache.nifi.lookup.RestLookupService/index.html

...