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.
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 |