MergeRecord 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Beschreibung¶
Dieser Prozessor fügt mehrere datensatzorientierte FlowFiles zu einem einzigen FlowFile zusammen, der alle Datensätze der Eingabe-FlowFiles enthält. Dieser Prozessor arbeitet, indem er „Bins“ erstellt und dann FlowFiles zu diesen Bins hinzufügt, bis sie voll sind. Sobald ein Bin voll ist, werden alle FlowFiles zu einem einzigen Ausgabe-FlowFile zusammengefasst, und dieses FlowFile wird an die Beziehung „merged“ weitergeleitet. Ein Bin besteht aus potenziell vielen „like FlowFiles“. Damit zwei FlowFiles als „ähnliche FlowFiles“ betrachtet werden können, müssen sie dasselbe Schema (wie vom Record Reader identifiziert) und, falls die Eigenschaft <Correlation Attribute Name> festgelegt ist, denselben Wert für das angegebene Attribut aufweisen. Weitere Informationen finden Sie unter „Prozessorverwendung“ und „Weitere Details“. NOTE: Dieser Prozessor sollte NOT mit Cron Driven für die Planungsstrategie konfiguriert werden.
Eingabeanforderung¶
REQUIRED
Unterstützt sensible dynamische Eigenschaften¶
false
Eigenschaften¶
Eigenschaft |
Beschreibung |
---|---|
Attribute Strategy |
Legt fest, welche FlowFile-Attribute dem Bundle hinzugefügt werden sollen. Wenn „Keep All Unique Attributes“ ausgewählt ist, wird jedes Attribut für jedes FlowFile, das gebündelt wird, beibehalten, es sei denn, sein Wert steht im Widerspruch zu dem Wert eines anderen FlowFile. Wenn „Keep Only Common Attributes“ ausgewählt ist, werden nur die Attribute beibehalten, die auf allen FlowFiles im Bundle mit demselben Wert vorhanden sind. |
correlation-attribute-name |
Falls angegeben, werden zwei FlowFiles nur dann zusammengelegt, wenn sie denselben Wert für dieses Attribut haben. Wenn nicht angegeben, wird die FlowFiles in der Reihenfolge gebündelt, in der sie aus der Warteschlange abgerufen werden. |
max-bin-age |
Das maximale Alter eines Bin, das den Trigger für einen Bin auslöst. Das erwartete Format ist <duration> <time unit> wobei <duration> eine positive ganze Zahl ist und die Zeiteinheit eine der folgenden ist: Sekunden, Minuten, Stunden |
max-bin-size |
Die maximale Größe für das Bundle. Wenn nicht angegeben, gibt es kein Maximum. Dies ist eine „weiche Grenze“, da beim Hinzufügen eines FlowFile zu einem Bin alle Datensätze in diesem FlowFile hinzugefügt werden, sodass diese Grenze um bis zu der Anzahl der Bytes im letzten Eingabe-FlowFile überschritten werden kann. |
max-records |
Die maximale Anzahl von Datensätzen, die in einen Bin aufgenommen werden sollen. Dies ist eine „weiche Grenze“, da beim Hinzufügen eines FlowFIle zu einem Bin alle Datensätze in diesem FlowFile hinzugefügt werden, sodass diese Grenze um bis zu der Anzahl der Datensätze im letzten eingegebenen FlowFile überschritten werden kann. |
max.bin.count |
Gibt die maximale Anzahl von Bins an, die gleichzeitig im Speicher gehalten werden können. Diese Zahl sollte nicht kleiner sein als die maximale Anzahl gleichzeitiger Threads für diesen Prozessor, da sonst die erstellten Bins oft nur aus einem einzigen eingehenden FlowFile bestehen. |
merge-strategy |
Gibt den Algorithmus an, der zum Zusammenführen von Datensätzen verwendet wird. Der „Defragment“-Algorithmus kombiniert Fragmente, die durch Attribute verbunden sind, wieder zu einem einzigen zusammenhängenden FlowFile. Der „Bin-Packing Algorithmus“ generiert ein FlowFile, das mit beliebig gewählten FlowFiles gefüllt ist. |
min-bin-size |
Die Mindestgröße des Bin |
min-records |
Die Mindestanzahl der Datensätze, die in einen Bin aufgenommen werden sollen |
record-reader |
Gibt den Controller Service an, der zum Lesen eingehender Daten verwendet werden soll |
record-writer |
Gibt den Controller Service an, der für das Schreiben der Datensätze verwendet werden soll |
Beziehungen¶
Name |
Beschreibung |
---|---|
failure |
Wenn das Bundle nicht erstellt werden kann, werden alle FlowFiles, die zur Erstellung des Bundles verwendet worden wären, in den Fehlerzustand überführt |
zusammengeführt |
Das FlowFile, das die zusammengeführten Datensätze enthält |
original |
Die FlowFiles, die zur Erstellung des Bundles verwendet wurden |
Schreibt Attribute¶
Name |
Beschreibung |
---|---|
record.count |
Die zusammengeführte FlowFile hat ein Attribut „record.count“, das die Anzahl der Datensätze angibt, die in das FlowFile geschrieben wurden. |
mime.type |
Der vom Record Writer angegebene MIME-Typ |
merge.count |
Die Anzahl der FlowFiles, die in diesem Bundle zusammengeführt wurden |
merge.bin.age |
Das Alter des Bins in Millisekunden, als er zusammengeführt und ausgegeben wurde. Dies ist die längste Zeit, die jedes FlowFile in diesem Bundle in diesem Prozessor gewartet hat, bevor es ausgegeben wurde |
merge.uuid |
UUID des zusammengeführten FlowFile, die zu den Attributen des Original-FlowFiles hinzugefügt wird |
merge.completion.reason |
Mit diesem Prozessor können mehrere Schwellenwerte für die Zusammenführung von FlowFiles konfiguriert werden. Dieses Attribut gibt an, welche der Schwellenwerte dazu geführt haben, dass die FlowFiles zusammengeführt wurden. Eine Erläuterung der einzelnen möglichen Werte und ihrer Bedeutung finden Sie in der Dokumentation zur Verwendung des Prozessors und auf der Seite „Zusätzliche Details“. |
<Attributes from Record Writer> |
Jedes Attribut, das der konfigurierte Record Writer zurückgibt, wird dem FlowFile hinzugefügt. |
Anwendungsfälle¶
Kombinieren Sie viele beliebige Datensätze, um eine einzige, größere Datei zu erstellen |
Anwendungsfälle mit anderen Komponenten¶
Kombiniert viele Datensätze, die denselben Wert für ein bestimmtes Feld in den Daten haben, um eine einzige, größere Datei zu erstellen |