Datentransformation zwischen MongoDB Atlas und Google Cloud

Last reviewed 2023-12-13 UTC

Viele Unternehmen verwenden MongoDB als betrieblichen Datenspeicher und möchten den Wert dieser Daten durch komplexe Analysen steigern. Dazu müssen die MongoDB-Daten zusammengefasst und in ein Data Warehouse verschoben werden, in dem Analysen durchgeführt werden können. In dieser Referenzarchitektur wird beschrieben, wie Sie diese Integrationspipeline in Google Cloudkonfigurieren.

In dieser Architektur verwenden Sie Dataflow-Vorlagen, um Daten aus MongoDB Atlas in BigQuery einzubinden. Mit diesen Dataflow-Vorlagen wird das von MongoDB verwendete Dokumentformat in das von BigQuery verwendete Spaltenformat umgewandelt. Für diese Transformation werden Apache Beam-Bibliotheken verwendet. In diesem Dokument wird daher davon ausgegangen, dass Sie mit MongoDB und Dataflow sowie mit Apache Beam vertraut sind.

Architektur

Das folgende Diagramm zeigt die Referenzarchitektur, die Sie beim Bereitstellen dieser Lösung verwenden. In diesem Diagramm wird gezeigt, wie verschiedene Dataflow-Vorlagen Daten aus MongoDB in ein BigQuery-Data Warehouse verschieben und transformieren.

Architektur für die Datentransformation zwischen MongoDB Atlas und Google Cloud

Wie das Diagramm zeigt, basiert diese Architektur auf den folgenden drei Vorlagen:

  • Vorlage „MongoDB für BigQuery“. Diese Dataflow-Vorlage ist eine Batchpipeline, die Dokumente aus MongoDB liest und in BigQuery schreibt, wo sie analysiert werden können. Optional können Sie diese Vorlage erweitern, indem Sie eine benutzerdefinierte Funktion (UDF) in JavaScript schreiben. Eine Beispiel-UDF finden Sie unter Betriebseffizienz.
  • Vorlage „BigQuery für MongoDB“ Diese Dataflow-Vorlage ist eine Batchvorlage, mit der die analysierten Daten aus BigQuery gelesen und in MongoDB geschrieben werden können.
  • Vorlage „MongoDB für BigQuery (CDC)“ Diese Dataflow-Vorlage ist eine Streamingpipeline, die mit MongoDB-Änderungsstreams funktioniert. Sie erstellen eine Publisher-Anwendung, die Änderungen aus dem MongoDB-Änderungsstream an Pub/Sub überträgt. Die Pipeline liest die JSON-Datensätze aus Pub/Sub und schreibt sie in BigQuery. Wie bei der Vorlage „MongoDB für BigQuery“ können Sie diese Vorlage durch das Schreiben einer UDF erweitern.

    Mit der Vorlage „MongoDB für BigQuery (CDC)“ können Sie dafür sorgen, dass alle Änderungen an der MongoDB-Sammlung in Pub/Sub veröffentlicht werden. Folgen Sie der Anleitung unter Änderungsstreams in der MongoDB-Dokumentation, um einen MongoDB-Änderungsstream einzurichten.

Anwendungsfälle

Die Analyse von MongoDB Atlas-Daten mit BigQuery kann in einer Vielzahl von Branchen nützlich sein, darunter Finanzdienstleistungen, Einzelhandel, Fertigung und Logistik sowie Gaming-Anwendungen.

Finanzdienstleister

Google Cloud und MongoDB Atlas bieten Lösungen für die komplexen und sich ständig ändernden Datenanforderungen der heutigen Finanzinstitute. Wenn Sie Ihre Finanzdaten aus MongoDB Atlas mit BigQuery analysieren, können Sie Lösungen für die folgenden Aufgaben entwickeln:

  • Echtzeiterkennung von Betrug Finanzinstitute möchten betrügerische Transaktionen in Echtzeit erkennen und verhindern. Mithilfe von maschinellem Lernen und der Analyse von Kundenverhaltensdaten in BigQuery können Sie Muster erkennen, die auf Betrug hinweisen.
  • Personalisierte Kundenerfahrungen Auch Finanzinstitute sind daran interessiert, personalisierte Kundenerlebnisse zu bieten. Wenn Sie Kundendaten in BigQuery speichern und analysieren, können Sie Lösungen erstellen, mit denen personalisierte Empfehlungen generiert, maßgeschneiderte Produkte und Dienstleistungen angeboten und der Kundensupport verbessert werden.
  • Risikomanagement Finanzinstitute suchen immer nach Prozessen, die bei der Identifizierung und Minimierung von Risiken helfen. Wenn Sie Daten aus verschiedenen Quellen in BigQuery analysieren, können Sie Muster und Trends erkennen, die auf potenzielle Risiken hinweisen.

Einzelhandel

Die intelligente Nutzung von Kundendaten mit der Möglichkeit, sie mit Produktdaten zu kombinieren, und die Durchführung personalisierter Interaktionen in Echtzeit bestimmen die Zukunft des E-Commerce. Um die Anforderungen der Kunden zu erfüllen, müssen Einzelhändler datengestützte Entscheidungen treffen, indem sie Daten erfassen und analysieren. Mit BigQuery und MongoDB Atlas können Sie Kundendaten nutzen, um Innovationen bei der Personalisierung voranzutreiben, z. B. in den folgenden Bereichen:

  • Omni-Channel-Handel Mit MongoDB können Sie Daten aus verschiedenen Quellen speichern und verwalten, darunter Online- und Offlineshops, mobile Apps und soziale Medien. Diese Speicherung und Verwaltung von Daten in Verbindung mit BigQuery-Analysen eignet sich ideal für Omni-Channel-Händler, die ihren Kunden eine nahtlose Nutzung über alle Kanäle hinweg bieten möchten.
  • Informationen in Echtzeit Mit BigQuery erhalten Sie Echtzeitdaten zu Ihren Kunden, Ihrem Inventar und Ihrer Verkaufsleistung. So können Sie bessere Entscheidungen zu Preisen, Werbung und Produktplatzierung treffen.
  • Personalisierte Empfehlungen Mit personalisierten Empfehlungssystemen können Einzelhändler den Umsatz und die Kundenzufriedenheit steigern. Wenn Sie Kundendaten speichern und analysieren, können Sie Muster und Trends erkennen, mit denen Sie Produkte empfehlen können, die für jeden einzelnen Kunden wahrscheinlich von Interesse sind.

Fertigung und Logistik

Die Analyse von MongoDB-Daten in BigQuery bietet der Fertigungs- und Logistikbranche außerdem folgende Vorteile:

  • Echtzeit-Sichtbarkeit Sie erhalten einen Echtzeit-Überblick über Ihre Abläufe. So können Sie fundierte Entscheidungen zu Produktion, Inventar und Versand treffen.
  • Optimierung der Lieferkette Wenn Sie die Unsicherheiten in der Lieferkette verwalten und Daten aus verschiedenen Quellen analysieren, können Sie Kosten senken und die Effizienz steigern.

Gaming

Analysen in BigQuery ermöglichen es Spieleentwicklern und -Publishern außerdem, innovative Spiele zu entwickeln und ein unvergleichliches Spielerlebnis zu bieten. Dazu gehören:

  • Echtzeit-Gameplay Sie können Ihre Analysen nutzen, um Spieleerlebnisse in Echtzeit zu kreieren und Bestenlisten, Partnerzuordnungssysteme und Multiplayer-Funktionen zu erstellen.
  • Personalisierte Wiedergabe Mithilfe von künstlicher Intelligenz (KI) und ML können Sie gezielte Empfehlungen geben und das Spielerlebnis für Spieler personalisieren.
  • Spielanalyse Sie können Spieldaten analysieren, um Trends und Muster zu identifizieren, mit denen Sie das Spieldesign, das Gameplay und Ihre Geschäftsentscheidungen verbessern können.

Designalternativen

Sie haben zwei Alternativen zur Verwendung von Dataflow-Vorlagen als Integrationspipeline von MongoDB nach BigQuery: Pub/Sub mit einem BigQuery-Abo oder Confluent Cloud.

Pub/Sub mit einem BigQuery-Abo

Als Alternative zu Dataflow-Vorlagen können Sie Pub/Sub verwenden, um eine Integrationspipeline zwischen Ihrem MongoDB-Cluster und BigQuery einzurichten. So verwenden Sie Pub/Sub anstelle von Dataflow:

  1. Konfigurieren Sie ein Pub/Sub-Schema und ein Pub/Sub-Thema, um die Nachrichten aus Ihrem MongoDB-Änderungsstream zu verarbeiten.
  2. Erstellen Sie ein BigQuery-Abo in Pub/Sub, das Nachrichten beim Empfang in eine vorhandene BigQuery-Tabelle schreibt. Wenn Sie kein BigQuery-Abo verwenden, benötigen Sie ein Pull- oder Push-Abo und einen Abonnenten (z. B. Dataflow), der Nachrichten liest und in BigQuery schreibt.

  3. Richten Sie einen Änderungsstream ein, der auf neue Dokumente achtet, die in MongoDB eingefügt werden, und mit dem Schema übereinstimmt, das für Pub/Sub verwendet wird.

Weitere Informationen zu dieser Alternative finden Sie unter Datenpipeline für MongoDB-Änderungsstream mit Pub/Sub-BigQuery-Abo erstellen.

Confluent Cloud

Wenn du keine eigene Publisher-Anwendung zum Überwachen des MongoDB-Änderungsstreams erstellen möchtest, kannst du stattdessen Confluent Cloud verwenden. Bei diesem Ansatz konfigurieren Sie mit Confluent einen MongoDB Atlas-Quell-Connector zum Lesen des MongoDB-Datenstreams. Anschließend konfigurieren Sie einen BigQuery-Senken-Connector, um die Daten aus dem Confluent-Cluster per Senke nach BigQuery zu übertragen.

Weitere Informationen zu dieser Alternative finden Sie unter Daten mithilfe von Confluent-Connectors von MongoDB nach BigQuery streamen.

Designaspekte

Wenn Sie eine Lösung von MongoDB Atlas zu BigQuery erstellen, sollten Sie die folgenden Bereiche berücksichtigen.

Sicherheit, Datenschutz und Compliance

Wenn Sie die Integrationspipeline ausführen, verwendet Dataflow die folgenden beiden Dienstkonten zum Verwalten von Sicherheit und Berechtigungen:

  • Das Dataflow-Dienstkonto. Der Dataflow-Dienst verwendet das Dataflow-Dienstkonto als Teil der Auftragserstellungsanforderung, z. B. zum Prüfen des Projektkontingents und zum Erstellen von Worker-Instanzen in Ihrem Namen. Der Dataflow-Dienst verwendet dieses Konto auch, um den Job während der Ausführung zu verwalten. Dieses Konto wird auch als Dataflow-Dienst-Agent bezeichnet.
  • Das Worker-Dienstkonto. Worker-Instanzen verwenden das Worker-Dienstkonto, um nach dem Senden des Jobs auf Eingabe- und Ausgaberessourcen zuzugreifen. Worker verwenden standardmäßig das Compute Engine-Standarddienstkonto Ihres Projekts als Worker-Dienstkonto. Das Worker-Dienstkonto muss roles/dataflow.worker haben.

Außerdem müssen Ihre Dataflow-Pipelines aufGoogle Cloud -Ressourcen zugreifen können. Um diesen Zugriff zu ermöglichen, müssen Sie dem Worker-Dienstkonto für Ihr Dataflow-Projekt die erforderlichen Rollen zuweisen, damit das Projekt während der Ausführung des Dataflow-Jobs auf die Ressourcen zugreifen kann. Wenn Ihr Job beispielsweise in BigQuery schreibt, muss Ihr Dienstkonto mindestens die Rolle roles/bigquery.dataEditor für die Tabelle oder andere zu aktualisierende Ressourcen haben.

Kostenoptimierung

Die Kosten für die Ausführung der Dataflow-Vorlagen hängen von den geplanten Worker-Knoten und der Art der Pipeline ab. Informationen zu den Kosten finden Sie unter Dataflow-Preise.

Mit jeder Dataflow-Vorlage können Daten zwischen einer MongoDB-Sammlung und einer BigQuery-Tabelle verschoben werden. Wenn die Anzahl der Sammlungen zunimmt, können sich daher auch die Kosten für die Verwendung von Dataflow-Vorlagen erhöhen.

Operative Effizienz

Damit Sie Ihre MongoDB-Daten effizient nutzen und analysieren können, müssen Sie diese möglicherweise benutzerdefiniert transformieren. Beispielsweise müssen Sie Ihre MongoDB-Daten möglicherweise so neu formatieren, dass sie einem Zielschema entsprechen, oder sensible Daten entfernen oder einige Elemente aus der Ausgabe herausfiltern. Wenn Sie eine solche Transformation ausführen möchten, können Sie mit einer UDF die Funktionalität der MongoDB-zu-BigQuery-Vorlage erweitern, ohne den Vorlagencode ändern zu müssen.

Eine UDF ist eine JavaScript-Funktion. Die UDF sollte einen JSON-String empfangen und zurückgeben. Der folgende Code zeigt eine Beispielumwandlung:

/**
* A simple transform function.
* @param {string} inJson
* @return {string} outJson
*/
function transform(inJson) {
   var outJson = JSON.parse(inJson);
   outJson.key = "value";
   return JSON.stringify(outJson);
}

Weitere Informationen zum Erstellen einer benutzerdefinierten Funktion finden Sie unter Benutzerdefinierte Funktionen für Dataflow-Vorlagen erstellen.

Nachdem Sie die UDF erstellt haben, müssen Sie die Vorlage „MongoDB für BigQuery“ so erweitern, dass diese UDF verwendet wird. Gehen Sie dazu so vor:

  • Laden Sie zuerst die JavaScript-Datei mit der UDF in Google Cloud Storage hoch.
  • Wenn Sie dann den Dataflow-Job aus der Vorlage erstellen, müssen Sie die folgenden Vorlagenparameter festlegen:
    • Legen Sie für den Parameter javascriptDocumentTransformGcsPath den Cloud Storage-Speicherort der JavaScript-Datei fest.
    • Legen Sie den Parameter javascriptDocumentTransformFunctionName auf den Namen der UDF fest.

Weitere Informationen zum Erweitern der Vorlage mit einer UDF finden Sie unter Vorlage „MongoDB für BigQuery“.

Leistungsoptimierung

Die Leistung der MongoDB-zu-BigQuery-Transformation hängt von den folgenden Faktoren ab:

  • Die Größe des MongoDB-Dokuments.
  • Die Anzahl der MongoDB-Sammlungen.
  • Ob die Transformation auf einem festen oder einem variablen Schema basiert.
  • Das Wissen des Implementierungsteams über Schematransformationen mit JavaScript-basierten UDFs.

Bereitstellung

Informationen zum Bereitstellen dieser Referenzarchitektur finden Sie unter Datentransformation zwischen MongoDB und Google Cloud.

Nächste Schritte

  • Informationen zum Anpassen von Google Dataflow-Vorlagen finden Sie in den Vorlagen auf GitHub.
  • Weitere Informationen zu MongoDB Atlas- und Google Cloud Lösungen finden Sie unter Cloud Skill Boost.
  • Weitere Informationen zu den in dieser Referenzarchitektur verwendeten Google Cloud- Produkten:
  • Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.

Beitragende

Autoren:

Weitere Beitragende: