2017-11-17 2 views
0

Ich möchte mehr als 20.000 flowfile 's von hdfs bekommen und sie in einem flowfile vereinen.NiFi: Wie man Daten von vielen Dateien in eine Datei kombiniert

Ich möchte Daten aus diesen Dateien erhalten (sie sind in xml-Format), und geben Sie ihn in Variable mit dem Namen Inhalt, dann, wenn ich fertig, diesen Prozess Ich möchte xml in einer Art und Weise serilize, dass alle diese Daten eingeschrieben werden innerhalb <data>...</data> tag)

Ist es möglich, diese Aufgabe von NiFi-Prozessoren zu erfüllen, oder muss ich groovy Code verwenden?

Antwort

0

Dies ist mit dem Standard-NiFi-Aufbau nicht möglich. Sie können natürlich Ihren eigenen NiFi-Prozessor erstellen, aber das ist vielleicht etwas übertrieben.

Sie müssen groovy verwenden. Was ich schlage vor, dabei ist folgendes:

1) Lesen Sie in den Dateien aus dem Ordner HDFS

2) diese Dateien verarbeiten und die Daten aus den Dateien, die Sie wollen.

3) Wenn Sie eine einzige XML-Datei erstellen möchten: Schreiben Sie direkt in eine XML-Datei mit einer fileoutputstream, während Sie jede Datei verarbeiten und die Informationen erfassen. Dies könnte lokal durchgeführt werden und dann, wenn es fertig ist, kann es wieder in HDFS/einen Ordner verschoben werden, der von NiFi überwacht wird, um Ihre Pipeline fortzusetzen.

Hinweis: Dort ist ein Prozessor, der Dateien verketten kann (oder "wiedervereinigen" wie Sie sagten) - der MergeContent Prozessor. Das ist in Ihrem Fall vielleicht ein bisschen unbegründet.

Verwandte Themen