PublishKafka 2025.5.31.15¶
Bundle¶
com.snowflake.openflow.runtime | runtime-kafka-nar
Description¶
Envoie le contenu d’un FlowFile sous forme de message ou d’enregistrements individuels à Apache Kafka à l’aide de Kafka Producer API. Les messages à envoyer peuvent être des FlowFiles individuels, être délimités à l’aide d’un délimiteur spécifié par l’utilisateur (tel qu’un retour à la ligne), ou être des données orientées enregistrement qui peuvent être lues par le Record Reader configuré. Le processeur complémentaire de NiFi pour la récupération des messages est ConsumeKafka.
Exigences en matière d’entrées¶
REQUIRED
Prend en charge les propriétés dynamiques sensibles¶
false
Propriétés¶
Propriété |
Description |
---|---|
Failure Strategy |
Spécifie comment le processeur gère un FlowFile s’il n’est pas en mesure de publier les données vers Kafka |
FlowFile Attribute Header Pattern |
Une expression régulière appliquée à tous les noms d’attributs du FlowFile Tout attribut dont le nom correspond au modèle sera ajouté aux messages Kafka en tant qu’en-tête. Si non spécifié, aucun attribut du FlowFile ne sera ajouté en tant qu’en-tête. |
Header Encoding |
Pour tout attribut ajouté en tant qu’en-tête d’enregistrement Kafka, cette propriété indique le Character Encoding à utiliser pour sérialiser les en-têtes. |
Kafka Connection Service |
Fournit des connexions au courtier Kafka pour la publication d’enregistrements Kafka |
Kafka Key |
La clé à utiliser pour le message. Si non spécifié, l’attribut du FlowFile “kafka.key” est utilisé comme clé du message, s’il est présent. Attention : configurer simultanément la clé Kafka et le Demarcator peut potentiellement entraîner la création de nombreux messages Kafka partageant la même clé. En général, ce n’est pas un problème, car Kafka n’impose ni ne suppose l’unicité des messages ou des clés. Cependant, définir à la fois le Demarcator et la clé Kafka présente un risque de perte de données sur Kafka. Lors d’un compactage de sujet sur Kafka, les messages seront dédupliqués sur la base de cette clé. |
Kafka Key Attribute Encoding |
Les FlowFiles émis possèdent un attribut nommé “kafka.key”. Cette propriété détermine comment la valeur de cet attribut doit être encodée. |
Message Demarcator |
Spécifie la chaîne (interprétée comme UTF-8) à utiliser pour délimiter plusieurs messages dans un seul FlowFile. S’il n’est pas spécifié, tout le contenu du FlowFile sera utilisé comme un seul message. Si spécifié, le contenu du FlowFile sera scindé selon ce délimiteur et chaque section envoyée comme un message Kafka distinct. Pour saisir un caractère spécial tel qu’un “new line”, utilisez CTRL+Entrée ou Maj+Entrée, selon votre système d’exploitation. |
Message Key Field |
Le nom d’un champ dans les enregistrements d’entrée qui doit être utilisé comme clé pour le message Kafka. |
Publish Strategy |
Le format utilisé pour publier l’enregistrement FlowFile entrant dans Kafka. |
Record Key Writer |
Record Key Writer à utiliser pour les FlowFiles sortants. |
Record Metadata Strategy |
Spécifie si les métadonnées de l’enregistrement (topic et partition) doivent provenir du champ de métadonnées de l’enregistrement ou si elles doivent provenir des propriétés configurées Topic Name et Partition/Partitioner class. |
Record Reader |
Le Record Reader à utiliser pour le FlowFiles entrant |
Record Writer |
Record Writer à utiliser pour sérialiser les données avant de les envoyer à Kafka. |
Topic Name |
Nom du topic Kafka auquel le processeur publie les enregistrements Kafka. |
Transactional ID Prefix |
Spécifie que la configuration KafkaProducer transactional.id sera un UUID généré et sera préfixée par la chaîne configurée. |
Transactions Enabled |
Spécifie s’il faut fournir des garanties transactionnelles lors de la communication avec Kafka. S’il y a un problème lors de l’envoi de données à Kafka et que cette propriété est définie sur “false”, les messages déjà envoyés à Kafka continueront et seront livrés aux consommateurs. Si cette propriété est définie sur “true”, alors la transaction Kafka sera annulée afin que ces messages ne soient pas accessibles aux consommateurs. Pour définir cette propriété sur “true”, la propriété [Delivery Guarantee] doit être définie sur [Guarantee Replicated Delivery.] |
acks |
Spécifie l’exigence permettant de garantir l’envoi d’un message à Kafka. Correspond à la propriété acks du client Kafka. |
compression.type |
Spécifie la stratégie de compression des enregistrements envoyés à Kafka. Correspond à la propriété compression.type du client Kafka. |
max.request.size |
La taille maximale d’une requête en octets. Correspond à la propriété max.request.size du client Kafka. |
partition |
Spécifie la destination de la partition Kafka pour les enregistrements. |
partitioner.class |
Spécifie quelle classe utiliser pour calculer un identifiant de partition pour un message. Correspond à la propriété Kafka Client partitioner.class. |
Relations¶
Nom |
Description |
---|---|
failure |
Tout FlowFile qui ne peut pas être envoyé à Kafka sera routé vers cette relation |
success |
FlowFiles dont tout le contenu a été envoyé à Kafka. |
Écrit les attributs¶
Nom |
Description |
---|---|
msg.count |
Le nombre de messages qui ont été envoyés à Kafka pour ce FlowFile. Cet attribut est ajouté uniquement aux FlowFiles routés vers success |