Мы продолжаем получать эту ошибку при попытке использовать любую службу поиска (NiFi или стороннего поставщика) для добавления дополнительных атрибутов к нашему первоначальному запросу DB2:
Failed to lookup coordinates {LEGAL_ENTITY_ID_NUM=13366} in Lookup Service
Кому-нибудь удалось объединить данные из двух разных запросов sql на основе общего уникального идентификатора из обоих запросов? Мы пробовали LookupRecord, который использует Lookup Service, MergeRecord и MergeContent - похоже, ничего не работает??
Суть в том, что у нас есть первоначальный основной запрос (идентификатор и статус), затем мы хотим добавить дополнительный атрибут (имя) из второго запроса (только содержит идентификатор и имя) - в каждую запись основного запроса - после присоединения к идентификатору .
Всякий раз, когда мы пытаемся использовать LookupRecord и передаем идентификатор в качестве параметра через ? отметки, мы продолжаем получать вышеуказанную ошибку. С MergeRecord мы тоже ничего не добились. Мы научились объединять содержимое, но на самом деле это не то, что нам нужно (это просто обходной путь).
нам не повезло с сервисом поиска от NiFi, поэтому мы попытались использовать пользовательский сервис, созданный Крисом Паркером, который нашел один из наших разработчиков, но безуспешно. Тот был назван SQLRecordLookupService, и мы попытались отправить электронное письмо Крису Паркеру, но не получили ответа.
Мы также пробовали MergeRecord Processor от NiFi, но безрезультатно.
Мы также заставили MergeContent работать с ошибкой: когда он объединяет выходные данные из двух отдельных запросов, он не добавляет их должным образом. Он добавляет результаты одного запроса ExecuteSQL к другому запросу ExecuteSQL после преобразования AvroToJSON, но добавляет в виде двух отдельных блоков текста JSON следующим образом: [Qry1Field1,Qry1Field2][Qry2Field1,Qry2Field2]. Это неправильный формат JSON. Между результатами запроса не должно быть разделителя «][».
MergeContent предназначен для объединения байтов потокового файла один за другим, он понятия не имеет, что содержимое представляет собой JSON, поэтому на самом деле он ведет себя так, как ожидалось. MergeRecord понимает записи и может объединять их вместе как правильный JSON. Однако в обоих случаях слияние — это не объединение, слияние — это запись контента или записей одна за другой для создания больших потоковых файлов.
Нам давно нужен поиск в БД, и один из коммиттеров только что отправил запрос на включение, так что, надеюсь, он скоро будет доступен — github.com/apache/nifi/pull/3341
не могу дождаться этого! есть идеи, как скоро? мы можем получить версию в процессе работы?
Вы можете делать все, что хотите, с кодом в этом PR, вы можете создавать и использовать его, проект Apache NiFi не может предоставить его встроенную версию, пока он не станет частью стандартного процесса выпуска.





Когда вы используете LookupRecord, какой LookupService вы используете? В настоящее время нет выпущенной реализации LookupService, которая работает с реляционной БД, хотя ведется активная работа по ее реализации.