Нифи: написание новых процессоров

Я хочу создать новый процессор, который станет воссоединением GetFile и EvaluateXpath. Меня интересуют несколько тем:

  1. Как я могу сжать свой файл nar, если он превышает 20 КБ, и мой nifi не может его запустить?
  2. Я хочу получить файл из папки, прочитать его данные и поместить его как атрибут внутри нового потокового файла, а затем откатить конфигурационный xml в исходную папку, как я могу откатить свой конфигурационный файл обратно в папку b code?
  3. Вот простой код, который я использую для получения атрибутов из файла конфигурации xml:

    XPathExpression start = xpath.compile("//*[local-name()='start']");
                    XPathExpression startDate = xpath.compile("//*[local-name()='startDate']");
                    XPathExpression endDate = xpath.compile("//*[local-name()='endDate']");
                    XPathExpression runAs = xpath.compile("//*[local-name()='run']");
                    XPathExpression patch = xpath.compile("//*[local-name()='patch Information']");
    Object resultStart = start.evaluate(doc, XPathConstants.STRING);
                    NodeList nodes = (NodeList) resultStart;
                    flowFile = session.putAttribute(flowFile, "start", String.valueOf(nodes.item(nodes.getLength()-1)));
    

    Атрибуты карты = getAttributesFromFile (filePath); если (attributes.size ()> 0) {flowFile = session.putAllAttributes (flowFile, атрибуты); }

но он не работает должным образом, что мне изменить?


person Community    schedule 02.10.2017    source источник


Ответы (1)


Как указано здесь, я не верю, что этот вариант использования требует разработки специального процессора. Используйте GetHDFS с параметром Сохранить исходный файл: true, чтобы сохранить файл в исходном месте, и используйте ExecuteXPath с различными значениями XPath для извлечения данных из содержимого в атрибуты потокового файла. Вы также можете использовать комбинацию ListHDFS и FetchHDFS, чтобы сохранить файл XML в HDFS, потому что NiFi будет поддерживать состояние о том, какие файлы он видел.

person Andy    schedule 02.10.2017