Skip to main content

PublishKafka

Описание

Отправляет содержимое файла потока как сообщение или как отдельные записи в Apache Kafka с использованием API Producer Kafka. Сообщения для отправки могут быть отдельными файлами потока, могут быть разделены с использованием указанного пользователем разделителя (например, новой строки) или могут быть данными, ориентированными на записи, которые могут быть прочитаны настроенным Record Reader. Дополнительный процессор NiFi для получения сообщений — это ConsumeKafka.

Теги

Apache, Kafka, Record, csv, json, avro, logs, Put, Send, Message, PubSub

Свойства

НазваниеОписание
Kafka Connection ServiceПредоставляет подключения к брокеру Kafka для публикации записей Kafka
Topic NameИмя темы Kafka, в которую процессор публикует записи Kafka Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Failure StrategySpecifies how the processor handles a FlowFile if it is unable to publish the data to Kafka
Delivery GuaranteeУказывает требование для гарантии отправки сообщения в Kafka. Соответствует свойству acks клиента Kafka.
Compression TypeУказывает стратегию сжатия записей, отправляемых в Kafka. Соответствует свойству compression.type клиента Kafka.
Max Request SizeМаксимальный размер запроса в байтах. Соответствует свойству max.request.size клиента Kafka.
Transactions EnabledУказывает, следует ли предоставлять гарантии транзакций при взаимодействии с Kafka. Если при отправке данных в Kafka возникает проблема, а для этого свойства установлено значение false, то сообщения, которые уже были отправлены в Kafka, будут продолжены и доставлены потребителям. Если для этого свойства установлено значение true, то транзакция Kafka будет отменена, чтобы эти сообщения не были доступны потребителям. Если для этого параметра установлено значение true, необходимо, чтобы для свойства [Гарантия доставки] было установлено значение [Гарантия реплицированной доставки.]
Transactional ID PrefixУказывает, что идентификатор транзакции KafkaProducer будет сгенерированным UUID с префиксом в виде настроенной строки. Поддерживает язык выражений: true (будет оцениваться только с использованием переменных среды)This Property is only considered if the [Transactions Enabled] Property has a value of "true".
Partitioner ClassУказывает, какой класс использовать для вычисления идентификатора раздела для сообщения. Соответствует свойству Kafka Client partitioner.class.
PartitionУказывает раздел Kafka, в который будут записываться данные. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Message DemarcatorУказывает строку (интерпретируемую как UTF-8), которую следует использовать для разделения нескольких сообщений в одном FlowFile. Если не указано, все содержимое FlowFile будет использоваться как одно сообщение. Если указано, содержимое FlowFile будет разделено по этому разделителю, и каждый раздел будет отправлен как отдельное сообщение Kafka. Чтобы ввести специальный символ, например «новую строку», нажмите CTRL+Enter или Shift+Enter в зависимости от вашей операционной системы. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)
Record ReaderЧитатель записей, используемый для входящих файлов Flow
Record WriterСредство записи, используемое для сериализации данных перед отправкой в Kafka
Publish StrategyФормат, используемый для публикации входящей записи FlowFile в Kafka.
Message Key FieldИмя поля во входных записях, которое следует использовать в качестве ключа для сообщения Kafka. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [Publish Strategy] Property has a value of "Use Content as Record Value".
FlowFile Attribute Header PatternРегулярное выражение, которое сопоставляется со всеми именами атрибутов FlowFile. Любой атрибут, имя которого соответствует шаблону, будет добавлен в сообщения Kafka в качестве заголовка. Если не указано, атрибуты FlowFile не будут добавлены в качестве заголовков.This Property is only considered if the [Publish Strategy] Property has a value of "Use Content as Record Value".
Header EncodingДля любого атрибута, добавляемого в качестве заголовка записи Kafka, это свойство указывает кодировку символов, используемую для сериализации заголовков. This Property is only considered if the [FlowFile Attribute Header Pattern] Property has a value specified.
Kafka KeyКлюч, используемый для сообщения. Если он не указан, в качестве ключа сообщения используется атрибут FlowFile «kafka.key», если он присутствует. Имейте в виду, что одновременное указание ключа Kafka и разграничение потенциально может привести к появлению множества сообщений Kafka с одним и тем же ключом.Обычно это не является проблемой, поскольку Kafka не обеспечивает и не предполагает уникальность сообщений и ключей. Тем не менее одновременное указание разделителя и ключа Kafka создает риск потери данных в Kafka. При сжатии тем в Kafka сообщения будут дедуплицированы на основе этого ключа. Поддерживает язык выражений: true (будет оцениваться с использованием атрибутов файла потока и переменных среды)This Property is only considered if the [Publish Strategy] Property has a value of "Use Wrapper".
Kafka Key Attribute EncodingFlowFiles that are emitted have an attribute named 'kafka.key'. This property dictates how the value of the attribute should be encoded.This Property is only considered if the [Publish Strategy] Property has a value of "Use Wrapper".
Record Key WriterЗаписывающее устройство для записи ключей записей, используемое для исходящих файлов FlowThis Property is only considered if the [Publish Strategy] Property has a value of "Use Wrapper".
Record Metadata StrategyУказывает, должны ли метаданные записи (тема и раздел) поступать из поля метаданных записи или из настроенных свойств имени темы и раздела / класса PartitionerThis Property is only considered if the [Publish Strategy] Property has a value of "Use Wrapper".

Взаимосвязи

  • failure: Любой файл потока, который не может быть отправлен в Kafka, будет направлен в это отношение
  • success: Файлы потока, для которых все содержимое было отправлено в Kafka.