Trasformazione dei dati tra MongoDB Atlas e Google Cloud

Last reviewed 2023-12-13 UTC

Molte aziende utilizzano MongoDB come datastore operativo e desiderano arricchisci il valore dei dati eseguendovi analisi complesse. Per farlo, i dati di MongoDB devono essere aggregati e spostati in un data warehouse in cui puoi eseguire analisi. Questa architettura di riferimento descrive come e configurare questa pipeline di integrazione in Google Cloud.

In questa architettura, utilizzerai i modelli Dataflow per integrare i dati da Atlante MongoDB in BigQuery. Questi modelli Dataflow trasformano il formato dei documenti utilizzato MongoDB nel formato a colonne utilizzato da BigQuery. Per eseguire questa trasformazione, questi modelli si basano sulle librerie di Apache Beam. Pertanto, questo documento presuppone che tu abbia familiarità con MongoDB e una certa dimestichezza con Dataflow e Apache Beam.

Architettura

Il seguente diagramma mostra l'architettura di riferimento utilizzata per eseguire il deployment di questa soluzione. Questo diagramma mostra come vari modelli Dataflow spostano e trasformano i dati da MongoDB in un data warehouse BigQuery.

Architettura per la trasformazione dei dati tra MongoDB Atlas e Google Cloud

Come mostrato nel diagramma, questa architettura si basa sui seguenti tre modelli:

  • Modello da MongoDB a BigQuery. Questo modello Dataflow è una pipeline batch che legge documenti da MongoDB e li scrive in BigQuery dove è possibile analizzare i dati. Se vuoi, puoi estendere questo modello scrivendo una funzione definita dall'utente (UDF) in JavaScript. Per un esempio di funzione definita dall'utente, consulta Efficienza operativa.
  • Modello BigQuery to MongoDB. Questo modello Dataflow è un modello batch che può essere utilizzato per leggere i dati analizzati da BigQuery e scriverli MongoDB.
  • Modello da MongoDB a BigQuery (CDC). Questo modello Dataflow è una pipeline di flusso che funziona con le modifiche in tempo reale di MongoDB. Creerai un'applicazione publisher che invia le modifiche dallo stream di modifiche di MongoDB a Pub/Sub. La pipeline legge quindi i record JSON da Pub/Sub e li scrive in BigQuery. Come il modello MongoDB to BigQuery, puoi estendere questo modello scrivendo un'UDF.

    Utilizzando il modello MongoDB to BigQuery (CDC), puoi rendere che tutte le modifiche apportate nella raccolta MongoDB siano pubblicate in Pub/Sub. Per configurare un flusso di modifiche MongoDB, segui le istruzioni in Modifica dei flussi in MongoDB documentazione.

Casi d'uso

L'utilizzo di BigQuery per analizzare i dati di MongoDB Atlas può essere utile in un diversi settori, tra cui servizi finanziari, vendita al dettaglio, produzione e logistica, oltre che per le applicazioni di gioco.

Servizi finanziari

Google Cloud e MongoDB Atlas offrono soluzioni per gestire le esigenze di dati complesse e in continua evoluzione delle istituzioni finanziarie di oggi. Utilizzando BigQuery per analizzare i dati finanziari da MongoDB Atlas, può sviluppare soluzioni per le attività seguenti:

  • Rilevamento di attività fraudolente in tempo reale. Gli istituti finanziari vogliono rilevare e prevenire le transazioni fraudolente in tempo reale. Utilizzando il machine learning (ML) e analizzando i dati sul comportamento dei clienti in BigQuery, puoi identificare schemi che indicano la presenza di attività fraudolente.
  • Esperienze personalizzate per i clienti. Anche gli istituti finanziari sono interessati a offrire esperienze cliente personalizzate. Se archivi e analizzi i dati dei clienti in BigQuery, puoi creare soluzioni che generano consigli personalizzati, offrono prodotti e servizi personalizzati e forniscono una migliore assistenza clienti.
  • Gestione dei rischi. Le istituzioni finanziarie sono sempre alla ricerca di procedimenti che aiutino a identificare e mitigare i rischi. Analizzando i dati di una varietà di origini in BigQuery, puoi contribuire a identificare schemi e tendenze che indicano potenziali rischi.

Vendita al dettaglio

Utilizzo intelligente dei dati dei clienti con la possibilità di combinarli con quelli di prodotto e l'esecuzione di coinvolgimenti personalizzati in tempo reale definiscono il futuro dell'e-commerce. A soddisfare le esigenze dei clienti, i retailer devono prendere decisioni basate sui dati raccogliendo e l'analisi dei dati. BigQuery e MongoDB Atlas consentono utilizzare i dati dei clienti per promuovere l'innovazione nella personalizzazione, ad esempio le seguenti aree:

  • Commercio omnicanale. Utilizza MongoDB per archiviare e gestire i dati da un da una varietà di origini, tra cui negozi online e offline, app mobile e social media. L'archiviazione e la gestione dei dati, insieme L'analisi di BigQuery lo rende ideale per i retailer omnicanale che devono fornire ai propri clienti un'esperienza fluida in tutti i canali di notifica.
  • Approfondimenti in tempo reale. Con BigQuery puoi ottenere informazioni in tempo reale su clienti, inventario e rendimento delle vendite. Questi approfondimenti ti aiutano a prendere decisioni migliori in merito a prezzi, promozione e posizionamento del prodotto.
  • Consigli personalizzati. I motori di consigli personalizzati aiutano i retailer ad aumentare le vendite e la soddisfazione dei clienti. Archiviando e l'analisi dei dati dei clienti consente di identificare schemi e tendenze che possono essere utilizzati per consigliare prodotti che potrebbero interessare a ciascuno di loro singolo cliente.

Produzione e logistica

L'analisi dei dati di MongoDB in BigQuery offre inoltre i seguenti vantaggi al settore manifatturiero e della logistica:

  • Visibilità in tempo reale. Puoi ottenere una visibilità in tempo reale delle tue operazioni. Questo ti aiuta a prendere decisioni migliori sulla tua produzione, inventario e spedizione.
  • Ottimizzazione della catena di fornitura. La gestione dell'incertezza della catena di approvvigionamento e l'analisi dei dati provenienti da diverse origini ti aiutano a ridurre i costi e migliorare l'efficienza.

Giochi

L'analisi in BigQuery aiuta anche gli sviluppatori di giochi e per creare giochi all'avanguardia e offrire giochi senza precedenti esperienze, tra cui:

  • Gameplay in tempo reale. Puoi utilizzare la tua analisi per creare report in tempo reale esperienze di gameplay per generare classifiche, sistemi di matchmaker e funzionalità multiplayer.
  • Esperienze con il player personalizzate. Puoi utilizzare l'intelligenza artificiale (IA) e il machine learning per fornire consigli mirati e personalizzare l'esperienza di gioco per i giocatori.
  • Analisi dei giochi. Puoi analizzare i dati di gioco per identificare tendenze e modelli che ti aiutano a migliorare il design, il gameplay e le decisioni aziendali.

Alternative di progettazione

Esistono due alternative all'utilizzo dei modelli Dataflow come di integrazione da MongoDB a BigQuery: Pub/Sub con abbonamento a BigQuery o Confluent Cloud.

Pub/Sub con una sottoscrizione BigQuery

In alternativa all'utilizzo dei modelli Dataflow, puoi utilizzare Pub/Sub per configurare una pipeline di integrazione tra il tuo cluster MongoDB e BigQuery. Per utilizzare Pub/Sub al posto Dataflow, segui questi passaggi:

  1. Configura uno schema e un argomento Pub/Sub per importare dal flusso di modifiche di MongoDB.
  2. Crea una sottoscrizione BigQuery in Pub/Sub che scriva i messaggi in una tabella BigQuery esistente non appena vengono ricevuti. Se non utilizzi una sottoscrizione BigQuery, una sottoscrizione pull o push e un sottoscrittore (ad esempio Dataflow) che legge i messaggi e li scrive in BigQuery.

  3. Configura uno stream di modifiche che monitora i nuovi documenti inseriti in MongoDB e corrisponde allo schema utilizzato per Pub/Sub.

Per informazioni dettagliate su questa alternativa, consulta Creare una pipeline di dati per il flusso di modifiche di MongoDB utilizzando la sottoscrizione Pub/Sub BigQuery.

Confluent Cloud

Se non desideri creare una tua applicazione publisher per monitorare Modifiche in tempo reale MongoDB, puoi utilizzare invece Confluent Cloud. In questo approccio, utilizzi Confluent per configurare un connettore di origine MongoDB Atlas per leggere lo stream di dati MongoDB. Quindi configurerai un connettore di sink BigQuery per il sink dei dati dal cluster Confluent a BigQuery.

Per maggiori dettagli su questa alternativa, consulta Flusso di dati da MongoDB a BigQuery utilizzando Confluent Connectors.

Note sul layout

Quando crei una soluzione MongoDB Atlas a BigQuery, dovresti prendi in considerazione le seguenti aree.

Sicurezza, privacy e conformità

Quando esegui la pipeline di integrazione, Dataflow utilizza i seguenti due account di servizio per gestire la sicurezza e le autorizzazioni:

  • L'account di servizio Dataflow. Il servizio Dataflow utilizza l'account di servizio Dataflow nell'ambito della richiesta di creazione del job, ad esempio per controllare la quota del progetto e creare istanze di worker per tuo conto. Anche il servizio Dataflow utilizza questo account per gestire il job durante l'esecuzione. Questo account è noto anche come Agente di servizio Dataflow.
  • L'account di servizio worker. Le istanze worker utilizzano l'account di servizio worker per accedere a input e output dopo aver inviato il job. Per impostazione predefinita, i worker utilizzano Account di servizio predefinito Compute Engine come account di servizio worker. L'account di servizio worker deve avere roles/dataflow.worker.

Inoltre, le pipeline Dataflow devono poter accedere dell'accesso a specifiche risorse Google Cloud. Per consentire questo accesso, devi concedere alla classe i ruoli richiesti all'account di servizio worker per Dataflow progetto in modo che possa accedere alle risorse mentre esegue del job Dataflow. Ad esempio, se il tuo job scrive BigQuery, anche il tuo account di servizio deve avere Ruolo roles/bigquery.dataEditor nella tabella o in un'altra risorsa da aggiornare.

Ottimizzazione dei costi

Il costo dell'esecuzione dei modelli Dataflow dipende dai nodi worker pianificati e dal tipo di pipeline. A comprendere i costi, vedere Prezzi di Dataflow.

Ogni modello Dataflow può occuparsi del trasferimento dei dati da una raccolta MongoDB a una tabella BigQuery. Pertanto, poiché il numero di raccolta aumenta, il costo di utilizzo dei modelli Dataflow potrebbe aumentare.

Efficienza operativa

Per utilizzare e analizzare in modo efficiente i dati di MongoDB, potrebbe essere necessario eseguire una trasformazione personalizzata di questi dati. Ad esempio, potresti dover riformattare Dati MongoDB per corrispondere a uno schema di destinazione, per oscurare i dati sensibili o per filtrare alcuni elementi dall'output. Se devi eseguire una trasformazione di questo tipo, puoi utilizzare una UDF per estendere la funzionalità del modello MongoDB a BigQuery senza dover modificare il codice del modello.

Una UDF è una funzione JavaScript. La UDF deve prevedere di ricevere e restituire una stringa JSON. Il seguente codice mostra un esempio di trasformazione:

/**
* 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);
}

Per ulteriori informazioni su come creare una funzione definita dall'utente, consulta Creare funzioni definite dall'utente per i modelli Dataflow.

Dopo aver creato la UDF, devi svolgere i seguenti passaggi per estendere il modello MongoDB a BigQuery in modo da utilizzare questa UDF:

  • Innanzitutto, devi caricare il file JavaScript che contiene la funzione definita dall'utente in Google Cloud Storage.
  • Poi, quando crei il job Dataflow dal modello, devi impostare i seguenti parametri del modello:
    • Imposta il parametro javascriptDocumentTransformGcsPath sulla posizione del file JavaScript in Cloud Storage.
    • Imposta il parametro javascriptDocumentTransformFunctionName su il nome della funzione definita dall'utente.

Per ulteriori informazioni sull'estensione del modello con una UDF, consulta Modello da MongoDB a BigQuery.

Ottimizzazione delle prestazioni

Le prestazioni della trasformazione da MongoDB a BigQuery dipendono dai seguenti fattori:

  • Le dimensioni del documento MongoDB.
  • Il numero di raccolte MongoDB.
  • Indica se la trasformazione si basa su uno schema fisso o variabile.
  • La conoscenza del team di implementazione delle trasformazioni dello schema che utilizzano Funzioni definite dall'utente basate su JavaScript.

Deployment

Per eseguire il deployment di questa architettura di riferimento, consulta Esegui il deployment di una trasformazione dei dati tra MongoDB e Google Cloud.

Passaggi successivi

Collaboratori

Autori:

Altri collaboratori: