Questo documento fornisce indicazioni a sviluppatori, architetti e responsabili delle decisioni sulle opzioni per la migrazione dei dati Kafka esterni Google Cloud, il ripristino di emergenza (RE), l'integrazione con BigQuery e Change Data Capture (CDC) dai database.
All'interno Google Cloud, puoi spostare i dati Kafka in un cluster Google Cloud Managed Service per Apache Kafka o in un altro prodotto Google, ad esempio una tabella BigQuery o una località 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 Connect. |
| Analizza i dati in un data warehouse | Cluster Managed Service per Apache Kafka | BigQuery | Crea un connettore di sink BigQuery in un cluster Connect. |
| Migra i dati con la sincronizzazione | Cluster Kafka autogestito | Cluster Managed Service per Apache Kafka | Crea un connettore di origine MirrorMaker 2.0 in un cluster Connect. |
| Replica il cluster tra le 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 Connect. |
| Esegui il backup dei dati | Managed Service per Apache Kafka | Cloud Storage | Crea un connettore di sink Cloud Storage in un cluster Connect. |
| Acquisisci le modifiche del database | Database relazionale, Spanner o Bigtable | Managed Service per Apache Kafka | Esegui una pipeline Apache Beam su Dataflow. |
| Elabora i dati con Apache Spark | Managed Service per Apache Kafka | Apache Spark | Esegui Managed Service per Apache Spark su Compute Engine. |
Soluzioni consigliate per spostare i dati Kafka
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 affidabilità e integrazione dei dati. Ti consigliamo di utilizzare Kafka Connect per le attività di integrazione dei dati più comuni per Managed Service per Apache Kafka. Kafka Connect offre diversi vantaggi:
Collega i 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's che garantisce che le pipeline di dati possano gestire volumi di dati in crescita e mantenere un'alta affidabilità.
Delega a Google Cloudil carico operativo della gestione dell'infrastruttura Kafka Connect.
Monitora e gestisci i cluster Kafka Connect utilizzando gli strumenti di monitoraggio e logging di Google Cloud's.
Per saperne di più su Kafka Connect, consulta la panoramica di Kafka Connect.
Utilizza Dataflow
Google CloudIl servizio di elaborazione dei dati serverless di offre l'integrazione dei dati in modalità flusso e batch serverless. Puoi utilizzare Dataflow per spostare i dati Kafka in diversi sink, come set di dati BigQuery o bucket Cloud Storage. Puoi eseguire il deployment delle pipeline Dataflow utilizzando un modello Dataflow o una pipeline Apache Beam. Scegli il deployment di Dataflow in base ai seguenti fattori:
Per deployment più semplici e veloci, soprattutto per le attività di integrazione dei dati comuni, scegli i modelli Dataflow predefiniti di cui puoi eseguire il deployment direttamente dalla console.
Per la massima flessibilità, il 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 di cui puoi eseguire il deployment in una procedura guidata per i job senza codice, di facile utilizzo. Dataflow fornisce diversi modelli Dataflow per l'esportazione dei 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 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 i concetti chiave come pipeline, PCollection, trasformazioni ed esecutori, consulta Modello di programmazione per Apache Beam.
Per le risorse su come iniziare a programmare con Apache Beam, inclusa l'installazione dell'SDK, le guide alla programmazione e gli ambienti interattivi, consulta Utilizzare Apache Beam per creare pipeline. Il documento fornisce anche link per progettare, creare e testare la pipeline, oltre a pipeline in modalità flusso di esempio.
Se devi scrivere modifiche in tempo reale (Change Data Capture) in Kafka, ti consigliamo di utilizzare i seguenti componenti come parte della pipeline Dataflow:
DebeziumIO per database relazionali come Cloud SQL, MySQL, Postgres e SQL Server.
Modifiche in tempo reale di Spanner per Spanner
Modifiche in tempo reale di Bigtable per Bigtable
Dataflow fornisce diverse risorse per l'utilizzo di Kafka con la pipeline Dataflow:
Scegli tra Kafka Connect e Dataflow
Quando trasferisci dati tra cluster Kafka, soprattutto a Managed Service per Apache Kafka, Kafka Connect è in genere la soluzione di riferimento. MirrorMaker 2.0, parte di Kafka Connect, è adatto per attività come la migrazione dei cluster, il backup, il ripristino di emergenza o le trasformazioni di base. Kafka Connect supporta le trasformazioni record per record per le modifiche di base per messaggio.
Per la migrazione di dati di grandi volumi che richiedono trasformazioni complesse, Dataflow è la scelta più appropriata. Il punto di forza di Dataflow è la sua capacità di eseguire operazioni complesse basate su flussi, tra cui la pulizia dei dati, l'arricchimento e l'aggregazione, prima che i dati raggiungano il cluster Managed Service per Apache Kafka di destinazione. Dataflow consente di unire più flussi di dati con logica avanzata di finestre e allineamento, essenziale per la correlazione e l'aggregazione di dati complessi. Questa funzionalità distingue Dataflow da Kafka Connect, che è limitato alle modifiche di base per messaggio.
Utilizza Managed Service per Apache Spark per le pipeline Spark
Questo servizio completamente gestito per i workload Apache Spark e Hadoop è una buona scelta se hai pipeline Spark esistenti. Gli utenti di Apache Spark possono connettere i deployment Spark esistenti a Managed Service per Apache Kafka utilizzando Managed Service per Apache Spark. Managed Service per Apache Spark è 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 in modalità flusso da Kafka e vuoi migrare questa applicazione a Google Cloud, Managed Service per Apache Spark è una scelta adatta.
Per Spark Streaming e Kafka, Apache Spark fornisce una guida all'integrazione. Per facilitare il deployment dei workflow Kafka comuni, Managed Service per Apache Spark fornisce una serie di modelli open source.