Sposta i dati Kafka in Google Cloud

Questo documento fornisce consigli a sviluppatori, architetti e responsabili delle decisioni sulle opzioni per la migrazione dei dati Kafka esterni a Google Cloud, ripristino di emergenza (RE), l'integrazione con BigQuery e Change Data Capture (CDC) dai database.

All'interno di Google Cloud, puoi spostare i dati Kafka in un cluster del servizio gestito Google Cloud per Apache Kafka o in un altro prodotto Google, ad esempio una tabella BigQuery o una posizione Cloud Storage. Per un riepilogo, consulta la tabella seguente.

Caso d'uso Origine dati Destinazione dei dati Soluzione consigliata
Copia i dati Cluster Apache Kafka autogestito Cluster Managed Service per Apache Kafka Crea un connettore di origine MirrorMaker 2.0 in un cluster di connessione.
Analizzare i dati in un data warehouse Cluster Managed Service per Apache Kafka BigQuery Crea un connettore di sink BigQuery in un cluster Connect.
Eseguire la migrazione dei dati con la sincronizzazione Cluster Kafka autogestito Cluster Managed Service per Apache Kafka Crea un connettore di origine MirrorMaker 2.0 in un cluster di connessione.
Replica il cluster tra regioni Managed Service per Apache Kafka (regione A) Cluster Managed Service per Apache Kafka (regione B) Crea un connettore di origine MirrorMaker 2.0 in un cluster di connessione.
Esegui il backup dei dati Managed Service per Apache Kafka Cloud Storage Crea un connettore di sink Cloud Storage in un cluster Connect.
Acquisire le modifiche al database Database relazionale, Spanner o Bigtable Managed Service per Apache Kafka Esegui una pipeline Apache Beam su Dataflow.
Elaborare i dati con Apache Spark Managed Service per Apache Kafka Apache Spark Esegui Dataproc su Compute Engine.

Google Cloud offre diverse soluzioni per l'integrazione dei dati Kafka. Ogni offerta presenta vantaggi unici a seconda delle tue esigenze e dell'infrastruttura esistente. Il metodo di integrazione migliore per te dipende dai sistemi esistenti, dalle competenze attuali e dalla capacità di gestire l'infrastruttura.

Utilizza Kafka Connect

Google Cloud Managed Service per Apache Kafka ti consente di eseguire il provisioning di cluster che eseguono Kafka Connect. L'obiettivo principale di Kafka Connect è connettere il cluster Managed Service per Apache Kafka ad altri sistemi per casi d'uso come migrazione, backup, ripristino di emergenza, alta disponibilità e integrazione dei dati. Consigliamo Kafka Connect per le attività di integrazione dei dati più comuni per Managed Service per Apache Kafka. Kafka Connect offre diversi vantaggi:

  • Collega i tuoi cluster Kafka esterni a varie Google Cloud origini dati e sink utilizzando i connettori integrati. I cluster Kafka esterni includono Managed Service per Apache Kafka, cluster Kafka on-premise e deployment cloud personalizzati. I connettori supportati includono:

    • Connettori MirrorMaker 2.0

    • Sink BigQuery

    • Sink Cloud Storage

    • Origine Pub/Sub

    • Sink Pub/Sub

  • Sfrutta la scalabilità e l'affidabilità dell'infrastruttura di Google Cloud, che garantisce che le pipeline di dati possano gestire volumi di dati in crescita e mantenere un'alta disponibilità.

  • Trasferisci il carico operativo della gestione dell'infrastruttura Kafka Connect a Google Cloud.

  • Monitora e gestisci i cluster Kafka Connect utilizzando gli strumenti di monitoraggio e logging di Google Cloud.

Per saperne di più su Kafka Connect, consulta la panoramica di Kafka Connect.

Utilizza Dataflow

Il servizio di elaborazione dei dati serverless diGoogle Cloudoffre l'integrazione dei dati di flusso e batch serverless. Puoi utilizzare Dataflow per spostare i dati Kafka in sink diversi come set di dati BigQuery o bucket Cloud Storage. Puoi eseguire il deployment delle pipeline Dataflow utilizzando un modello Dataflow o eseguendo il deployment di una pipeline Apache Beam. Scegli il deployment di Dataflow in base ai seguenti fattori:

  • Per deployment più semplici e veloci, soprattutto per le attività comuni di integrazione dei dati, scegli i modelli Dataflow predefiniti di cui è possibile eseguire il deployment direttamente dalla console.

  • Per la massima flessibilità, il massimo controllo e i casi d'uso complessi che richiedono una logica personalizzata, scegli una pipeline Apache Beam.

Modelli integrati

I modelli Dataflow integrati sono pipeline Apache Beam predefinite che puoi eseguire il deployment in una procedura guidata per la creazione di job facile da usare e senza codice. Dataflow fornisce diversi modelli Dataflow per esportare i dati Kafka in Google Cloud.

Pipeline Apache Beam personalizzate

I modelli Dataflow descritti nella sezione precedente potrebbero non soddisfare tutti i tuoi requisiti. Ad esempio, potresti dover integrare i tuoi dati Kafka con un'origine o un sink non supportati da questi modelli. Potresti anche dover eseguire trasformazioni, normalizzazioni o mutazioni sui record.

Per questi scenari, puoi utilizzare l'SDK Apache Beam per creare pipeline che possono essere eseguite su Dataflow.

Per informazioni sul modello di programmazione Apache Beam, inclusi concetti chiave come pipeline, PCollection, trasformazioni ed esecutori, consulta Modello di programmazione per Apache Beam.

Per risorse su come iniziare a programmare con Apache Beam, tra cui installazione dell'SDK, guide alla programmazione e ambienti interattivi, consulta Utilizzare Apache Beam per creare pipeline. Il documento fornisce anche link per progettare, creare e testare la pipeline, oltre a pipeline di streaming di esempio.

Se devi scrivere Change Streams (Change Data Capture) in Kafka, ti consigliamo di utilizzare i seguenti componenti come parte della pipeline Dataflow:

Dataflow fornisce diverse risorse per l'utilizzo di Kafka con la pipeline Dataflow:

Scegliere tra Kafka Connect e Dataflow

Quando trasferisci dati tra cluster Kafka, in particolare a Managed Service per Apache Kafka, Kafka Connect è in genere la soluzione di riferimento. MirrorMaker 2.0, parte di Kafka Connect, è ideale per attività come la migrazione, il backup, il ripristino di emergenza o le trasformazioni di base dei cluster. Kafka Connect supporta le trasformazioni record per record per modifiche di base per messaggio.

Per la migrazione di grandi volumi di dati che richiedono trasformazioni complesse, Dataflow è la scelta più appropriata. Il punto di forza di Dataflow risiede nella sua capacità di eseguire operazioni complesse basate su flussi, tra cui pulizia, arricchimento e aggregazione dei dati, prima che i dati raggiungano il cluster di Managed Service per Apache Kafka di destinazione. Dataflow consente di unire più flussi di dati con una logica avanzata di finestre e allineamento, essenziali per l'aggregazione e la correlazione di dati complessi. Questa funzionalità distingue Dataflow da Kafka Connect, che è limitato a modifiche di base per messaggio.

Utilizzare Dataproc per le pipeline Spark

Questo servizio completamente gestito per i carichi di lavoro Apache Spark e Hadoop è ideale se hai pipeline Spark esistenti. Gli utenti di Apache Spark possono connettere le implementazioni Spark esistenti a Managed Service per Apache Kafka utilizzando Dataproc. Dataproc è il servizio completamente gestito di Google Cloud per le pipeline Spark e include strumenti per la gestione del ciclo di vita dei cluster. Ad esempio, se hai un'applicazione Spark che elabora i dati di streaming da Kafka e vuoi eseguire la migrazione di questa applicazione a Google Cloud, Dataproc è una scelta adatta.

Per Spark Streaming e Kafka, Apache Spark fornisce una guida all'integrazione. Per facilitare il deployment dei workflow Kafka comuni, Dataproc fornisce una serie di modelli open source.