Analizzare i dati operativi in MongoDB Atlas con Azure Synapse Analytics

Servizio app di Azure
Azure Data Lake Storage
Griglia di eventi di Azure
Azure Synapse Analytics
Power BI

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 Spark e il logo flame sono marchi o marchi registrati di Apache® Software Foundation nei Stati Uniti e/o in altri paesi. L'uso di questi marchi non implica alcuna approvazione da parte di Apache Software Foundation.

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.

Diagramma dell'architettura che mostra il flusso di dati da MongoDB Atlas alle app di analisi. Le fasi provvisorie includono un'API del flusso di modifiche e Azure Synapse Analytics.

Scaricare un file di PowerPoint di tutti i diagrammi in questo articolo.

Flusso di dati

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.

  1. 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.

  2. Un'app Web del servizio app 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 Archiviazione, 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.

  3. Entrambe le versioni della soluzione attivano la pipeline di Azure Synapse Analytics:

    1. 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.
    2. 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 Archiviazione, tale trigger viene attivato, causando l'esecuzione della pipeline di dati di Azure Synapse Analytics.
  4. In un'attività di copia, la pipeline di Azure Synapse Analytics copia il documento completo modificato dal BLOB di Archiviazione Data Lake 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.

  5. 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.

  6. 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 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 Archiviazione offre funzionalità per l'archiviazione e l'elaborazione dei dati. Come data lake basato su Archiviazione BLOB, Data Lake Archiviazione offre una soluzione scalabile per la gestione di grandi volumi di dati da più origini eterogenee.

  • Le pipeline di Azure Synapse Analytics vengono usate per eseguire operazioni di estrazione, trasformazione e 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.

  • Il 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.

  • I 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 broker eventi serverless altamente scalabile. È possibile usare Griglia di eventi per recapitare eventi alle destinazioni del sottoscrittore.

  • Power BI è una raccolta di app e servizi software 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.

Diagramma dell'architettura che mostra i connettori di origine e sink che connettono i dati dai consumer ad Azure Synapse Analytics e all'archiviazione dati MongoDB.

Per altre informazioni su come configurare e configurare i connettori, vedere queste risorse:

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 in Data Lake Archiviazione archiviazione BLOB come file Parquet, Avro, JSON, text 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 Archiviazione. 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 Archiviazione-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 per servizio app app Web che sottoscrivono il flusso di modifiche. Queste app scrivono le modifiche apportate all'archiviazione BLOB di Data Lake Archiviazione.

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 che il BLOB viene scritto in Data Lake Archiviazione:

  • 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 Archiviazione al pool SQL dedicato. Questa pipeline viene attivata dal trigger di archiviazione o griglia di eventi.

Potenziali casi d'uso

I casi d'uso per questa soluzione si estendono su molti settori e aree:

  • Vendita 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
  • Servizi bancari e finanziari

    • Personalizzazione dei servizi finanziari dei clienti
    • Rilevamento di transazioni potenzialmente fraudolente
  • Telecomunicazioni

    • Ottimizzazione delle reti di nuova generazione
    • Ottimizzazione del valore delle reti perimetrali
  • Automobili

    • Ottimizzazione della parametrizzazione dei veicoli connessi
    • Rilevamento di anomalie nelle comunicazioni IoT nei veicoli connessi
  • Produzione

    • Fornitura di manutenzione predittiva per macchinari
    • Ottimizzazione della gestione dell'archiviazione e dell'inventario

Ecco due esempi specifici:

  • Come descritto in precedenza in Integrazione di Batch, è possibile recuperare i dati mongoDB in un batch e quindi aggiornarli 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 dall'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.

Diagramma che mostra le fasi della pipeline e i grafici che mostrano le vendite della penna per prodotto, anno, area geografica e affinità. Le vendite di penna sono più alte nel 2022 nel Sud.

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.

Diagrammi che mostrano le fasi della pipeline e un flusso di lavoro per un modello di intelligenza artificiale. I campi dati includono l'ID cliente, il prezzo, le vendite e il profitto.

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, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

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 riguarda l'analisi dei 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 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 prestazionale

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 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 servizio app basato sull'archiviazione, che scrive i documenti JSON con le modifiche apportate a Data Lake Archiviazione. 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 Archiviazione specificata e aggiorna il pool SQL dedicato per ognuno di essi.
  • Modificare il codice 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 attività Copy guida alle prestazioni e alla scalabilità.

Distribuire lo scenario

Per informazioni sull'implementazione di questa soluzione, vedere Soluzione di sincronizzazione in tempo reale per MongoDB Atlas Integration con Synapse.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autori principali:

Altri contributori:

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: