6 min de leitura

Supermetal vs Flink, Kafka Connect e Spark: o Verdadeiro Diferencial na Ingestão Lakehouse

a close up of a typewriter with a paper reading edge computing
Photo by Markus Winkler on Unsplash

No ecossistema moderno de dados, a pergunta já não é apenas se conseguimos mover informações de um banco transacional para um data lake. A questão real é: com que arquitetura, com que custo operacional e em quanto tempo esse caminho acontece. Foi exatamente isso que um benchmark recente colocou à prova ao comparar quatro abordagens para replicar dados de Postgres para Apache Iceberg em ambiente AWS, com foco no throughput de snapshot em um único nó.

O resultado chama atenção pela diferença de ordem de grandeza. Enquanto Supermetal concluiu a sincronização em 13 minutos, Flink levou entre 90 e 116 minutos, dependendo do modo de execução. Kafka Connect ficou em torno de 120 minutos e Spark atingiu 200 minutos no melhor cenário testado. Em um teste baseado em TPC-H SF50, os dados foram validados entre origem e destino sem perdas ou duplicação, o que torna a comparação ainda mais relevante: não se trata só de velocidade, mas de arquitetura de ingestão.

O ponto mais interessante do benchmark é que a diferença não parece vir apenas da capacidade do mecanismo de destino. O que realmente separa as ferramentas é a forma como cada uma trata CDC, serialização/deserialização, checkpoints, coordenação de commits e o próprio flush do sink. Em outras palavras: o gargalo aparece antes do Iceberg terminar de escrever os arquivos.

O que o benchmark mediu de fato

O teste comparou quatro caminhos para ingestão de dados de Postgres para Iceberg em AWS, com foco no throughput de snapshot em um único nó. Isso é importante porque o snapshot costuma representar a maior carga inicial em pipelines CDC: é a etapa em que o sistema precisa copiar uma base já existente antes de seguir para o fluxo incremental de mudanças.

Além da sincronização inicial, o estudo também validou a consistência dos dados entre origem e destino. Esse detalhe é essencial, porque benchmarks de ingestão às vezes priorizam apenas taxa de escrita e deixam de lado a integridade da replicação. Aqui, o dado final chegou íntegro — o que permite comparar a eficiência das soluções com mais confiança.

Por que o resultado de 13 minutos importa tanto

A marca de 13 minutos alcançada pelo Supermetal não é apenas um número impressionante. Ela sugere um ganho estrutural: menos camadas intermediárias, menos overhead de coordenação e menos custo de transformação do evento ao longo do caminho.

O briefing do benchmark deixa claro que a arquitetura do Supermetal combina source e sink sem Kafka intermediário, o que reduz etapas de serialização, coordenação e commit. Em pipelines reais, isso pode representar muito mais do que ganho de desempenho bruto: significa menor esforço de operação, menos tuning manual e uma superfície de falha mais enxuta.

Outro diferencial técnico é a capacidade de tratar snapshot e CDC ao vivo como fases distintas, permitindo otimizações específicas para cada etapa. Isso é relevante porque a lógica ideal para carregar um snapshot inicial nem sempre é a mesma que faz sentido para eventos incrementais contínuos.

Entre as opções open source, o Flink apareceu como o melhor resultado depois de ajuste fino, mas ainda ficou muito distante da solução integrada. No benchmark, o comportamento do sink Iceberg passou a depender fortemente do intervalo de checkpoint, que indiretamente controlava o tamanho dos arquivos e o ritmo de flush. Isso mostra um padrão conhecido em streaming: quando a orquestração dos commits depende demais de checkpoints, o tuning passa a ser parte central da performance.

O Kafka Connect, por sua vez, carregou o custo de uma arquitetura com mais peças: Debezium + Kafka + sink. A necessidade de ajustar linger.ms e batch.size para sustentar throughput reforça que a performance aqui não depende só do conector, mas de toda a cadeia intermediária. Em pipelines de grande volume, cada camada adicional vira uma fonte potencial de latência, amplificação de CPU e complexidade operacional.

Já o Spark sofreu com uma limitação estrutural diferente: a ausência de um mecanismo nativo de Dynamic Sink. Na prática, isso obrigou o teste a usar uma query por tabela, elevando overhead de operação e de commit. No cenário avaliado, Spark acabou penalizado não só por desempenho, mas pela dificuldade de encaixar o modelo de ingestão em um fluxo mais natural de CDC.

O que esses números realmente revelam sobre arquitetura

O benchmark reforça uma ideia importante: em pipelines CDC, a eficiência não nasce apenas do formato final de armazenamento. O tempo total depende muito mais da forma como o evento nasce, trafega, é transformado e só então gravado.

Alguns aprendizados se destacam:

  • Supermetal reduz overhead ao eliminar intermediários e acoplar melhor o comportamento da origem ao writer.
  • Flink exige tuning cuidadoso de checkpoint e apresentação do fluxo para conseguir bom throughput.
  • Kafka Connect ganha em modularidade, mas paga um preço relevante pela camada adicional de transporte e commit.
  • Spark pode funcionar, mas a ausência de routing nativo e a necessidade de múltiplas queries aumentam o custo operacional.
  • Em todos os casos, o gargalo apareceu mais na camada CDC e na manipulação dos eventos do que no writer Iceberg em si.

Isso ajuda a explicar por que, em algumas cargas, a escolha do pipeline é mais decisiva do que a escolha do formato de destino. Iceberg é uma excelente camada de armazenamento e tabela, mas o caminho até ele pode consumir a maior parte do tempo e do orçamento.

Implicações práticas para data engineering

Para times de engenharia de dados, o benchmark tem implicações bem diretas. A primeira é que existe espaço claro para ferramentas que simplifiquem o pipeline Postgres-to-Iceberg com menos peças e menos tuning. Em ambientes reais, isso se traduz em menor tempo de implantação, menos esforço de manutenção e menor risco de regressão por configuração.

A segunda implicação é econômica. Se uma arquitetura reduz o tempo de carga de horas para minutos, o impacto se estende para o consumo de infraestrutura, janela de indisponibilidade, custo de operação e velocidade de entrega do projeto. Em cargas de grande volume, a diferença pode ser material.

A terceira é estratégica: benchmarks como esse influenciam a adoção de stacks de CDC e streaming para data lakes, archival e sincronização operacional. Quando uma solução integrada mostra ganho tão acima das alternativas, a discussão deixa de ser apenas técnica e passa a ser também de produtividade e time-to-value.

Leitura crítica dos resultados

Apesar de relevantes, os números precisam ser lidos com cautela. O teste foi patrocinado pela Supermetal, o que pede atenção ao desenho experimental e às condições comparadas. Além disso, o benchmark foi feito em single-node, então não representa necessariamente o melhor caso de cada ferramenta em clusters maiores.

Também houve configurações específicas para cada stack, e pequenas mudanças poderiam alterar os tempos observados. Outro ponto é que o foco esteve no snapshot e throughput, não na latência ponta a ponta em CDC contínuo. E, no caso do Spark, o teste foi feito a partir de tópicos Kafka pré-populados, e não como um pipeline completo com snapshot direto.

Ainda assim, o sinal é forte. Mesmo com essas limitações, a distância entre as abordagens sugere que a arquitetura de ingestão pode dominar o desempenho tanto quanto — ou mais do que — o mecanismo de armazenamento final.

O que fica como mensagem principal

Se há uma conclusão mais ampla nesse benchmark, ela é esta: o que explica a diferença entre 13 minutos e horas não é apenas o Iceberg. O verdadeiro fator decisivo está na maneira como cada stack organiza o fluxo CDC, a coordenação entre snapshot e live stream, a frequência de commits e o custo de preparar os eventos para escrita.

Em cenários de replicação, archival e sincronização entre Postgres e Iceberg, a simplicidade arquitetural pode valer mais do que o acúmulo de componentes. Menos peças, menos serialização, menos pontos de coordenação e um sink mais inteligente podem transformar um pipeline de horas em um pipeline de minutos.

No fim, o benchmark não prova apenas que uma ferramenta foi mais rápida. Ele mostra que, em CDC moderno, o desenho do caminho importa tanto quanto o destino.