Questo articolo presenta una soluzione per derivare informazioni dettagliate dai dati operativi di MongoDB Atlas. La soluzione connette MongoDB Atlas ad Azure Synapse Analytics. La connessione consente di trasferire i dati in batch e in tempo reale. L'approccio in tempo reale mantiene sincronizzati i pool SQL dedicati di Azure Synapse Analytics con le modifiche nell'origine dati Di MongoDB Atlas.
Apache®, Apache Sparke il logo flame sono marchi registrati o marchi di Apache Software Foundation negli Stati Uniti e/o in altri paesi. Nessuna approvazione da parte di Apache Software Foundation è implicita dall'uso di questi marchi.
Il logo di MongoDB Atlas è un marchio di MongoDB. Nessuna verifica dell'autenticità è implicita nell'uso di questo marchio.
Architettura
Il diagramma seguente illustra come sincronizzare i dati atlas di MongoDB con Azure Synapse Analytics in tempo reale.
Scaricare un file di PowerPoint di tutti i diagrammi in questo articolo.
Flusso
La soluzione presenta due opzioni per attivare le pipeline che acquisisce le modifiche in tempo reale nell'archivio dati operativo di MongoDB Atlas (ODS) e sincronizzare i dati. I passaggi seguenti descrivono entrambe le opzioni.
Le modifiche si verificano nei dati operativi e transazionali archiviati in MongoDB Atlas. Le API del flusso di modifiche di Mongo Atlas notificano alle applicazioni sottoscritte le modifiche in tempo reale.
Un'app Web del servizio app di Azure personalizzata sottoscrive il flusso di modifiche di MongoDB. Esistono due versioni dell'app Web, griglia di eventi e archiviazione, una per ogni versione della soluzione. Entrambe le versioni dell'app sono in ascolto delle modifiche causate da un'operazione di inserimento, aggiornamento o eliminazione in Atlas. Quando le app rilevano una modifica, scrivono il documento modificato come BLOB in Azure Data Lake Storage, integrato con Azure Synapse Analytics. La versione di Griglia di eventi dell'app crea anche un nuovo evento in Griglia di eventi di Azure quando rileva una modifica in Atlas.
Entrambe le versioni della soluzione attivano la pipeline di Azure Synapse Analytics:
- Nella versione di Griglia di eventi viene configurato un trigger personalizzato basato su eventi in Azure Synapse Analytics. Questo trigger sottoscrive l'argomento griglia di eventi in cui viene pubblicata l'app Web. Il nuovo evento in questo argomento attiva il trigger di Azure Synapse Analytics, che causa l'esecuzione della pipeline di dati di Azure Synapse Analytics.
- Nella versione di archiviazione viene configurato un trigger basato sull'archiviazione in Azure Synapse Analytics. Quando il nuovo BLOB viene rilevato nella cartella integrata di Data Lake Storage, tale trigger viene attivato, causando l'esecuzione della pipeline di dati di Azure Synapse Analytics.
In un'attività di copia, la pipeline di Azure Synapse Analytics copia il documento completo modificato dal BLOB di Data Lake Storage al pool SQL dedicato. Questa operazione è configurata per eseguire un upsert in una colonna selezionata. Se la colonna esiste nel pool SQL dedicato, l'upsert aggiorna la colonna. Se la colonna non esiste, l'upsert inserisce la colonna.
Il pool SQL dedicato è la funzionalità di data warehousing aziendale che ospita la tabella aggiornata dalla pipeline di dati. L'attività di copia dei dati della pipeline mantiene la tabella sincronizzata con la raccolta Atlas corrispondente.
I report e le visualizzazioni di Power BI visualizzano l'analisi corrente e quasi in tempo reale. I dati vengono inoltre inseriti in applicazioni downstream. MongoDB Atlas funziona come sink usando un connettore sink della pipeline di dati di Azure Synapse Analytics. Atlas fornisce quindi app personalizzate con i dati in tempo reale.
Componenti
MongoDB Atlas è un'offerta di database come servizio di MongoDB. Questa piattaforma dati delle applicazioni multicloud offre l'elaborazione transazionale, la ricerca basata sulla pertinenza, l'analisi in tempo reale e la sincronizzazione dei dati da dispositivi mobili a cloud. MongoDB offre anche una soluzione locale, MongoDB Enterprise Advanced.
i flussi di modifica in MongoDB Atlas consentono alle applicazioni di accedere alle modifiche dei dati in tempo reale in modo che le app possano reagire immediatamente a tali modifiche. I flussi di modifica consentono alle applicazioni di ricevere notifiche sulle modifiche apportate a una raccolta, un database o un intero cluster di distribuzione.
servizio app e le relative funzionalità app Web, app per dispositivi mobili e app per le API offrono un framework per la creazione, la distribuzione e il ridimensionamento di app Web, app per dispositivi mobili e API REST. Questa soluzione usa app Web programmate in ASP.NET. Il codice è disponibile in GitHub:
azure Synapse Analytics è il servizio principale usato da questa soluzione per l'inserimento, l'elaborazione e l'analisi dei dati.
Data Lake Storage offre funzionalità per l'archiviazione e l'elaborazione dei dati. Come data lake basato su archiviazione BLOB, Data Lake Storage offre una soluzione scalabile per la gestione di grandi volumi di dati da più origini eterogenee.
pipeline di Azure Synapse Analytics vengono usate per eseguire operazioni di estrazione, trasformazione, caricamento (ETL) sui dati. Azure Data Factory offre un servizio simile, ma è possibile creare pipeline di Azure Synapse Analytics all'interno di Synapse Studio. È possibile usare più attività all'interno della stessa pipeline. È anche possibile creare endpoint di dipendenza per connettere un'attività a un'altra attività nella pipeline.
i flussi di dati di mapping sono trasformazioni dei dati progettate visivamente in Azure Synapse Analytics. I flussi di dati consentono ai data engineer di sviluppare la logica di trasformazione dei dati senza scrivere codice. È possibile eseguire i flussi di dati risultanti come attività all'interno delle pipeline di Azure Synapse Analytics che usano cluster Apache Spark con scalabilità orizzontale. È possibile mettere in funzione le attività del flusso di dati usando le funzionalità di pianificazione, controllo, flusso e monitoraggio di Azure Synapse Analytics esistenti.
pool SQL dedicato offre funzionalità di data warehousing per i dati dopo l'elaborazione e la normalizzazione dei dati. Questa funzionalità di Azure Synapse Analytics era precedentemente nota come SQL Data Warehouse. I pool SQL dedicati rendono disponibili i dati perfezionati per gli utenti finali e le applicazioni.
trigger di Azure Synapse Analytics offrono un modo automatizzato per eseguire le pipeline. È possibile pianificare questi trigger. È anche possibile configurare trigger basati su eventi, ad esempio trigger di eventi di archiviazione e trigger di eventi personalizzati. La soluzione usa entrambi i tipi di trigger basati su eventi.
griglia di eventi è un gestore eventi serverless altamente scalabile. È possibile usare Griglia di eventi per recapitare eventi alle destinazioni del sottoscrittore.
power BI è una raccolta di servizi software e app che visualizzano informazioni di analisi. In questa soluzione Power BI consente di usare i dati elaborati per eseguire analisi avanzate e ottenere informazioni dettagliate.
Dettagli dello scenario
MongoDB Atlas funge da livello dati operativo di molte applicazioni aziendali. Questo database cloud archivia i dati da applicazioni interne, servizi rivolti ai clienti e API di terze parti da più canali. Usando le pipeline di Azure Synapse Analytics, è possibile combinare i dati atlas di MongoDB con dati relazionali di altre applicazioni tradizionali e dati non strutturati da origini come i log.
Integrazione di Batch
In Azure Synapse Analytics è possibile integrare facilmente istanze locali di MongoDB e MongoDB Atlas come risorsa di origine o sink. MongoDB è l'unico database NoSQL con connettori di origine e sink per Azure Synapse Analytics e Data Factory.
Con i dati cronologici, è possibile recuperare tutti i dati contemporaneamente. È anche possibile recuperare i dati in modo incrementale per periodi specifici usando un filtro in modalità batch. È quindi possibile usare pool SQL e pool di Apache Spark in Azure Synapse Analytics per trasformare e analizzare i dati. Se è necessario archiviare i risultati di analisi o query in un archivio dati di analisi, è possibile usare la risorsa sink in Azure Synapse Analytics.
Per altre informazioni su come configurare e configurare i connettori, vedere queste risorse:
- Copiare dati da o in MongoDB Atlas usando Azure Data Factory o Azure Synapse Analytics
- Copiare dati da o in MongoDB usando Azure Data Factory o Azure Synapse Analytics
Il connettore di origine offre un modo pratico per eseguire Azure Synapse Analytics sui dati operativi archiviati in MongoDB o Atlas. Dopo aver usato il connettore di origine per recuperare i dati da Atlas, è possibile caricare i dati nell'archivio BLOB di Data Lake Storage come file Parquet, Avro, JSON, testo o CSV. È quindi possibile trasformare questi file o aggiungerli ad altri file da altre origini dati in ambienti cloud multi-database, multicloud o ibridi.
È possibile usare i dati recuperati da MongoDB Enterprise Advanced o MongoDB Atlas negli scenari seguenti:
Per recuperare tutti i dati da una determinata data da MongoDB in un batch. I dati vengono quindi caricati in Data Lake Storage. Da qui si usa un pool SQL serverless o un pool Spark per l'analisi oppure si copiano i dati in un pool SQL dedicato. Dopo aver recuperato questo batch, è possibile applicare le modifiche ai dati man mano che si verificano, come descritto in flusso di dati. Una pipeline di esempio Storage-CopyPipeline_mdb_synapse_ded_pool_RTS è disponibile come parte di questa soluzione. È possibile esportare la pipeline da GitHub per questo scopo di caricamento monouso.
Per produrre informazioni dettagliate a una determinata frequenza, ad esempio per un report giornaliero o orario. Per questo scenario, è necessario pianificare una pipeline per recuperare i dati a intervalli regolari prima di eseguire le pipeline di analisi. È possibile usare una query MongoDB per applicare criteri di filtro e recuperare solo un determinato subset di dati.
Sincronizzazione in tempo reale
Le aziende necessitano di informazioni dettagliate basate su dati in tempo reale, non su dati non aggiornati. Un ritardo di poche ore nel recapito delle informazioni dettagliate può contenere il processo decisionale e causare una perdita di vantaggio competitivo. Questa soluzione alimenta il processo decisionale critico propagando in tempo reale le modifiche apportate nel database transazionale MongoDB al pool SQL dedicato.
Questa soluzione include tre parti, descritte nelle sezioni seguenti.
Acquisire le modifiche di MongoDB Atlas
Il flusso di modifiche di MongoDB acquisisce le modifiche che si verificano nel database. Le API del flusso di modifiche rendono disponibili informazioni sulle modifiche alle app Web del servizio app che sottoscrivono il flusso di modifiche. Queste app scrivono le modifiche apportate all'archiviazione BLOB di Data Lake Storage.
Attivare una pipeline per propagare le modifiche ad Azure Synapse Analytics
La soluzione presenta due opzioni per attivare una pipeline di Azure Synapse Analytics dopo la scrittura del BLOB in Data Lake Storage:
Un trigger basato sull'archiviazione. Usare questa opzione se è necessaria l'analisi in tempo reale, perché la pipeline viene attivata non appena viene scritto il BLOB con la modifica. Ma questa opzione potrebbe non essere l'approccio preferito quando si dispone di un volume elevato di modifiche ai dati. Azure Synapse Analytics limita il numero di pipeline che possono essere eseguite contemporaneamente. Quando si dispone di un numero elevato di modifiche ai dati, è possibile raggiungere tale limite.
Trigger personalizzato basato su eventi. Questo tipo di trigger offre il vantaggio che si presenta all'esterno di Azure Synapse Analytics, quindi è più facile da controllare. La versione di Griglia di eventi dell'app Web scrive il documento dei dati modificati nell'archivio BLOB. Allo stesso tempo, l'app crea un nuovo evento di Griglia di eventi. I dati nell'evento contengono il nome file del BLOB. La pipeline attivata dall'evento riceve il nome del file come parametro e quindi usa il file per aggiornare il pool SQL dedicato.
Propagare le modifiche a un pool SQL dedicato
Una pipeline di Azure Synapse Analytics propaga le modifiche a un pool SQL dedicato. La soluzione fornisce una pipeline di CopyPipeline_mdb_synapse_ded_pool_RTS in GitHub che copia la modifica nel BLOB da Data Lake Storage al pool SQL dedicato. Questa pipeline viene attivata dal trigger di archiviazione o griglia di eventi.
Casi d'uso potenziali
I casi d'uso per questa soluzione si estendono su molti settori e aree:
Commercio al dettaglio
- Creazione di intelligenza nella creazione di bundle di prodotti e promozione dei prodotti
- Ottimizzazione dell'archiviazione ad accesso sporadico che usa lo streaming IoT
- Ottimizzazione del rifornimento inventario
- Aggiunta di valore alla distribuzione multicanale
Banche e finanze
- Personalizzazione dei servizi finanziari dei clienti
- Rilevamento di transazioni potenzialmente fraudolente
Telecomunicazioni
- Ottimizzazione delle reti di nuova generazione
- Ottimizzazione del valore delle reti perimetrali
Automobilistico
- Ottimizzazione della parametrizzazione dei veicoli connessi
- Rilevamento di anomalie nelle comunicazioni IoT nei veicoli connessi
Manifatturiero
- Fornitura di manutenzione predittiva per macchinari
- Ottimizzazione della gestione dell'archiviazione e dell'inventario
Ecco due esempi specifici:
- Come descritto in precedenza in l'integrazione di Batch, è possibile recuperare i dati di MongoDB in un batch e quindi aggiornare i dati man mano che si verificano modifiche. Questa funzionalità rende possibili informazioni dettagliate in tempo reale per il processo decisionale jite e le conclusioni. Questa funzionalità è utile per l'analisi di informazioni sensibili e critiche, ad esempio transazioni finanziarie e dati di rilevamento delle frodi.
- Come descritto anche 'integrazione di Batch, è possibile pianificare una pipeline per recuperare regolarmente i dati di MongoDB. Questa funzionalità è utile negli scenari di vendita al dettaglio, ad esempio l'aggiornamento dei livelli di inventario con i dati di vendita giornalieri. In questi casi, i report di analisi e i dashboard non sono di importanza critica e l'analisi in tempo reale non vale la pena.
Le sezioni seguenti illustrano in modo più approfondito due casi d'uso del settore delle vendite al dettaglio.
Creazione di bundle di prodotti
Per promuovere la vendita di un prodotto, è possibile vendere il prodotto come parte di un bundle insieme ad altri prodotti correlati. L'obiettivo è usare i dati del modello di vendita per sviluppare strategie per creare pacchetti un prodotto.
Esistono due origini di dati:
- Dati del catalogo prodotti di MongoDB
- Dati di vendita da Azure SQL
Entrambi i set di dati vengono migrati in un pool SQL dedicato di Azure Synapse Analytics usando una pipeline di Azure Synapse Analytics. I trigger e le acquisizioni di dati delle modifiche vengono usati per ottenere una sincronizzazione dei dati quasi in tempo reale sui dati migrati una sola volta.
I grafici di Power BI seguenti mostrano l'affinità tra i prodotti e i modelli di vendita. L'affinità della penna e del riempimento basato sull'input penna è elevata. I dati sulle vendite indicano che la penna ha un volume di vendite elevato nell'area specificata.
L'analisi offre due suggerimenti per produrre vendite migliori:
- Creazione di bundle della penna e del riempimento basato sull'input penna
- Promozione del bundle in determinate aree
Promozione del prodotto
Per promuovere la vendita di un prodotto, è possibile consigliare il prodotto ai clienti interessati ai prodotti correlati. L'obiettivo è usare i dati di vendita e i dati del modello di acquisto dei clienti per sviluppare strategie per consigliare un prodotto ai clienti.
Usando Azure Synapse Analytics, è possibile sviluppare modelli di intelligenza artificiale e Machine Learning per determinare quali prodotti consigliare ai clienti.
I diagrammi seguenti illustrano l'uso di vari tipi di dati per creare un modello per determinare raccomandazioni alternative sui prodotti. I dati includono modelli di acquisto dei clienti, profitti, affinità di prodotto, volume di vendite dei prodotti e parametri del catalogo prodotti.
Se il modello ottiene un'accuratezza elevata, fornisce un elenco di prodotti che è possibile consigliare al cliente.
Considerazioni
Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, ovvero un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Microsoft Azure Well-Architected Framework.
Sicurezza
La sicurezza offre garanzie contro attacchi intenzionali e l'abuso di dati e sistemi preziosi. Per altre informazioni, vedere Panoramica del pilastro della sicurezza.
Per informazioni dettagliate sui requisiti di sicurezza e sui controlli dei componenti di Azure nella soluzione, vedere la sezione relativa alla sicurezza della documentazione di ogni prodotto.
Ottimizzazione dei costi
L'ottimizzazione dei costi consiste nell'esaminare i modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.
- Per stimare il costo dei prodotti e delle configurazioni di Azure, usare il calcolatore prezzi di Azure .
- Azure consente di evitare costi non necessari identificando il numero corretto di risorse per le proprie esigenze, analizzando le spese nel tempo e ridimensionando per soddisfare le esigenze aziendali senza sovraccarico. Ad esempio, è possibile sospendere i pool SQL dedicati quando non si prevede alcun carico. È possibile riprenderli in un secondo momento.
- È possibile sostituire il servizio app con Funzioni di Azure. Orchestrando le funzioni all'interno di una pipeline di Azure Synapse Analytics, è possibile ridurre i costi.
- Per ridurre il costo del cluster Spark, scegliere il tipo di calcolo corretto del flusso di dati. Sono disponibili opzioni generali e ottimizzate per la memoria. Scegliere anche il numero di core e i valori TTL (Time-to-Live) appropriati.
- Per altre informazioni sulla gestione dei costi dei componenti chiave della soluzione, vedere queste risorse:
Efficienza delle prestazioni
L'efficienza delle prestazioni è la capacità del carico di lavoro di ridimensionarsi per soddisfare le esigenze poste dagli utenti in modo efficiente. Per altre informazioni, vedere panoramica panoramica dell'efficienza delle prestazioni.
Quando è presente un volume elevato di modifiche, l'esecuzione di migliaia di pipeline in Azure Synapse Analytics per ogni modifica nella raccolta può comportare un backlog di pipeline in coda. Per migliorare le prestazioni in questo scenario, considerare gli approcci seguenti:
- Usare il codice del servizio app basato sull'archiviazione, che scrive i documenti JSON con le modifiche in Data Lake Storage. Non collegare il trigger basato sull'archiviazione alla pipeline. Usare invece un trigger pianificato a un breve intervallo, ad esempio ogni due o cinque minuti. Quando il trigger pianificato viene eseguito, accetta tutti i file nella directory Data Lake Storage specificata e aggiorna il pool SQL dedicato per ognuno di essi.
- Modificare il codice del servizio app griglia di eventi. Programmarlo per aggiungere un micro batch di circa 100 modifiche all'archivio BLOB prima di aggiungere il nuovo argomento all'evento con i metadati che includono il nome file. Con questa modifica, si attiva una sola pipeline per un BLOB con le 100 modifiche. È possibile modificare le dimensioni del micro batch in base allo scenario in uso. Usare micro batch di piccole dimensioni ad alta frequenza per fornire aggiornamenti quasi in tempo reale. In alternativa, usare micro batch di dimensioni maggiori a una frequenza inferiore per gli aggiornamenti ritardati e ridurre il sovraccarico.
Per altre informazioni sul miglioramento delle prestazioni e della scalabilità dell'attività di copia della pipeline di Azure Synapse Analytics, vedere guida alle prestazioni e alla scalabilità dell'attività di copia.
Distribuire questo scenario
Per informazioni sull'implementazione di questa soluzione, vedere Real-Time Sync Solution for MongoDB Atlas Integration with Synapse.
Contributori
Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai collaboratori seguenti.
Autori principali:
- Diana Annie Jenosh | Senior Solutions Architect
- Babu Srinivasan | Senior Solutions Architect
- Utsav Talwar | Associate Solutions Architect
Altri collaboratori:
- Krishnakumar Rukmangathan | Senior Program Manager
- Sunil Sabat | Principal Program Manager
- Wee Hyong T | Direttore principale
- Paresh Saraf | Direttore tecnico
Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.
Passaggi successivi
Per altre informazioni sulla soluzione, contattare partners@mongodb.com.
Per informazioni su MongoDB, vedere queste risorse:
Per informazioni sui componenti della soluzione Azure, vedere queste risorse:
- Che cos'è Azure Synapse Analytics?
- casi d'uso di Azure Synapse Analytics
- casi d'uso specifici del settore di Azure Synapse Analytics
- connettori di Azure Synapse Analytics
- panoramica del servizio app
- Che cos'è Power BI?
- Introduzione ad Azure Data Lake Storage Gen2
- Che cos'è Griglia di eventi di Azure?
Risorse correlate
- business intelligence aziendale
- di business intelligence aziendale automatizzato