DeduplicateRecord 2025.5.31.15¶
Bundle¶
org.apache.nifi | nifi-standard-nar
Beschreibung¶
Dieser Prozessor dedupliziert Datensätze innerhalb einer Datensatzgruppe. Er kann auf Dateibasis operieren und dabei entweder ein Hashset im Arbeitsspeicher oder einen Bloom-Filter verwenden. Bei einer verteilten Map-Cache-Konfiguration werden Datensätze über mehrere Dateien hinweg dedupliziert.
Eingabeanforderung¶
REQUIRED
Unterstützt sensible dynamische Eigenschaften¶
false
Eigenschaften¶
Eigenschaft |
Beschreibung |
---|---|
bloom-filter-certainty |
Die gewünschte Falsch-Positiv-Wahrscheinlichkeit bei Verwendung des BloomFilter-Typs. Ein Wert von 0,05 garantiert beispielsweise eine fünfprozentige Wahrscheinlichkeit, dass das Ergebnis falsch-positiv ist. Je näher dieser Wert an 1 liegt, desto präziser ist das Ergebnis, allerdings auf Kosten einer höheren Speicherplatzauslastung. |
cache-identifier |
Ein optionales Feld für eine Ausdruckssprache, das den berechneten Cache-Schlüssel des Datensatzes überschreibt. Für dieses Feld steht ein zusätzliches Attribut zur Verfügung: ${record.hash.value}, das den Cache-Schlüssel enthält, der von dynamischen Eigenschaften (falls eingestellt) oder Datensatzfeldern abgeleitet ist. |
deduplication-strategy |
Die Strategie für das Erkennen und Weiterleiten von doppelten Datensätzen. Die Option zum Erkennen von Duplikaten innerhalb eines einzelnen FlowFile wird im Arbeitsspeicher ausgeführt, während die Erkennung über mehrere FlowFiles hinweg einen verteilten Map-Cache nutzt. |
distributed-map-cache |
Diese Eigenschaft ist erforderlich, wenn die Deduplizierungsstrategie auf „multiple files“ eingestellt ist Der Map-Cache prüft für jeden Datensatz atomar, ob der Cache-Schlüssel vorhanden ist, und wenn nicht, setzt er ihn. |
filter-capacity-hint |
Eine Schätzung der Gesamtzahl der zu verarbeitenden eindeutigen Datensätze. Je genauer diese Zahl ist, desto weniger falsch-negative Ergebnisse gibt es in einem BloomFilter. |
filter-type |
Der Filter, der verwendet wird, um anhand der übereinstimmenden RecordPath-Kriterien festzustellen, ob ein Datensatz bereits zuvor gesehen wurde. Wenn „hash set“ ausgewählt ist, wird ein Java-HashSet-Objekt verwendet, um alle gefundenen Datensätze zu deduplizieren. Wenn die Option „bloom filter“ ausgewählt ist, wird ein Bloom-Filter verwendet. Die Bloom-Filter-Option ist weniger speicherintensiv, birgt aber die Gefahr von falsch-positiven Ergebnissen. |
include-zero-record-flowfiles |
Wenn ein FlowFile, das entweder an den „duplicate“- oder die Beziehung „non-duplicate“ gesendet wird, keine Datensätze enthält, führt der Wert |
put-cache-identifier |
Prüft für jeden Datensatz, ob der Bezeichner im verteilten Map-Cache vorhanden ist. Wenn er nicht vorhanden ist und diese Eigenschaft „true“ ist, wird der Bezeichner in den Cache aufgenommen. |
record-hashing-algorithm |
Der Algorithmus, der zum Hashing des Cache-Schlüssels verwendet wird. |
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 |
---|---|
duplicate |
Als Duplikate erkannte Datensätze werden an diese Beziehung weitergeleitet. |
failure |
Wenn keine Kommunikation mit dem Cache möglich ist, wird das FlowFile zurückgestellt und an diese Beziehung weitergeleitet. |
non-duplicate |
Datensätze, die nicht im Cache gefunden werden, werden an diese Beziehung weitergeleitet. |
original |
Das Original-Eingabe-FlowFile wird an diese Beziehung gesendet, es sei denn, es tritt ein schwerwiegender Fehler auf. |
Schreibt Attribute¶
Name |
Beschreibung |
---|---|
record.count |
Anzahl der Datensätze, die in das Ziel-FlowFile geschrieben wurden. |