Dieses Dokument bietet Entwicklern, Architekten und Entscheidungsträgern Optionen für die Migration externer Kafka-Daten zu Google Cloud, die Notfallwiederherstellung, die Integration mit BigQuery und die Erfassung von Änderungsdaten (Change Data Capture, CDC) aus Datenbanken.
Innerhalb von Google Cloudkönnen Sie Kafka-Daten in einen Google Cloud Managed Service for Apache Kafka-Cluster oder in ein anderes Google-Produkt wie eine BigQuery-Tabelle oder einen Cloud Storage-Speicherort verschieben. Eine Zusammenfassung finden Sie in der folgenden Tabelle.
| Anwendungsfall | Datenquelle | Datenziel | Empfohlene Lösung |
|---|---|---|---|
| Daten kopieren | Selbstverwalteter Apache Kafka-Cluster | Managed Service for Apache Kafka-Cluster | Erstellen Sie einen MirrorMaker 2.0-Quellconnector in einem Connect-Cluster. |
| Daten in einem Data Warehouse analysieren | Managed Service for Apache Kafka-Cluster | BigQuery | Erstellen Sie einen BigQuery-Senken-Connector in einem Connect-Cluster. |
| Daten mit Synchronisierung migrieren | Selbstverwalteter Kafka-Cluster | Managed Service for Apache Kafka-Cluster | Erstellen Sie einen MirrorMaker 2.0-Quellconnector in einem Connect-Cluster. |
| Cluster regionsübergreifend replizieren | Managed Service for Apache Kafka (Region A) | Managed Service for Apache Kafka-Cluster (Region B) | Erstellen Sie einen MirrorMaker 2.0-Quellconnector in einem Connect-Cluster. |
| Daten sichern | Managed Service für Apache Kafka | Cloud Storage | Erstellen Sie einen Cloud Storage-Senken-Connector in einem Connect-Cluster. |
| Datenbankänderungen erfassen | Relationale Datenbank, Spanner oder Bigtable | Managed Service für Apache Kafka | Apache Beam-Pipeline in Dataflow ausführen |
| Daten mit Apache Spark verarbeiten | Managed Service für Apache Kafka | Apache Spark | Dataproc in Compute Engine ausführen |
Empfohlene Lösungen zum Migrieren Ihrer Kafka-Daten
Google Cloud bietet mehrere Lösungen zum Einbinden Ihrer Kafka-Daten. Jedes Angebot hat je nach Ihren Anforderungen und Ihrer vorhandenen Infrastruktur einzigartige Vorteile. Die beste Integrationsmethode für Sie hängt von Ihren vorhandenen Systemen, Ihren aktuellen Fähigkeiten und Ihrer Kapazität für die Verwaltung der Infrastruktur ab.
Kafka Connect verwenden
Mit Google Cloud Managed Service for Apache Kafka können Sie Cluster bereitstellen, auf denen Kafka Connect ausgeführt wird. Das primäre Ziel von Kafka Connect ist es, Ihren Managed Service for Apache Kafka-Cluster für Anwendungsfälle wie Migration, Sicherung, Notfallwiederherstellung, Hochverfügbarkeit und Datenintegration mit anderen Systemen zu verbinden. Für die meisten Aufgaben zur Datenintegration für Managed Service for Apache Kafka empfehlen wir Kafka Connect. Kafka Connect bietet mehrere Vorteile:
Verbinden Sie Ihre externen Kafka-Cluster mit verschiedenen Google Cloud Datenquellen und ‑senken über integrierte Connectors. Externe Kafka-Cluster umfassen Managed Service for Apache Kafka, lokale Kafka-Cluster und benutzerdefinierte Cloud-Bereitstellungen. Zu den unterstützten Connectors gehören:
MirrorMaker 2.0-Connectors
BigQuery-Senke
Cloud Storage-Senke
Pub/Sub-Quelle
Pub/Sub-Senke
Profitieren Sie von der Skalierbarkeit und Zuverlässigkeit der Infrastruktur von Google Cloud, die dafür sorgt, dass Ihre Datenpipelines wachsende Datenmengen verarbeiten und eine hohe Verfügbarkeit aufrechterhalten können.
Lagern Sie den Betriebsaufwand für die Verwaltung der Kafka Connect-Infrastruktur anGoogle Cloudaus.
Sie können Ihre Kafka Connect-Cluster mit den Monitoring- und Logging-Tools von Google Cloudüberwachen und verwalten.
Weitere Informationen zu Kafka Connect finden Sie in der Kafka Connect-Übersicht.
Dataflow verwenden
Der serverlose Datenverarbeitungsdienst vonGoogle Cloudbietet serverlose Stream- und Batchdatenintegration. Mit Dataflow können Sie Kafka-Daten in verschiedene Senken wie BigQuery-Datasets oder Cloud Storage-Buckets verschieben. Sie können Dataflow-Pipelines bereitstellen, indem Sie eine Dataflow-Vorlage oder eine Apache Beam-Pipeline bereitstellen. Wählen Sie Ihre Dataflow-Bereitstellung anhand der folgenden Faktoren aus:
Für einfachere und schnellere Bereitstellungen, insbesondere für gängige Datenintegrationsaufgaben, können Sie vorgefertigte Dataflow-Vorlagen verwenden, die direkt über die Console bereitgestellt werden können.
Wenn Sie maximale Flexibilität und Kontrolle benötigen und komplexe Anwendungsfälle mit benutzerdefinierter Logik abdecken möchten, sollten Sie eine Apache Beam-Pipeline verwenden.
Integrierte Vorlagen
Integrierte Dataflow-Vorlagen sind vordefinierte Apache Beam-Pipelines, die Sie in einem benutzerfreundlichen Jobassistenten ohne Code bereitstellen können. Dataflow bietet mehrere Dataflow-Vorlagen zum Exportieren von Kafka-Daten nach Google Cloud.
Benutzerdefinierte Apache Beam-Pipelines
Die im vorherigen Abschnitt beschriebenen Dataflow-Vorlagen erfüllen möglicherweise nicht alle Ihre Anforderungen. Möglicherweise müssen Sie Ihre Kafka-Daten in eine Quelle oder Senke einbinden, die von diesen Vorlagen nicht unterstützt wird. Möglicherweise müssen Sie auch Transformationen, Normalisierungen oder Mutationen für Datensätze durchführen.
In diesen Fällen können Sie das Apache Beam SDK verwenden, um Pipelines zu erstellen, die in Dataflow ausgeführt werden können.
Informationen zum Apache Beam-Programmiermodell, einschließlich wichtiger Konzepte wie Pipelines, PCollections, Transformationen und Runner, finden Sie unter Programmiermodell für Apache Beam.
Ressourcen für den Einstieg in die Apache Beam-Programmierung, einschließlich Installationsanleitungen für das SDK, Programmierhandbücher und interaktive Umgebungen, finden Sie unter Apache Beam zum Erstellen von Pipelines verwenden. Das Dokument enthält auch Links zum Entwerfen, Erstellen und Testen Ihrer Pipeline sowie Beispiel-Streamingpipelines.
Wenn Sie Change Streams (Change Data Capture) in Kafka schreiben müssen, empfehlen wir, die folgenden Komponenten als Teil Ihrer Dataflow-Pipeline zu verwenden:
DebeziumIO für relationale Datenbanken wie Cloud SQL, MySQL, Postgres und SQL Server.
Spanner-Änderungsstreams für Spanner
Bigtable-Änderungsstreams für Bigtable
Dataflow bietet mehrere Ressourcen für die Verwendung von Kafka mit Ihrer Dataflow-Pipeline:
Zwischen Kafka Connect und Dataflow wählen
Beim Übertragen von Daten zwischen Kafka-Clustern, insbesondere zu Managed Service for Apache Kafka, ist Kafka Connect in der Regel die bevorzugte Lösung. MirrorMaker 2.0, ein Teil von Kafka Connect, eignet sich gut für Aufgaben wie Clustermigration, Sicherung, Notfallwiederherstellung oder grundlegende Transformationen. Kafka Connect unterstützt die Transformation von Datensätzen für grundlegende Änderungen pro Nachricht.
Für die Migration großer Datenmengen, die komplexe Transformationen erfordert, ist Dataflow die bessere Wahl. Die Stärke von Dataflow liegt in der Fähigkeit, komplexe, streamorientierte Vorgänge auszuführen, einschließlich Datenbereinigung, -anreicherung und -aggregation, bevor die Daten den Zielcluster des Managed Service for Apache Kafka erreichen. Mit Dataflow können Sie mehrere Datenstreams mit erweiterter Fensterungs- und Ausrichtungslogik zusammenführen. Das ist für die komplexe Datenkorrelation und -aggregation unerlässlich. Diese Funktion unterscheidet Dataflow von Kafka Connect, das auf grundlegende Änderungen pro Nachricht beschränkt ist.
Dataproc für Spark-Pipelines verwenden
Dieser vollständig verwaltete Dienst für Apache Spark- und Hadoop-Arbeitslasten eignet sich gut, wenn Sie bereits Spark-Pipelines haben. Apache Spark-Nutzer können vorhandene Spark-Bereitstellungen über Dataproc mit Managed Service for Apache Kafka verbinden. Dataproc ist der vollständig verwaltete Dienst von Google Cloud für Spark-Pipelines und umfasst Tools für die Verwaltung des Clusterlebenszyklus. Wenn Sie beispielsweise eine Spark-Anwendung haben, die Streamingdaten aus Kafka verarbeitet, und Sie diese Anwendung zu Google Cloudmigrieren möchten, ist Dataproc eine gute Wahl.
Für Spark Streaming und Kafka bietet Apache Spark eine Integrationsanleitung. Um die Bereitstellung gängiger Kafka-Workflows zu erleichtern, bietet Dataproc eine Reihe von Open-Source-Vorlagen.