Mover dados do Kafka no Google Cloud

Este documento aconselha desenvolvedores, arquitetos e tomadores de decisões sobre opções de migração de dados externos do Kafka para o Google Cloud, recuperação de desastres (DR), integração com o BigQuery e captura de dados alterados (CDC) de bancos de dados.

Em Google Cloud, é possível mover dados do Kafka para um cluster do serviço gerenciado do Google Cloud para Apache Kafka ou para outro produto do Google, como uma tabela do BigQuery ou um local do Cloud Storage. Para um resumo, consulte a tabela a seguir.

Caso de uso Fonte de dados Destino dos dados Solução recomendada
Copiar dados Cluster autogerenciado do Apache Kafka Cluster do Serviço gerenciado para Apache Kafka Crie um conector de origem do MirrorMaker 2.0 em um cluster do Connect.
Analisar dados em um data warehouse Cluster do Serviço gerenciado para Apache Kafka BigQuery Crie um conector de coletor do BigQuery em um cluster do Connect.
Migrar dados com sincronização Cluster Kafka autogerenciado Cluster do Serviço gerenciado para Apache Kafka Crie um conector de origem do MirrorMaker 2.0 em um cluster do Connect.
Replicar o cluster entre regiões Serviço gerenciado para Apache Kafka (região A) Cluster do Serviço Gerenciado para Apache Kafka (região B) Crie um conector de origem do MirrorMaker 2.0 em um cluster do Connect.
Dados em backup Serviço gerenciado para Apache Kafka Cloud Storage Crie um conector de coletor do Cloud Storage em um cluster do Connect.
Capturar mudanças no banco de dados Banco de dados relacional, Spanner ou Bigtable Serviço gerenciado para Apache Kafka Executar um pipeline do Apache Beam no Dataflow.
Processar dados com o Apache Spark Serviço gerenciado para Apache Kafka Apache Spark Execute o Dataproc no Compute Engine.

Google Cloud oferece várias soluções para integrar seus dados do Kafka. Cada oferta tem vantagens exclusivas, dependendo das suas necessidades e da infraestrutura atual. O melhor método de integração para você depende dos seus sistemas atuais, do conjunto de habilidades atual e da capacidade de gerenciar a infraestrutura.

Usar o Kafka Connect

O Google Cloud Managed Service para Apache Kafka permite provisionar clusters que executam o Kafka Connect. O principal objetivo do Kafka Connect é conectar seu cluster do Serviço Gerenciado para Apache Kafka a outros sistemas para casos de uso como migração, backup, recuperação de desastres, alta disponibilidade e integração de dados. Recomendamos o Kafka Connect para as tarefas mais comuns de integração de dados do Serviço Gerenciado para Apache Kafka. O Kafka Connect oferece várias vantagens:

  • Conecte seus clusters externos do Kafka a várias fontes e receptores de dados do Google Cloud usando conectores integrados. Os clusters externos do Kafka incluem o Serviço gerenciado para Apache Kafka, clusters locais do Kafka e implantações personalizadas na nuvem. Os conectores compatíveis incluem:

    • Conectores do MirrorMaker 2.0

    • Coletor do BigQuery

    • Coletor do Cloud Storage

    • Origem do Pub/Sub

    • Coletor do Pub/Sub

  • Aproveite a escalonabilidade e a confiabilidade da infraestrutura do Google Cloud, que garante que seus pipelines de dados possam lidar com volumes crescentes de dados e manter a alta disponibilidade.

  • Descarregue a sobrecarga operacional do gerenciamento da infraestrutura do Kafka Connect para Google Cloud.

  • Monitore e gerencie seus clusters do Kafka Connect usando as ferramentas de monitoramento e registro em Google Cloud.

Para saber mais sobre o Kafka Connect, consulte a Visão geral do Kafka Connect.

Usar o Dataflow

O serviço de processamento de dados sem servidor doGoogle Cloudoferece integração de dados em lote e de streaming sem servidor. É possível usar o Dataflow para mover dados do Kafka para diferentes coletores, como conjuntos de dados do BigQuery ou buckets do Cloud Storage. É possível implantar pipelines do Dataflow usando um modelo do Dataflow ou um pipeline do Apache Beam. Escolha sua implantação do Dataflow com base nos seguintes fatores:

  • Para implantações mais simples e rápidas, especialmente para tarefas comuns de integração de dados, escolha modelos pré-criados do Dataflow que podem ser implantados diretamente do console.

  • Para máxima flexibilidade, controle e casos de uso complexos que exigem lógica personalizada, escolha um pipeline do Apache Beam.

Modelos integrados

Os modelos integrados do Dataflow são pipelines predefinidos do Apache Beam que podem ser implantados em um assistente de jobs fácil de usar e sem código. O Dataflow oferece vários modelos para exportar dados do Kafka para o Google Cloud.

Pipelines personalizados do Apache Beam

Os modelos do Dataflow discutidos na seção anterior podem não atender a todos os seus requisitos. Por exemplo, talvez seja necessário integrar seus dados do Kafka a uma origem ou um coletor que não seja compatível com esses modelos. Talvez seja necessário fazer transformações, normalizações ou mutações nos registros.

Para esses cenários, use o SDK do Apache Beam para criar pipelines que podem ser executados no Dataflow.

Para informações sobre o modelo de programação do Apache Beam, incluindo conceitos-chave como pipelines, PCollections, transformações e executores, consulte Modelo de programação para o Apache Beam.

Para recursos sobre como começar a programar com o Apache Beam, incluindo instalação do SDK, guias de programação e ambientes interativos, consulte Usar o Apache Beam para criar pipelines. O documento também fornece links para projetar, criar e testar seu pipeline, além de exemplos de pipelines de streaming.

Se você precisar gravar Change Streams (captura de dados alterados) no Kafka, recomendamos usar os seguintes componentes como parte do seu pipeline do Dataflow:

O Dataflow oferece vários recursos para usar o Kafka com seu pipeline do Dataflow:

Escolher entre o Kafka Connect e o Dataflow

Ao transferir dados entre clusters do Kafka, especialmente para o Serviço Gerenciado para Apache Kafka, o Kafka Connect geralmente é a solução ideal. O MirrorMaker 2.0, parte do Kafka Connect, é adequado para tarefas como migração, backup, recuperação de desastres ou transformações básicas de cluster. O Kafka Connect aceita transformações de registro por vez para modificações básicas por mensagem.

Para migração de dados de alto volume que exige transformações complexas, o Dataflow é a opção mais adequada. A capacidade do Dataflow está em realizar operações complexas baseadas em streams, incluindo limpeza, enriquecimento e agregação de dados, antes que eles cheguem ao cluster de destino do Serviço Gerenciado para Apache Kafka. O Dataflow permite unir vários fluxos de dados com lógica avançada de janelas e alinhamento, que são essenciais para correlação e agregação de dados complexas. Essa capacidade diferencia o Dataflow do Kafka Connect, que se limita a modificações básicas por mensagem.

Usar o Dataproc para pipelines do Spark

Esse serviço totalmente gerenciado para cargas de trabalho do Apache Spark e do Hadoop é uma boa opção se você já tiver pipelines do Spark. Os usuários do Apache Spark podem conectar implantações do Spark ao Serviço gerenciado para Apache Kafka usando o Dataproc. O Dataproc é o serviço totalmente gerenciado do Google Cloud para pipelines do Spark e inclui ferramentas de gerenciamento do ciclo de vida do cluster. Por exemplo, se você tiver um aplicativo Spark que processa dados de streaming do Kafka e quiser migrar esse aplicativo para Google Cloud, o Dataproc seria uma opção adequada.

Para o Spark Streaming e o Kafka, o Apache Spark oferece um guia de integração. Para ajudar a implantar fluxos de trabalho comuns do Kafka, o Dataproc fornece vários modelos de código aberto.