Datentransformation zwischen MongoDB Atlas und Google Cloud

Last reviewed 2023-12-13 UTC

Viele Unternehmen verwenden MongoDB als operativen Datenspeicher und möchten den Wert dieser Daten durch komplexe Analysen darin anreichern. 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 transformieren das von MongoDB verwendete Dokumentformat in das Spaltenformat, das von BigQuery verwendet wird. Diese Vorlagen nutzen Apache Beam-Bibliotheken, um diese Transformation durchzuführen. Daher wird davon ausgegangen, dass Sie mit MongoDB vertraut sind 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 umwandeln.

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 diese Daten analysiert werden können. Wenn Sie möchten, können Sie diese Vorlage erweitern, indem Sie eine benutzerdefinierte Funktion (UDF) in JavaScript schreiben. Eine Beispiel-UDF finden Sie unter Betriebliche Effizienz.
  • 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 in Pub/Sub überträgt. Die Pipeline liest die JSON-Datensätze aus Pub/Sub und schreibt sie in BigQuery. Wie die Vorlage "MongoDB für BigQuery" können Sie diese Vorlage durch Schreiben einer UDF erweitern.

    Mit der Vorlage "MongoDB für BigQuery (CDC)" können Sie dafür sorgen, dass alle Änderungen in 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 der MongoDB Atlas-Daten kann in einer Reihe von Branchen nützlich sein, darunter Finanzdienstleistungen, Einzelhandel, Fertigung und Logistik sowie Spieleanwendungen.

Finanzdienstleistungen

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

  • Echtzeit-Erkennung von Betrug. Finanzinstitute möchten in Echtzeit betrügerische Transaktionen erkennen und verhindern. Mit maschinellem Lernen (ML) und der Analyse des Kundenverhaltens in BigQuery können Sie Muster erkennen, die auf Betrug hindeuten.
  • Personalisierte Kundenerlebnisse. Finanzinstitute sind auch daran interessiert, personalisierte Kundenerlebnisse zu bieten. Durch das Speichern und Analysieren von Kundendaten in BigQuery können Sie Lösungen erstellen, die personalisierte Empfehlungen generieren, maßgeschneiderte Produkte und Dienste anbieten und einen besseren Kundensupport bieten.
  • Risikomanagement Finanzinstitute wünschen sich immer Prozesse, mit denen Risiken identifiziert und minimiert werden können. Durch die Analyse von Daten aus verschiedenen Quellen in BigQuery können Sie Muster und Trends ermitteln, die auf potenzielle Risiken hinweisen.

Einzelhandel

Durch die intelligente Nutzung von Kundendaten und der Kombination mit Produktdaten und der Ausführung von Echtzeit-personalisierten Interaktionen definieren Sie den zukünftigen E-Commerce. Um Kundenanforderungen zu erfüllen, müssen Einzelhändler datengestützte Entscheidungen treffen, indem sie Daten erheben und analysieren. Mit BigQuery und MongoDB Atlas können Sie Kundendaten verwenden, um Innovationen in der Personalisierung zu fördern, z. B. in den folgenden Bereichen:

  • Omni-Channel-Handel Verwenden Sie MongoDB, um Daten aus einer Vielzahl von Quellen zu speichern und zu verwalten, einschließlich Online- und Offlinespeichern, mobilen Apps und sozialen Medien. Diese Speicherung und Verwaltung von Daten, die mit BigQuery-Analysen verknüpft sind, eignet sich ideal für Omni-Channel-Einzelhandel, die ihren Kunden einen nahtlosen Zugriff auf allen Kanälen bieten müssen.
  • Informationen in Echtzeit Mit BigQuery erhalten Sie Echtzeitinformationen zu Ihren Kunden, Ihrem Inventar und Ihrer Verkaufsleistung. Diese Informationen helfen Ihnen dabei, bessere Entscheidungen in Bezug auf Preise, Werbeaktionen und Produktplatzierungen zu treffen.
  • Personalisierte Empfehlungen Mit personalisierten Empfehlungssystemen können Einzelhändler ihren Umsatz steigern und die Kundenzufriedenheit steigern. Durch das Speichern und Analysieren von Kundendaten können Sie Muster und Trends identifizieren, mit denen Produkte empfohlen werden können, die wahrscheinlich für jeden einzelnen Kunden von Interesse sind.

Fertigung und Logistik

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

  • Echtzeit-Sichtbarkeit So erhalten Sie in Echtzeit Einblick in Ihre Vorgänge. So können Sie bessere Entscheidungen zu Produktion, Inventar und Versand treffen.
  • Optimierung der Lieferkette Die Verwaltung von Unsicherheiten in der Lieferkette und die Analyse von Daten aus verschiedenen Quellen können dazu beitragen, Kosten zu senken und die Effizienz zu verbessern.

Gaming

Mit der Analyse in BigQuery können Spieleentwickler und Publisher außerdem hochmoderne Spiele entwickeln und ein unübertroffenes Spielerlebnis bieten, darunter:

  • Echtzeitspiele. Sie können Ihre Analysen nutzen, um Spieleerlebnisse in Echtzeit zu kreieren und Bestenlisten, Partnerzuordnungssysteme und Multiplayer-Funktionen zu erstellen.
  • Personalisierte Spielerumgebungen: Sie können künstliche Intelligenz (KI) und maschinelles Lernen 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 erkennen, mit denen Sie das Design, die Spielweise und Ihre Geschäftsentscheidungen verbessern können.

Designalternativen

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

Pub/Sub mit einem BigQuery-Abo

Alternativ zur Verwendung von 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 Thema, um die Nachrichten aus Ihrem MongoDB-Änderungsstream aufzunehmen.
  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 sowie einen Abonnenten (z. B. Dataflow), der Nachrichten liest und in BigQuery schreibt.

  3. Richten Sie einen Änderungsstream ein, der neue in Ihr MongoDB eingefügte Dokumente überwacht und dem für Pub/Sub verwendeten Schema entspricht.

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 zum Überwachen des MongoDB-Änderungsstreams erstellen möchten, können Sie stattdessen Confluent Cloud verwenden. Bei diesem Ansatz verwenden Sie Confluent, um einen MongoDB Atlas-Quell-Connector zum Lesen des MongoDB-Datenstreams zu konfigurieren. 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 mit Confluent Connectors von MongoDB zu BigQuery streamen.

Designaspekte

Beim Erstellen einer Lösung von MongoDB Atlas zu BigQuery sollten Sie die folgenden Bereiche berücksichtigen.

Sicherheit, Datenschutz und Compliance

Wenn Sie Ihre Integrationspipeline ausführen, verwendet Dataflow die folgenden beiden Dienstkonten zur Verwaltung 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 Jobausfü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.

Darüber hinaus müssen Ihre Dataflow-Pipelines auf Google Cloud-Ressourcen zugreifen können. Um diesen Zugriff zu gewähren, 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 eine andere Ressource haben, die aktualisiert werden soll.

Kostenoptimierung

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

Jede Dataflow-Vorlage kann die Daten zwischen einer MongoDB-Sammlung in eine BigQuery-Tabelle verschieben. Wenn die Anzahl der Sammlungen zunimmt, können sich also auch die Kosten für die Verwendung von Dataflow-Vorlagen erhöhen.

Operative Effizienz

Für eine effiziente Verwendung und Analyse Ihrer MongoDB-Daten müssen Sie diese Daten möglicherweise anpassen. Vielleicht müssen Sie Ihre MongoDB-Daten beispielsweise neu formatieren, damit sie mit einem Zielschema übereinstimmen, oder sensible Daten entfernen oder einige Elemente aus der Ausgabe filtern. Wenn Sie eine solche Umwandlung durchführen müssen, können Sie eine UDF verwenden, um die Funktionalität der Vorlage "MongoDB" zu BigQuery zu 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 Ihre UDF erstellt haben, müssen Sie die folgenden Schritte ausführen, um die Vorlage „MongoDB auf BigQuery“ auf diese UDF zu erweitern:

  • Zuerst müssen Sie die JavaScript-Datei, die die UDF enthält, 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 für den Parameter javascriptDocumentTransformFunctionName 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 Schema oder einem unterschiedlichen Schema basiert
  • Kenntnisse über Schematransformationen, die JavaScript-basierte UDFs verwenden.

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.
  • Mehr über die in dieser Referenzarchitektur verwendeten Google Cloud-Produkte erfahren:
  • Weitere Referenzarchitekturen, Diagramme und Best Practices finden Sie im Cloud-Architekturcenter.

Beitragende

Autoren:

Weitere Beitragende: