In diesem Dokument finden Entwickler, Architekten und Entscheidungsträger Informationen zu Optionen für die Migration externer Kafka-Daten zu Google Cloud, zur Notfallwiederherstellung, zur Integration mit BigQuery und zur Change Data Capture (CDC) aus Datenbanken.
Sie können 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. Google CloudEine 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-Quell-Connector 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-Quell-Connector 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-Quell-Connector in einem Connect-Cluster. |
| Daten sichern | Managed Service for 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 for Apache Kafka | Führen Sie eine Apache Beam-Pipeline in Dataflow aus. |
| Daten mit Apache Spark verarbeiten | Managed Service for Apache Kafka | Apache Spark | Führen Sie Managed Service for Apache Spark in Compute Engine aus. |
Empfohlene Lösungen zum Verschieben Ihrer Kafka-Daten
Google Cloud bietet mehrere Lösungen für die Integration 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 Kenntnissen und Ihrer Kapazität zur 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 Hauptziel von Kafka Connect ist es, Ihren Managed Service for Apache Kafka-Cluster mit anderen Systemen für Anwendungsfälle wie Migration, Backup, Notfallwiederherstellung, Hochverfügbarkeit und Datenintegration zu verbinden. Wir empfehlen Kafka Connect für die häufigsten Datenintegrationsaufgaben für Managed Service for Apache Kafka. Kafka Connect bietet mehrere Vorteile:
Verbinden Sie Ihre externen Kafka-Cluster mit verschiedenen Google Cloud Datenquellen und -senken über integrierte Connectors. Zu den externen Kafka-Clustern gehören Managed Service for Apache Kafka, lokale Kafka-Cluster und benutzerdefinierte Cloud-Bereitstellungen. Die folgenden Connectors werden unterstützt:
MirrorMaker 2.0-Connectors
BigQuery-Senke
Cloud Storage-Senke
Pub/Sub-Quelle
Pub/Sub-Senke
Profitieren Sie von der Skalierbarkeit und Zuverlässigkeit der Google CloudInfrastruktur von , die dafür sorgt, dass Ihre Datenpipelines wachsende Daten mengen verarbeiten und eine hohe Verfügbarkeit aufrechterhalten können.
Lagern Sie den Betriebsaufwand für die Verwaltung der Kafka Connect-Infrastruktur an Google Cloudaus.
Sie können Ihre Kafka Connect-Cluster mit den Google Cloud's Monitoring- und Logging-Tools von überwachen und verwalten.
Weitere Informationen zu Kafka Connect finden Sie in der Übersicht zu Kafka Connect.
Dataflow verwenden
Google CloudDer serverlose Datenverarbeitungsdienst von bietet serverlose Stream- und Batch-Datenintegration. Mit Dataflow können Sie Kafka-Daten in verschiedene Senken wie BigQuery-Datasets oder Cloud Storage-Buckets verschieben. Sie können Dataflow-Pipelines mit einer Dataflow-Vorlage oder durch Bereitstellen einer Apache Beam-Pipeline bereitstellen. Wählen Sie Ihre Dataflow-Bereitstellung anhand der folgenden Faktoren aus:
Für einfachere und schnellere Bereitstellungen, insbesondere für häufige Datenintegrationsaufgaben, wählen Sie vorgefertigte Dataflow-Vorlagen aus, die direkt über die Console bereitgestellt werden können.
Für maximale Flexibilität, Kontrolle und komplexe Anwendungsfälle, die benutzerdefinierte Logik erfordern, wählen Sie eine Apache Beam-Pipeline aus.
Integrierte Vorlagen
Integrierte Dataflow-Vorlagen sind vordefinierte Apache Beam-Pipelines, die Sie in einem codefreien, benutzerfreundlichen Jobassistenten 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 beispielsweise in eine Quelle oder Senke einbinden, die von diesen Vorlagen nicht unterstützt wird. Möglicherweise müssen Sie auch Transformationen, Normalisierungen oder Mutationen an Datensätzen vornehmen.
In diesen Szenarien 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 die ersten Schritte mit der Apache Beam-Programmierung, einschließlich der Installation des SDK, Programmierleitfäden und interaktiver Umgebungen, finden Sie unter Pipelines mit Apache Beam erstellen. Das Dokument enthält auch Links zum Entwerfen, Erstellen und Testen Ihrer Pipeline sowie Beispiel-Streamingpipelines.
Wenn Sie Änderungsstreams (Change Data Capture) in Kafka schreiben müssen, empfehlen wir die Verwendung der folgenden Komponenten als Teil Ihrer Dataflow-Pipeline:
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 erste Wahl. MirrorMaker 2.0, ein Teil von Kafka Connect, eignet sich gut für Aufgaben wie Clustermigration, Backup, Notfallwiederherstellung oder grundlegende Transformationen. Kafka Connect unterstützt Transformationen für einzelne Datensätze 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 Möglichkeit, komplexe, streambasierte Vorgänge auszuführen, einschließlich Datenbereinigung, -anreicherung und -aggregation, bevor die Daten den Ziel-Managed Service for Apache Kafka-Cluster erreichen. Mit Dataflow können Sie mehrere Datenstreams mit erweiterter Fenster- und Ausrichtungslogik verknüpfen, die für komplexe Datenkorrelation und -aggregation unerlässlich sind. Diese Funktion unterscheidet Dataflow von Kafka Connect, das auf grundlegende Änderungen pro Nachricht beschränkt ist.
Managed Service for Apache Spark 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 mit Managed Service for Apache Kafka verbinden, indem sie Managed Service for Apache Spark verwenden. Managed Service for Apache Spark ist der vollständig verwaltete Dienst von Google Cloud für Spark-Pipelines und umfasst Tools für das Cluster-Lifecycle-Management. Wenn Sie beispielsweise eine Spark-Anwendung haben, die Streamingdaten aus Kafka verarbeitet, und Sie diese Anwendung zu Google Cloud, Managed Service for Apache Spark migrieren möchten, ist dies eine geeignete Wahl.
Für Spark Streaming und Kafka bietet Apache Spark einen Integrationsleitfaden. Um die Bereitstellung häufiger Kafka-Workflows zu erleichtern, bietet Managed Service for Apache Spark eine Reihe von Open-Source-Vorlagen.