Use definições de ETL e mapas de transformação para processar eventos do Kafka. As definições de ETL e os mapas de transformação especificam a lógica de transformação a ser usada ao extrair dados por meio de importações programadas. Você pode usar as mesmas definições de ETL e mapas de transformação para transformar os eventos recebidos por meio do Kafka.
Procedimento
-
Crie um tópico para consumir ETL e transformar mensagens do consumidor do mapa.
-
Use o comando a seguir para criar um tópico no Hermes.
Neste exemplo, o nome do tópico é topic2.
bin/kafka-topics.sh --create --command-config config/bootcamp.properties --bootstrap-server <instance name>.service-now.com:4000,<instance name>.service-now.com:4001,<instance name>.service-now.com:4002, <instance name>.service-now.com:4003 --topic snc.<instance name>.topic2
Substitua
<instance name> com o nome da sua instância.
-
Para exibir o tópico, faça login na instância e navegue até .
Nota: Leva aproximadamente 10 minutos para criar um tópico.
-
Crie um consumidor de ETL para consumir dados do tópico.
-
Navegar até .
-
Selecione Novo.
-
No formulário Consumidor do Kafka, insira um nome em Nome campo.
Este exemplo usa o nome Importação de membro.
-
Para Transformador robusto do conjunto de importação Arquivado, selecione um transformador robusto de conjunto de importação existente.
Para o transformador de conjunto de importação robusto, selecione um que não esteja usando a opção para armazenar dados em uma única coluna. Para poder ver as mensagens, certifique-se de que o transformador robusto do conjunto de importação tenha Detalhado opção habilitada.
-
Desmarque Dados em coluna única opção.
Esta opção só deve ser selecionada para tabelas de conjunto de importação com dados em uma única coluna.
-
Defina Mapeamento de coluna . Rótulo .
Isso significa que as chaves JSON da mensagem de entrada são mapeadas para os rótulos de coluna da tabela Conjunto para importação.
-
Salve o formulário.
-
Crie um fluxo Kafka para o consumidor.
-
No formulário Fluxo do Kafka, defina os seguintes valores de campo.
-
Selecione Ativar Link em Links relacionados.
Você deve ser capaz de ver a assinatura ativada.
-
Publique mensagens no tópico 2.
-
Execute o comando a seguir para publicar mensagens no tópico 2.
bin/kafka-console-producer.sh --topic snc.<instance name>.topic2 --producer.config config/bootcamp.properties --bootstrap-server <instance name>.service-now.com:4000,<instance name>.service-now.com:4001,<instance name>.service-now.com:4002,<instance name>.service-now.com:4003
Substitua <instance name> com o nome da sua instância.
Este comando solicita mensagens.
-
Envie a seguinte mensagem JSON.
{"city":"San Diego","name":"Jhon","id":"SN001","state":"California"}
Você pode enviar esta mensagem com qualquer valor, mas a chave de mensagem JSON deve corresponder aos rótulos da tabela Conjunto para importação.
-
Navegue de volta para o consumidor de ETL que você criou.
Após cerca de um minuto, os dados devem ter sido importados por meio do conjunto de importação.
-
Para exibir informações detalhadas sobre o conjunto de importação, selecione o número do conjunto de importação.
-
Para exibir informações detalhadas sobre uma linha de conjunto de importação, selecione o número da linha do conjunto de importação.
-
Crie um Consumidor de mapa de transformação para consumir dados.
-
Navegar até .
-
Selecione Novo.
-
No formulário Consumidor do mapa de transformação, insira um nome em Nome campo.
-
Para Mapa de transformação selecione um mapa de transformação existente.
-
Salve o formulário.
-
Crie um fluxo Kafka para o consumidor.
-
No formulário Fluxo do Kafka, defina os seguintes valores de campo.
-
Selecione Ativar Link em Links relacionados.
Você deve ser capaz de ver a assinatura ativada.
-
Publique mensagens no tópico 2.
-
Execute o comando a seguir para publicar mensagens no tópico 2.
bin/kafka-console-producer.sh --topic snc.<instance name>.topic2 --producer.config config/bootcamp.properties --bootstrap-server <instance name>.service-now.com:4000,<instance name>.service-now.com:4001,<instance name>.service-now.com:4002,<instance name>.service-now.com:4003
Substitua <instance name> com o nome da sua instância.
Este comando solicita mensagens.
-
Envie a seguinte mensagem JSON.
{"city":"San Diego","name":"Jhon","id":"SN001","state":"California"}
Você pode enviar esta mensagem com qualquer valor, mas a chave de mensagem JSON deve corresponder aos rótulos da tabela Conjunto para importação.
-
Vá para o Consumidor do mapa de transformação que você criou.
Após cerca de um minuto, os dados devem ter sido importados por meio do conjunto de importação.
-
Para exibir informações detalhadas sobre o conjunto de importação, selecione o número do conjunto de importação conforme na etapa 3d acima.