Utilizando variáveis de ambiente locais com nós Kafka

Os nós KafkaProducer, KafkaConsumer e KafkaRead suportam variáveis de árvore de mensagens do ambiente local, que você pode usar para alterar dinamicamente as propriedades do nó.

É possível usar propriedades de cabeçalho customizado Kafka para incluir metadados nas mensagens Kafka para uso durante o processamento de mensagens. Essas propriedades são configuradas no LocalEnvironment, em uma pasta chamada KafkaHeader. Para obter mais informações, consulte Definição e recuperação das propriedades do cabeçalho personalizado do site Kafka.

KafkaProducer propriedades do ambiente local do nó

A tabela a seguir mostra os elementos na árvore de mensagens LocalEnvironment.Destination.Kafka.Output , que pode ser usada para substituir a propriedade Topic name no nó KafkaProducer . A tabela inclui um exemplo de como configurar os valores usando o ESQL; no entanto, você também pode configurá-los usando nós de transformação, como o nó Mapping . Para acessar o LocalEnvironment a partir de um nó Mapping , veja Customizando um mapa de mensagens para incluir um componente de montagem de mensagens.
Tabela 1. Propriedades do ambiente local de entrada que podem ser usadas pelo KafkaProducer
Nome do elemento Tipo Descrição
LocalEnvironment.Destination.Kafka.Output.topicName sequência O nome do tópico no qual a mensagem será publicada. Esta variável de ambiente substitui a propriedade Topic name no nó. Exemplo:
SET OutputLocalEnvironment.Destination.Kafka.Output.topicName = 'customers';
LocalEnvironment.Destination.Kafka.Output.key sequência Um valor de sequência para associar com a mensagem. Quando a mensagem está sendo publicada em um tópico com várias partições, um hash do valor da chave é usado para selecionar a partição na qual a mensagem é armazenada. Se nenhuma chave for fornecida, as mensagens serão distribuídas entre as partições de tópico pelo Kafka. Todas as mensagens publicadas que usam o mesmo valor da chave são enviadas para a mesma partição.
LocalEnvironment.Destination.Kafka.Output.serializationMode sequência O modo de serialização do Avro. Há duas opções: Padrão e Avro. O modo de serialização é usado para selecionar se a mensagem deve ser serializada usando o domínio da mensagem ou usando um esquema Avro.
LocalEnvironment.Destination.Kafka.Output.schemaId sequência O identificador do esquema.
LocalEnvironment.Destination.Kafka.Output.clientId sequência A ID do cliente a ser usada ao estabelecer a conexão com Kafka. Essa variável de ambiente substitui a propriedade Client ID no nó.
LocalEnvironment.Destination.Kafka.Output.timestamp gmttimestamp ou inteiro O registro de data e hora a ser definido na mensagem publicada. Se esse valor não for definido, o registro de data e hora será definido pelo corretor Kafka.
A tabela a seguir mostra os dados que são escritos pelo nó KafkaProducer para o LocalEnvironment ao propagar uma mensagem de saída:
Tabela 2. Propriedades de ambiente local de saída geradas pelo nó KafkaProducer
Element Tipo Descrição
LocalEnvironment.WrittenDestination.Kafka.topicName sequência O tópico no qual a mensagem foi publicada.
LocalEnvironment.WrittenDestination.Kafka.partition número inteiro A partição (no tópico) que contém a mensagem.
LocalEnvironment.WrittenDestination.Kafka.offset número inteiro O número de deslocamento na partição, para a mensagem que foi publicada.
LocalEnvironment.WrittenDestination.Kafka.key sequência O valor da chave que foi fornecido no ambiente local de entrada.
LocalEnvironment.WrittenDestination.Kafka.timestamp GMTTIMESTAMP O registro de data e hora da mensagem Kafka.

KafkaConsumer propriedades do ambiente local do nó

Depois de um nó KafkaConsumer ter lido uma mensagem, essas propriedades são colocadas no LocalEnvironment. O nó KafkaRead pode levar esses valores como entrada para re-ler a mensagem em um cenário de falha para o qual o nó KafkaRead está sendo usado (durante o processamento de captura).

A tabela a seguir mostra os dados que são escritos pelo nó KafkaConsumer para o LocalEnvironment ao propagar uma mensagem de saída:
Tabela 3. Propriedades de ambiente local de saída geradas pelo nó KafkaConsumer
Element Tipo Descrição
LocalEnvironment.Kafka.Input.topicName sequência O tópico no qual a mensagem foi publicada.
LocalEnvironment.Kafka.Input.partition número inteiro A partição (no tópico) que contém a mensagem.
LocalEnvironment.Kafka.Input.offset número inteiro O número de deslocamento na partição, para a mensagem que foi recebida.
LocalEnvironment.Kafka.Input.key sequência A chave (se houver) que foi associada à mensagem recebida. Esse campo existirá somente se uma chave foi associada à mensagem quando ela foi publicada. O valor da chave recebida é recebido como uma string pelo nó KafkaConsumer .
LocalEnvironment.Kafka.Input.timestamp GMTTIMESTAMP O registro de data e hora da mensagem Kafka.
LocalEnvironment.Kafka.input.timestampType número inteiro O tipo de registro de data e hora da mensagem Kafka.

KafkaRead propriedades do ambiente local do nó

A tabela a seguir mostra elementos que podem ser usados para substituir as propriedades no nó KafkaRead :
Tabela 4. Propriedades de ambiente local de entrada que podem ser usadas pelo nó KafkaRead
Nome do elemento Tipo Descrição
LocalEnvironment.Destination.Kafka.Read.topicName sequência O tópico no qual a mensagem foi publicada.
LocalEnvironment.Destination.Kafka.Read.partition número inteiro A partição (no tópico) que contém a mensagem.

Antes da versão 13.0.5.0, o nome dessa propriedade era partitionNumber. Ambos os nomes de propriedade são compatíveis, mas se ambos forem fornecidos, o valor especificado na propriedade partition será usado preferencialmente ao valor da propriedade partitionNumber .

LocalEnvironment.Destination.Kafka.Read.offset número inteiro O número de deslocamento na partição para a mensagem que foi recebida.
LocalEnvironment.Destination.Kafka.Read.connectionTimeout número inteiro O tempo limite usado para ler a mensagem no tópico do Kafka.
LocalEnvironment.Destination.Kafka.Read.clientId sequência A ID do cliente a ser usada ao estabelecer a conexão com Kafka. Essa variável de ambiente substitui a propriedade Client ID no nó.
A tabela a seguir mostra os dados que são escritos pelo nó KafkaRead para o LocalEnvironment após a leitura de uma mensagem:
Tabela 5. Dados escritos pelo nó KafkaRead para o LocalEnvironment
Nome do elemento Tipo Descrição
LocalEnvironment.Kafka.Read.topicName sequência O tópico no qual a mensagem foi publicada.
LocalEnvironment.Kafka.Read.partition número inteiro A partição (no tópico) que contém a mensagem.
LocalEnvironment.Kafka.Read.offset número inteiro O número de deslocamento na partição para a mensagem que foi recebida.
LocalEnvironment.Kafka.Read.key sequência A chave (se houver) que foi associada à mensagem recebida. Esse campo existirá somente se uma chave foi associada à mensagem quando ela foi publicada. O valor da chave recebida é recebido como uma string pelo nó KafkaRead .
LocalEnvironment.Kafka.Read.timestamp GMTTIMESTAMP O registro de data e hora da mensagem Kafka.
LocalEnvironment.Kafka.Read.timestampType número inteiro O tipo de registro de data e hora da mensagem Kafka.