MergeRecord 2025.5.31.15

Bundle

org.apache.nifi | nifi-standard-nar

Description

Ce processeur fusionne plusieurs enregistrements FlowFiles en un seul FlowFile qui contient tous les enregistrements du FlowFiles en entrée. Ce processeur fonctionne en créant des “bacs” puis en ajoutant des FlowFiles à ces bacs jusqu’à ce qu’ils soient pleins. Une fois un bac plein, tous les FlowFiles seront combinés en un seul FlowFile de sortie, et ce FlowFile sera routé vers la relation “merged”. Un bac peut contenir potentiellement plusieurs “like FlowFiles”. Pour que deux FlowFiles soient considérés comme “like FlowFiles”, ils doivent avoir le même schéma (tel qu’identifié par le Record Reader) et, si la propriété <Correlation Attribute Name> est définie, la même valeur pour l’attribut spécifié. Voir Utilisation du processeur et Détails supplémentaires pour plus d’informations. NOTE : ce processeur ne doit PAS être configuré avec Cron Driven comme Stratégie de planification.

Balises

content, correlation, event, merge, record, stream

Exigences en matière d’entrées

REQUIRED

Prend en charge les propriétés dynamiques sensibles

false

Propriétés

Propriété

Description

Attribute Strategy

Détermine quels attributs du FlowFile doivent être ajoutés au bundle. Si “Keep All Unique Attributes” est sélectionné, tout attribut présent sur un FlowFile bundlé sera conservé, sauf si sa valeur est en conflit avec celle provenant d’un autre FlowFile. Si “Keep Only Common Attributes” est sélectionné, seuls les attributs présents sur tous les FlowFiles du groupe, avec la même valeur, seront conservés.

correlation-attribute-name

Si spécifié, deux FlowFiles seront placés dans le même bac uniquement s’ils ont la même valeur pour cet attribut. Si elle n’est pas spécifiée, les FlowFiles sont bundlés selon l’ordre dans lequel ils sont extraits de la file d’attente.

max-bin-age

Âge maximal d’un bac qui entraînera la complétion d’un bac. Le format attendu est <duration> <time unit>, où <duration> est un entier positif et où <time unit> est l’une des unités suivantes : secondes, minutes, heures.

max-bin-size

La taille maximale de la bundle. Si elle n’est pas spécifiée, aucune limite n’est appliquée. Il s’agit d’une « limite souple » dans le sens où, si un FlowFile est ajouté à un bac, tous les enregistrements de ce FlowFile seront ajoutés ; cette limite peut donc être dépassée jusqu’au nombre d’octets du dernier FlowFile en entrée.

max-records

Nombre maximal d’enregistrements à inclure dans un bac. Il s’agit d’une « limite souple » dans le sens où, si un FlowFIle est ajouté à un bac, tous les enregistrements de ce FlowFile seront ajoutés ; cette limite peut donc être dépassée jusqu’au nombre d’enregistrements du dernier FlowFile en entrée.

max.bin.count

Spécifie le nombre maximum de bacs pouvant être conservés en mémoire à un moment donné. Ce nombre ne doit pas être inférieur au nombre maximal de threads simultanés pour ce processeur, sinon les bacs créés ne contiendront souvent qu’un seul FlowFile entrant.

merge-strategy

Spécifie l’algorithme utilisé pour fusionner les enregistrements. L’algorithme “Defragment” combine les fragments associés par attributs en un FlowFile unique et cohérent. L’algorithme “Bin-Packing Algorithm” génère un FlowFile rempli par des FlowFiles choisis de manière arbitraire.

min-bin-size

Taille minimale du bac

min-records

Le nombre minimum d’enregistrements à inclure dans une bac

record-reader

Spécifie le Controller Service à utiliser pour la lecture des données entrantes

record-writer

Spécifie le Controller Service à utiliser pour la génération des enregistrements en sortie

Relations

Nom

Description

failure

Si le bundle ne peut pas être créé, tous les FlowFiles qui auraient servi à créer le bundle seront routés vers failure.

merged

Le site FlowFile contenant les enregistrements fusionnés

original

Les FlowFiles qui ont été utilisés pour créer la bundle

Écrit les attributs

Nom

Description

record.count

Le FlowFile fusionné aura un attribut “record.count” indiquant le nombre d’enregistrements qui ont été écrits dans le FlowFile.

mime.type

Le type MIME indiqué par le Record Writer

merge.count

Le nombre de FlowFiles qui ont été fusionnés dans ce bundle

merge.bin.age

L’âge du bac, en millisecondes, au moment de sa fusion et de sa sortie. Il s’agit en pratique de la durée maximale pendant laquelle un FlowFile de ce bundle est resté en attente dans ce processeur avant d’être envoyé en sortie.

merge.uuid

UUID du FlowFile fusionné qui sera ajouté aux attributs des FlowFiles originaux.

merge.completion.reason

Ce processeur permet de configurer plusieurs seuils pour la fusion de FlowFiles. Cet attribut indique lequel des seuils a entraîné la fusion de FlowFiles. Pour une explication de chacune des valeurs possibles et de leur signification, reportez-vous à la documentation / Utilisation du processeur et à la page “Détails supplémentaires”.

<Attributs du Record Writer>

Tout attribut renvoyé par le Record Writer configuré sera ajouté au FlowFile.

Cas d’utilisation

Combiner de nombreux enregistrements arbitraires afin de créer un fichier unique plus volumineux

Cas d’utilisation impliquant d’autres composants

Combiner de nombreux enregistrements ayant la même valeur pour un champ particulier des données, afin de créer un fichier unique plus volumineux

Voir aussi :