Envie linhas do banco para o Kafka ou uma API REST, sem escrever um producer

Casos de uso · · 2 min de leitura

Você precisa das linhas de uma tabela como mensagens: para alimentar um serviço novo, reprocessar o histórico num tópico, abastecer a API de um parceiro ou carregar um ambiente de teste. Normalmente isso significa escrever e manter um pequeno producer. O dbSlice faz isso por um app Windows ou pela linha de comando: escolha as linhas, monte o JSON, veja a prévia e envie.

De onde vêm os dados e para onde vão

  • De: uma tabela, view ou SELECT no SQL Server, PostgreSQL, Oracle, MySQL, MariaDB, Firebird, SQLite ou InterSystems IRIS; ou um arquivo JSON ou CSV.
  • Para: Kafka, Redpanda, Apache Pulsar, RabbitMQ, uma API REST, um serviço SOAP, um método gRPC ou uma stored procedure em outro banco.

A origem só é lida.

Aba Send Data do dbSlice

Monte a mensagem e confira antes de enviar

  • Mapeie os campos da origem para o JSON de que você precisa, inclusive objetos aninhados (customer.name).
  • Limpe os valores no caminho: trim, maiúsculas e minúsculas, substituições, valores fixos, formatos de número e data, tabelas de valores, mascaramento e hash para campos sensíveis. Sem scripts para escrever.
  • A prévia monta o JSON dos primeiros registros sem enviar nada e mostra quais registros falhariam e por quê.
  • Envie uma amostra de poucos registros para conferir o destino, e depois rode o resto.

Saiba o que aconteceu com cada registro

Cada registro termina num destes estados, para você distinguir uma rejeição de um timeout:

EstadoSignificado
ConfirmadoO destino confirmou o recebimento
RejeitadoO destino recusou (por exemplo HTTP 400, ou nenhuma fila para rotear)
DesconhecidoEnviado, mas nenhuma confirmação chegou; pode ter sido entregue
InválidoFalhou nas suas regras de mapeamento; não foi enviado

Os registros que falharam são listados num arquivo com o número e o motivo, sem o conteúdo do registro, e toda execução fica guardada no histórico.

Rode de novo amanhã

Salve a definição e rode pela CLI ou pelo Agendador de Tarefas do Windows. As credenciais ficam guardadas protegidas para o seu usuário do Windows, não em texto aberto.

O que ele não é

  • Não é exactly-once. Não há transação entre o banco e o broker. Rodar a mesma definição de novo envia os registros de novo, e uma execução interrompida recomeça do início. Prepare o consumidor para lidar com duplicados (uma chave idempotente costuma bastar).
  • Não é captura de mudanças (CDC). Ele envia as linhas que você seleciona quando roda; não transmite as mudanças à medida que acontecem. Use um filtro WHERE (por exemplo updated_at > …) nas execuções recorrentes.
  • Sem Schema Registry. As mensagens são JSON simples em UTF-8; Avro e Protobuf com registry não são suportados.
  • Só produz. Ele não consome de tópicos nem de filas.

Faz parte da convivência de dados →

Ainda não usa o dbSlice?
Experimente a versão gratuita da Microsoft Store: ela conecta, navega pelos dados, compara estruturas e exporta para CSV.

Experimente grátis Veja as demonstrações

Em produção há mais de 6 anos · Garantia de 14 dias · Roda na sua máquina