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.

Tags

change, dedupe, distinct, dupe, duplicate, filter, hash, modify, record, replace, text, unique, update

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 false in dieser Eigenschaft dazu, dass das FlowFile gelöscht wird. Andernfalls wird das leere FlowFile ausgegeben.

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.

Siehe auch: