Mueve datos de Kafka en Google Cloud

En este documento, se brinda asesoramiento a desarrolladores, arquitectos y responsables de la toma de decisiones sobre las opciones para migrar datos externos de Kafka a Google Cloud, la recuperación ante desastres (DR), la integración con BigQuery y la captura de datos modificados (CDC) de bases de datos.

Dentro de Google Cloud, puedes transferir datos de Kafka a un clúster de Google Cloud Managed Service para Apache Kafka o a otro producto de Google, como una tabla de BigQuery o una ubicación de Cloud Storage. Para obtener un resumen, consulta la siguiente tabla.

Caso de uso Fuente de datos Destino de datos Solución recomendada
Copiar datos Clúster de Apache Kafka autoadministrado Clúster de Managed Service para Apache Kafka Crea un conector de origen de MirrorMaker 2.0 en un clúster de Connect.
Analiza datos en un almacén de datos Clúster de Managed Service para Apache Kafka BigQuery Crea un conector de receptor de BigQuery en un clúster de Connect.
Migra datos con sincronización Clúster de Kafka autoadministrado Clúster de Managed Service para Apache Kafka Crea un conector de origen de MirrorMaker 2.0 en un clúster de Connect.
Replica el clúster en todas las regiones Managed Service para Apache Kafka (región A) Clúster de Managed Service para Apache Kafka (región B) Crea un conector de origen de MirrorMaker 2.0 en un clúster de Connect.
Crear copias de seguridad de los datos Servicio administrado para Apache Kafka Cloud Storage Crea un conector de receptor de Cloud Storage en un clúster de Connect.
Captura los cambios en la base de datos Base de datos relacional, Spanner o Bigtable Servicio administrado para Apache Kafka Ejecuta una canalización de Apache Beam en Dataflow.
Procesa datos con Apache Spark Servicio administrado para Apache Kafka Apache Spark Ejecuta Dataproc en Compute Engine.

Google Cloud ofrece varias soluciones para integrar tus datos de Kafka. Cada oferta tiene ventajas únicas según tus necesidades y la infraestructura existente. El mejor método de integración para ti depende de tus sistemas existentes, tu conjunto de habilidades actual y tu capacidad para administrar la infraestructura.

Usa Kafka Connect

Google Cloud Managed Service para Apache Kafka te permite aprovisionar clústeres que ejecutan Kafka Connect. El objetivo principal de Kafka Connect es conectar tu clúster de Managed Service para Apache Kafka a otros sistemas para casos de uso como migración, copia de seguridad, recuperación ante desastres, alta disponibilidad e integración de datos. Recomendamos Kafka Connect para las tareas de integración de datos más comunes de Managed Service para Apache Kafka. Kafka Connect ofrece varias ventajas:

  • Conecta tus clústeres externos de Kafka a varias Google Cloud fuentes y receptores de datos con conectores integrados. Los clústeres externos de Kafka incluyen Managed Service para Apache Kafka, clústeres de Kafka locales y las implementaciones personalizadas en la nube. Entre los conectores compatibles, se incluyen los siguientes:

    • Conectores de MirrorMaker 2.0

    • Receptor de BigQuery

    • Receptor de Cloud Storage

    • Fuente de Pub/Sub

    • Receptor de Pub/Sub

  • Aprovecha la escalabilidad y la confiabilidad de la infraestructura de Google Cloud, que garantiza que tus canalizaciones de datos puedan controlar volúmenes de datos cada vez mayores y mantener una alta disponibilidad.

  • Transfiere la carga operativa de administrar la infraestructura de Kafka Connect aGoogle Cloud.

  • Supervisa y administra tus clústeres de Kafka Connect con las herramientas de supervisión y registro de Google Cloud.

Para obtener más información sobre Kafka Connect, consulta la descripción general de Kafka Connect.

Usar Dataflow

El servicio de procesamiento de datos sin servidores deGoogle Cloudofrece integración de datos por lotes y de transmisión sin servidores. Puedes usar Dataflow para transferir datos de Kafka a diferentes receptores, como conjuntos de datos de BigQuery o buckets de Cloud Storage. Puedes implementar canalizaciones de Dataflow con una plantilla de Dataflow o una canalización de Apache Beam. Elige la implementación de Dataflow según los siguientes factores:

  • Para implementaciones más simples y rápidas, en especial para tareas comunes de integración de datos, elige plantillas de Dataflow prediseñadas que se puedan implementar directamente desde la consola.

  • Para obtener la máxima flexibilidad, control y casos de uso complejos que requieren lógica personalizada, elige una canalización de Apache Beam.

Plantillas integradas

Las plantillas integradas de Dataflow son canalizaciones de Apache Beam predefinidas que puedes implementar en un asistente de trabajos fácil de usar y sin código. Dataflow proporciona varias plantillas de Dataflow para exportar datos de Kafka a Google Cloud.

Canalizaciones personalizadas de Apache Beam

Es posible que las plantillas de Dataflow que se analizaron en la sección anterior no cumplan con todos tus requisitos. Por ejemplo, es posible que debas integrar tus datos de Kafka con una fuente o un receptor que no sean compatibles con estas plantillas. Es posible que también debas realizar transformaciones, normalizaciones o mutaciones en los registros.

En estos casos, puedes usar el SDK de Apache Beam para crear canalizaciones que se puedan ejecutar en Dataflow.

Para obtener información sobre el modelo de programación de Apache Beam, incluidos los conceptos clave, como canalizaciones, PCollections, transformaciones y ejecutores, consulta Modelo de programación para Apache Beam.

Para obtener recursos sobre cómo comenzar a programar con Apache Beam, incluida la instalación del SDK, las guías de programación y los entornos interactivos, consulta Usa Apache Beam para compilar canalizaciones. El documento también proporciona vínculos para diseñar, crear y probar tu canalización, junto con ejemplos de canalizaciones de transmisión.

Si necesitas escribir Change Streams (captura de datos modificados) en Kafka, te recomendamos que uses los siguientes componentes como parte de tu canalización de Dataflow:

Dataflow proporciona varios recursos para usar Kafka con tu canalización de Dataflow:

Elige entre Kafka Connect y Dataflow

Cuando se transfieren datos entre clústeres de Kafka, en especial a Managed Service for Apache Kafka, Kafka Connect suele ser la solución más adecuada. MirrorMaker 2.0, que forma parte de Kafka Connect, es adecuado para tareas como la migración de clústeres, la copia de seguridad, la recuperación ante desastres o las transformaciones básicas. Kafka Connect admite transformaciones de registros individuales para modificaciones básicas por mensaje.

Para la migración de datos de gran volumen que requiere transformaciones complejas, Dataflow es la opción más adecuada. La fortaleza de Dataflow radica en su capacidad para realizar operaciones complejas basadas en flujos, como la limpieza, el enriquecimiento y la agregación de datos, antes de que los datos lleguen al clúster de destino de Managed Service para Apache Kafka. Dataflow permite unir múltiples flujos de datos con lógica avanzada de alineación y ventanas, que son esenciales para la correlación y la agregación de datos complejos. Esta capacidad diferencia a Dataflow de Kafka Connect, que se limita a modificaciones básicas por mensaje.

Usa Dataproc para canalizaciones de Spark

Este servicio completamente administrado para cargas de trabajo de Apache Spark y Hadoop es una buena opción si ya tienes canalizaciones de Spark. Los usuarios de Apache Spark pueden conectar implementaciones existentes de Spark a Managed Service for Apache Kafka con Dataproc. Dataproc es el servicio completamente administrado de Google Cloud para canalizaciones de Spark y, además, incluye herramientas para la administración del ciclo de vida de los clústeres. Por ejemplo, si tienes una aplicación de Spark que procesa datos de transmisión de Kafka y deseas migrar esta aplicación a Google Cloud, Dataproc sería una opción adecuada.

En el caso de Spark Streaming y Kafka, Apache Spark proporciona una guía de integración. Para ayudar a implementar flujos de trabajo comunes de Kafka, Dataproc proporciona varias plantillas de código abierto.