Molte aziende utilizzano MongoDB come archivio dati operativo e vogliono arricchire il valore di questi dati eseguendo 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 configurare questa pipeline di integrazione in Google Cloud.
In questa architettura, utilizzi i modelli Dataflow per integrare i dati da MongoDB Atlas in BigQuery. Questi modelli Dataflow trasformano il formato del documento utilizzato da 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 il deployment di questa soluzione. Questo diagramma mostra come vari modelli Dataflow spostano e trasformano i dati da MongoDB in un data warehouse BigQuery.
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 i documenti da MongoDB e li scrive in BigQuery, dove possono essere analizzati. Se vuoi, puoi estendere questo modello scrivendo una funzione definita dall'utente (UDF) in JavaScript. Per un'UDF di esempio, 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 in MongoDB.
Modello MongoDB to BigQuery (CDC). Questo modello Dataflow è una pipeline in modalità flusso che funziona con 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 a BigQuery (CDC), puoi assicurarti che eventuali modifiche apportate alla raccolta MongoDB vengano pubblicate su Pub/Sub. Per configurare un stream di modifiche 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 diversi settori, tra cui servizi finanziari, vendita al dettaglio, produzione e logistica e 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 di MongoDB Atlas, puoi sviluppare soluzioni per le seguenti attività:
- Rilevamento in tempo reale di attività fraudolente. 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 cliente personalizzate. 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
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 del futuro. Per soddisfare le esigenze dei clienti, i retailer devono prendere decisioni basate sui dati raccogliendoli e analizzandoli. BigQuery e MongoDB Atlas ti 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 provenienti da una varietà di origini, tra cui negozi online e offline, app mobile e social media. Questa archiviazione e gestione dei dati, insieme alle analisi di BigQuery, lo rendono ideale per i rivenditori omnicanale che devono offrire un'esperienza fluida ai propri clienti su tutti i canali.
- 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 suggerimenti personalizzati aiutano i retailer ad aumentare le vendite e la soddisfazione dei clienti. Se memorizzi e analizzi i dati dei clienti, puoi identificare schemi e tendenze che possono essere utilizzati per consigliare prodotti che potrebbero interessare a ciascun 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. In questo modo puoi prendere decisioni migliori in merito a 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 consente inoltre a sviluppatori e editori di giochi di creare giochi all'avanguardia e offrire esperienze di gioco senza precedenti, tra cui:
- Gameplay in tempo reale. Puoi utilizzare le tue analisi per creare esperienze di gameplay in tempo reale per generare classifiche, sistemi di matchmaking e funzionalità multiplayer.
- Esperienze con il player personalizzate. Puoi utilizzare l'intelligenza artificiale (AI) e l'apprendimento automatico 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 design
Hai 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'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 anziché Dataflow, segui questi passaggi:
- Configura uno schema e un argomento Pub/Sub per importare i messaggi dal flusso di modifiche MongoDB.
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, devi avere una sottoscrizione pull o push e un sottoscrittore (ad esempio Dataflow) che legga i messaggi e li scriva in BigQuery.
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 vuoi creare la tua applicazione publisher per monitorare il stream di modifiche di MongoDB, puoi utilizzare Confluent Cloud. In questo approccio, utilizzi Confluent per configurare un connettore di origine MongoDB Atlas per leggere lo stream di dati MongoDB. Poi, configura un connettore di destinazione BigQuery per eseguire il trasferimento dei dati dal cluster Confluent a BigQuery.
Per informazioni dettagliate su questa alternativa, consulta Streaming di dati da MongoDB a BigQuery utilizzando i connettori Confluent.
Note sul layout
Quando crei una soluzione MongoDB Atlas per BigQuery, devi tenere conto delle 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 di worker utilizzano l'account di servizio del worker per accedere alle risorse di input e output dopo l'invio del 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 del 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 disporre anche del ruolo almeno
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 del trasferimento dei dati da una raccolta MongoDB a una tabella BigQuery. Pertanto, con l'aumento del numero di raccolte, potrebbe aumentare anche il costo dell'utilizzo dei modelli di Dataflow.
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 i dati MongoDB in modo che corrispondano a uno schema di destinazione, oscurare i dati sensibili o 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 contenente la FDU 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
sul nome della FDU.
- Imposta il parametro
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 Eseguire il deployment di una trasformazione dei dati tra MongoDB e Google Cloud.
Passaggi successivi
- Per personalizzare i modelli Google Dataflow, consulta i modelli su GitHub.
- Scopri di più sulle soluzioni MongoDB Atlas e Google Cloud su Cloud Skill Boost.
- Scopri di più sui prodotti Google Cloud utilizzati in questa architettura di riferimento:
- Per altre architetture di riferimento, diagrammi e best practice, visita il Cloud Architecture Center.
Collaboratori
Autori:
- Saurabh Kumar | ISV Partner Engineer
- Venkatesh Shanbhag | Senior Solutions Architect (MongoDB)
Altri collaboratori:
- Jun Liu | Tech Lead per l'assistenzabilità
- Maridi (Raju) Makaraju | Technical Lead per l'idoneità all'assistenza
- Sergei Lilichenko | Solutions Architect
- Shan Kulandaivel | Group Product Manager