Trasformazione dei dati tra MongoDB Atlas e Google Cloud

Last reviewed 2023-12-13 UTC

Molte aziende utilizzano MongoDB come datastore operativo e vogliono arricchire il valore di questi dati eseguendo analisi complesse su di essi. Per farlo, i dati di MongoDB devono essere aggregati e spostati in un data warehouse, dove è possibile eseguire le analisi. Questa architettura di riferimento descrive come configurare questa pipeline di integrazione in Google Cloud.

In questa architettura vengono utilizzati i modelli Dataflow per integrare i dati di MongoDB Atlas in BigQuery. Questi modelli Dataflow trasformano il formato di documento utilizzato da MongoDB nel formato a colonne usato da BigQuery. Questi modelli si basano sulle librerie Apache Beam per eseguire la trasformazione. Di conseguenza, questo documento presuppone che tu conosca MongoDB e abbia una certa familiarità con Dataflow e Apache Beam.

Architettura

Il seguente diagramma mostra l'architettura di riferimento che utilizzi quando esegui il deployment di questa soluzione. Questo diagramma mostra in che modo 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 mostra il diagramma, questa architettura si basa sui seguenti tre modelli:

  • Modello da MongoDB a BigQuery. Questo modello Dataflow è una pipeline batch che legge i documenti da MongoDB e li scrive in BigQuery, dove i dati possono essere analizzati. Se vuoi, puoi estendere questo modello scrivendo una funzione definita dall'utente'utente in JavaScript. Per una funzione definita dall'utente di esempio, consulta Efficienza operativa.
  • Da BigQuery al modello MongoDB. Questo modello Dataflow è un modello batch che può essere utilizzato per leggere i dati analizzati da BigQuery e scriverli in MongoDB.
  • Modello da MongoDB a BigQuery (CDC). Questo modello Dataflow è una pipeline di inserimento flussi che funziona con modifiche in tempo reale di MongoDB. Crei un'applicazione publisher che esegue il push delle modifiche dal flusso di modifiche MongoDB a Pub/Sub. La pipeline legge quindi i record JSON da Pub/Sub e li scrive in BigQuery. Come nel caso di MongoDB con il modello BigQuery, puoi estendere questo modello scrivendo una funzione definita dall'utente.

    Utilizzando il modello MongoDB to BigQuery (CDC), puoi assicurarti che eventuali modifiche apportate alla raccolta MongoDB vengano pubblicate in Pub/Sub. Per configurare un flusso di modifiche di MongoDB, segui le istruzioni riportate in Stream di modifiche nella documentazione di MongoDB.

Casi d'uso

L'utilizzo di BigQuery per analizzare i dati di MongoDB Atlas può essere utile in una vasta gamma di settori, tra cui servizi finanziari, retail, produzione e logistica e applicazioni di gioco.

Servizi finanziari

Google Cloud e MongoDB Atlas offrono soluzioni per gestire le esigenze complesse e in continua evoluzione dei dati degli istituti finanziari di oggi. Utilizzando BigQuery per analizzare i dati finanziari di MongoDB Atlas, puoi sviluppare soluzioni per le seguenti attività:

  • Rilevamento di attività fraudolente in tempo reale. Gli istituti finanziari vogliono rilevare e prevenire transazioni fraudolente in tempo reale. Utilizzando il machine learning (ML) e analizzando i dati sul comportamento dei clienti in BigQuery, puoi identificare pattern indicativi di attività fraudolenta.
  • Esperienze personalizzate per i clienti. Gli istituti finanziari sono interessati anche a offrire esperienze cliente personalizzate. Archiviando e analizzando i dati dei clienti in BigQuery, puoi creare soluzioni che generano suggerimenti personalizzati, offrono prodotti e servizi su misura e forniscono una migliore assistenza clienti.
  • Gestione dei rischi. Gli istituti finanziari sono sempre alla ricerca di processi che consentano di identificare e mitigare i rischi. L'analisi dei dati da una serie di origini in BigQuery consente di identificare pattern e tendenze che indicano potenziali rischi.

Retail

L'utilizzo intelligente dei dati dei clienti con la possibilità di combinarli con i dati di prodotto e l'esecuzione di interazioni personalizzate in tempo reale definiscono l'e-commerce futuro. Per soddisfare le esigenze dei clienti, i retailer devono prendere decisioni basate sui dati raccogliendo e analizzando dati. BigQuery e MongoDB Atlas consentono di utilizzare i dati dei clienti per promuovere l'innovazione nella personalizzazione, ad esempio nelle seguenti aree:

  • Commercio omnicanale. Utilizza MongoDB per archiviare e gestire i dati da una serie di origini, tra cui negozi online e offline, app mobile e social media. L'archiviazione e la gestione dei dati, insieme all'analisi di BigQuery, lo rendono ideale per i retailer omnicanale che hanno bisogno di fornire ai propri clienti un'esperienza senza soluzione di continuità su tutti i canali.
  • Approfondimenti in tempo reale. Con BigQuery puoi ottenere insight in tempo reale sui clienti, sull'inventario e sul rendimento delle vendite. Queste informazioni ti aiutano a prendere decisioni migliori su prezzi, promozioni e posizionamento dei prodotti.
  • Consigli personalizzati. I motori per suggerimenti personalizzati aiutano i rivenditori ad aumentare le vendite e la soddisfazione dei clienti. Archiviando e analizzando i dati dei clienti, puoi identificare pattern e tendenze che possono essere utilizzati per consigliare prodotti che potrebbero interessare a ogni singolo cliente.

Produzione e logistica

L'analisi dei dati di MongoDB in BigQuery offre anche i seguenti vantaggi al settore di produzione e logistica:

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

Giochi

Analisi in BigQuery consente inoltre a sviluppatori e publisher di giochi di creare giochi all'avanguardia e di offrire esperienze di gioco senza pari, tra cui:

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

Alternative di progettazione

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

Pub/Sub con una sottoscrizione BigQuery

In alternativa all'uso dei modelli Dataflow, puoi utilizzare Pub/Sub per configurare una pipeline di integrazione tra il cluster MongoDB e BigQuery. Per utilizzare Pub/Sub anziché Dataflow:

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

  3. Configura un flusso di modifiche che ascolti i nuovi documenti inseriti in MongoDB e che corrisponda allo schema utilizzato per Pub/Sub.

Per maggiori dettagli su questa alternativa, vedi Creare una pipeline di dati per il flusso di modifiche di MongoDB utilizzando la sottoscrizione BigQuery di Pub/Sub.

Confluent Cloud

Se non vuoi creare un'applicazione editore personalizzata per monitorare il flusso di modifiche MongoDB, puoi utilizzare Confluent Cloud. In questo approccio, utilizzerai Confluent per configurare un connettore di origine MongoDB Atlas per leggere lo stream di dati MongoDB. Configura quindi un connettore sink BigQuery per il sink dei dati dal cluster Confluent a BigQuery.

Per i dettagli su questa alternativa, vedi Trasmettere i flussi di dati da MongoDB a BigQuery utilizzando connettori Confluent.

Note sul layout

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

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 verificare la quota di progetto e creare istanze worker per tuo conto. Il servizio Dataflow utilizza questo account anche 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 alle risorse di input e di output dopo che hai inviato il job. Per impostazione predefinita, i worker utilizzano l'account di servizio predefinito di Compute Engine del progetto come account di servizio del worker. L'account di servizio worker deve avere roles/dataflow.worker.

Inoltre, le pipeline Dataflow devono essere in grado di accedere alle risorse Google Cloud. Per consentire questo accesso, devi concedere i ruoli richiesti all'account di servizio worker per il progetto Dataflow in modo che il progetto possa accedere alle risorse durante l'esecuzione del job Dataflow. Ad esempio, se il tuo job scrive in BigQuery, il tuo account di servizio deve anche avere almeno il ruolo roles/bigquery.dataEditor nella tabella o nell'altra risorsa da aggiornare.

Ottimizzazione dei costi

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

Ogni modello Dataflow può occuparsi dello spostamento dei dati da una raccolta MongoDB a una tabella BigQuery. Di conseguenza, con l'aumento del numero di raccolte, anche il costo di utilizzo dei modelli Dataflow potrebbe aumentare.

Efficienza operativa

Per utilizzare e analizzare in modo efficiente i dati MongoDB, potrebbe essere necessario eseguire una trasformazione personalizzata di quei dati. Ad esempio, potrebbe essere necessario riformattare i dati MongoDB in modo che corrispondano a uno schema di destinazione, per oscurare i dati sensibili o per filtrare alcuni elementi dall'output. Se devi eseguire questa trasformazione, puoi utilizzare una funzione definita dall'utente per estendere la funzionalità di MongoDB al modello di BigQuery senza dover modificare il codice del modello.

Una funzione definita dall'utente è una funzione JavaScript. La funzione definita dall'utente dovrebbe aspettarsi di ricevere e restituire una stringa JSON. Il codice seguente mostra una trasformazione di esempio:

/**
* 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 funzione definita dall'utente, devi eseguire i seguenti passaggi per estendere il modello MongoDB al modello BigQuery e utilizzare questa funzione definita dall'utente:

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

Per ulteriori informazioni sull'estensione del modello con una funzione definita dall'utente, 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.
  • Conoscenza del team di implementazione delle trasformazioni di schema che utilizzano funzioni definite dall'utente basate su JavaScript.

Deployment

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

Passaggi successivi

Collaboratori

Autori:

Altri collaboratori: