Datentransformation zwischen MongoDB Atlas und Google Cloud

Last reviewed 2023-12-13 UTC

Viele Unternehmen nutzen MongoDB als betrieblichen Datenspeicher und möchten den Wert dieser Daten durch komplexe Analysen steigern. Dazu müssen die MongoDB-Daten aggregiert 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 Cloud konfigurieren können.

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

Architektur

Das folgende Diagramm zeigt die Referenzarchitektur, die Sie beim Bereitstellen dieser Lösung verwenden. Dieses Diagramm zeigt, wie verschiedene Dataflow-Vorlagen Daten von 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. Ein Beispiel für eine 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 vom 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 Verwendung von BigQuery zur Analyse von MongoDB Atlas-Daten kann in verschiedenen Branchen nützlich sein, darunter Finanzdienstleistungen, Einzelhandel, Fertigung und Logistik sowie Spieleanwendungen.

Finanzdienstleistungen

Google Cloud und MongoDB Atlas bieten Lösungen, um die komplexen und sich ständig ändernden Datenanforderungen der heutigen Finanzinstitute zu bewältigen. 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 (ML) 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. Durch die Analyse von Daten aus einer Vielzahl von Quellen in BigQuery 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 Ausführung von personalisierten Echtzeit-Engagements definieren den zukünftigen E-Commerce. Einzelhändler müssen 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 Kombination 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 Echtzeitinformationen zu Ihren Kunden, Ihrem Inventar und Ihrer Verkaufsleistung. So können Sie bessere Entscheidungen zu Preisen, Werbung und Produktplatzierung treffen.
  • Personalisierte Empfehlungen Personalisierte Empfehlungssysteme helfen Einzelhändlern, ihren Umsatz und die Kundenzufriedenheit zu 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 auch die folgenden Vorteile für die Fertigungs- und Logistikbranche:

  • Echtzeit-Sichtbarkeit Sie erhalten Echtzeitdaten zu Ihren Abläufen. 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 Sie können künstliche Intelligenz (KI) und ML verwenden, um gezielte Empfehlungen zu geben und das Spielerlebnis für Spieler zu personalisieren.
  • Spielanalyse Sie können Spieldaten analysieren, um Trends und Muster zu identifizieren, mit denen Sie das Spieledesign, das Gameplay und Ihre Geschäftsentscheidungen verbessern können.

Designalternativen

Sie haben zwei Alternativen zur Verwendung von Dataflow-Vorlagen als Integrationspipeline von MongoDB zu 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 in eine vorhandene BigQuery-Tabelle schreibt, sobald sie empfangen werden. 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 neue in Ihre MongoDB eingefügte Dokumente überwacht und mit dem für Pub/Sub verwendeten Schema übereinstimmt.

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

Confluent Cloud

Wenn Sie keine eigene Publisher-Anwendung erstellen möchten, um den MongoDB-Änderungsstream zu überwachen, können Sie 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

Beim Erstellen einer MongoDB Atlas für BigQuery-Lösung 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 auf Google Cloud-Ressourcen zugreifen können. Wenn Sie diesen Zugriff gewähren möchten, müssen Sie dem Worker-Dienstkonto für Ihr Dataflow-Projekt die erforderlichen Rollen zuweisen, damit das Projekt beim Ausführen 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 Workerknoten 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 also die Anzahl der Sammlungen zunimmt, können auch die Kosten für die Verwendung von Dataflow-Vorlagen steigen.

Operative Effizienz

Damit Sie Ihre MongoDB-Daten effizient verwenden 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 UDF 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“ erweitern, um diese UDF zu verwenden. Gehen Sie dazu so vor:

  • Zuerst müssen Sie die JavaScript-Datei mit der UDF in Google Cloud Storage laden.
  • 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 unterschiedlichen 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 bereitstellen.

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: