Accelerare il tempo per ottenere informazioni con le collezioni di serie temporali di MongoDB e Amazon SageMaker Canvas

Accelerare il tempo per ottenere informazioni con le collezioni temporali di MongoDB e Amazon SageMaker Canvas

Questo è un post ospite scritto insieme a Babu Srinivasan di MongoDB.

Mentre le industrie si evolvono nel panorama aziendale odierno, caratterizzato da un ritmo frenetico, l’incapacità di avere previsioni in tempo reale rappresenta una sfida significativa per settori fortemente dipendenti da informazioni accurate e tempestive. La mancanza di previsioni in tempo reale in vari settori presenta sfide aziendali impellenti che possono incidere in modo significativo sulla presa di decisioni e sull’efficienza operativa. Senza insight in tempo reale, le aziende faticano ad adattarsi alle condizioni di mercato dinamiche, ad anticipare con precisione la domanda dei clienti, ad ottimizzare i livelli di inventario e ad assumere decisioni strategiche proattive. Settori come Finanza, Retail, Gestione della Catena di Fornitura e Logistica si trovano di fronte al rischio di opportunità mancate, costi crescenti, inefficiente allocazione delle risorse e mancanza di soddisfazione del cliente. Esplorando queste sfide, le organizzazioni possono riconoscere l’importanza delle previsioni in tempo reale ed esplorare soluzioni innovative per superare questi ostacoli, consentendo loro di rimanere competitivi, prendere decisioni informate e prosperare nell’ambiente aziendale odierno caratterizzato da un ritmo frenetico.

Sfruttando il potenziale trasformativo delle capacità native dei dati “time series” di MongoDB e integrandolo con la potenza di Amazon SageMaker Canvas, le organizzazioni possono superare queste sfide e sbloccare nuovi livelli di agilità. La robusta gestione dei dati “time series” di MongoDB consente la memorizzazione e il recupero in tempo reale di grandi volumi di dati in formato time series, mentre gli algoritmi avanzati di machine learning e le capacità predittive forniscono modelli di previsione precisi e dinamici con SageMaker Canvas.

In questo post, esploreremo il potenziale dell’utilizzo dei dati “time series” di MongoDB e di SageMaker Canvas come soluzione completa.

MongoDB Atlas

MongoDB Atlas è una piattaforma di dati per sviluppatori completamente gestita che semplifica la distribuzione e la scalabilità dei database MongoDB nel cloud. È una soluzione di storage basata su documenti che offre un database completamente gestito, con una funzionalità di ricerca full-text e vettoriale incorporata, supporto per query geospaziali, grafici e supporto nativo per l’efficace archiviazione e l’interrogazione di dati “time series”. MongoDB Atlas offre il partizionamento automatico, la scalabilità orizzontale e l’indicizzazione flessibile per l’ingestione di grandi volumi di dati. Tra tutte le funzionalità, le capacità native di dati “time series” sono un punto di forza, rendendolo ideale per la gestione di un grande volume di dati in formato time-series, come dati di applicazioni criticali per il business, telemetria, log di server e altro ancora. Con query, aggregazioni ed analisi efficienti, le aziende possono estrarre insight preziosi dai dati con indicazione temporale. Utilizzando queste capacità, le aziende possono memorizzare, gestire ed analizzare in modo efficiente i dati ‘time series’, abilitando decisioni basate sui dati e ottenendo un vantaggio competitivo.

Amazon SageMaker Canvas

Amazon SageMaker Canvas è un servizio visivo di machine learning (ML) che consente agli analisti aziendali e agli scienziati dei dati di creare e distribuire modelli ML personalizzati senza richiedere alcuna esperienza in ML o la scrittura di una sola riga di codice. SageMaker Canvas supporta una serie di casi d’uso, tra cui la previsione di serie temporali, che dà alle aziende la possibilità di prevedere con precisione la domanda futura, le vendite, le esigenze di risorse e altri dati in formato time series. Il servizio utilizza tecniche di deep learning per gestire modelli dati complessi e consente alle aziende di generare previsioni accurate anche con dati storici minimi. Utilizzando le capacità di Amazon SageMaker Canvas, le aziende possono prendere decisioni informate, ottimizzare i livelli di inventario, migliorare l’efficienza operativa e aumentare la soddisfazione del cliente.

L’interfaccia utente di SageMaker Canvas consente di integrare senza soluzione di continuità fonti di dati dal cloud o on-premises, unire insieme dataset senza sforzo, addestrare modelli precisi e fare previsioni con dati emergenti, tutto ciò senza scrivere codice. Se hai bisogno di un flusso di lavoro automatizzato o di un’integrazione diretta del modello di machine learning in app, le funzioni di previsione di Canvas sono accessibili tramite API.

Panoramica della soluzione

Gli utenti conservano i loro dati di serie temporali transazionali in MongoDB Atlas. Attraverso Atlas Data Federation, i dati vengono estratti in un bucket Amazon S3. Amazon SageMaker Canvas accede ai dati per costruire modelli e creare previsioni. I risultati delle previsioni vengono memorizzati in un bucket S3. Utilizzando i servizi di MongoDB Data Federation, le previsioni vengono presentate in modo visuale attraverso MongoDB Charts.

Il seguente diagramma illustra l’architettura della soluzione proposta.

Requisiti

Per questa soluzione utilizziamo MongoDB Atlas per archiviare dati di serie temporali, Amazon SageMaker Canvas per addestrare un modello e generare previsioni, e Amazon S3 per archiviare i dati estratti da MongoDB Atlas.

Assicurati di avere i seguenti requisiti:

Configura il cluster di MongoDB Atlas

Crea un cluster gratuito di MongoDB Atlas seguendo le istruzioni in Crea un Cluster. Configura l’accesso al database e l’accesso alla rete.

Popola una collezione di serie temporali in MongoDB Atlas

Per fini dimostrativi, puoi utilizzare un set di dati di esempio da Kaggle e caricarlo su MongoDB Atlas con gli strumenti di MongoDB, preferibilmente MongoDB Compass.

Il seguente codice mostra un set di dati di esempio per una collezione di serie temporali:

{"store": "1 1","timestamp": { "2010-02-05T00:00:00.000Z"},"temperature": "42.31","target_value": 2.572,"IsHoliday": false}

La seguente schermata mostra i dati di serie temporali di esempio in MongoDB Atlas:

Crea un bucket S3

Crea un bucket S3 in AWS, dove i dati di serie temporali devono essere archiviati e analizzati. Nota che abbiamo due cartelle. sales-train-data viene utilizzata per archiviare i dati estratti da MongoDB Atlas, mentre sales-forecast-output contiene le previsioni di Canvas.

Crea la Data Federation

Configura la Data Federation in Atlas e registra il bucket S3 creato in precedenza come parte della fonte dati. Nota che vengono creati tre diversi database/collezioni nella data federation per il cluster Atlas, il bucket S3 per i dati di MongoDB Atlas e il bucket S3 per memorizzare i risultati di Canvas.

Le seguenti schermate mostrano la configurazione della federazione dei dati.

Configurazione del servizio dell’applicazione Atlas

Crea i Servizi dell’applicazione MongoDB per distribuire le funzioni di trasferimento dei dati dal cluster MongoDB Atlas al bucket S3 utilizzando l’aggregazione $out.

Verifica la configurazione del Datasource

I servizi dell’applicazione creano un nuovo Nome di servizio Atlas che deve essere utilizzato come servizio dati nella funzione seguente. Verifica che il Nome di servizio Atlas sia stato creato e annotalo per riferimenti futuri.

Crea la funzione

Configura i servizi dell’applicazione Atlas per creare il trigger e le funzioni. I trigger devono essere pianificati per scrivere i dati su S3 con una frequenza periodica basata sulle esigenze aziendali per l’addestramento dei modelli.

Lo script seguente mostra la funzione per scrivere nel bucket S3:

exports = function () {   const service = context.services.get("");   const db = service.db("")   const events = db.collection("");   const pipeline = [    {            "$out": {               "s3": {                  "bucket": "<S3_bucket_name>",                  "region": "<AWS_Region>",                   "filename": {$concat: ["<S3path>/<filename>_",{"$toString":  new Date(Date.now())}]},                  "format": {                        "name": "json",                        "maxFileSize": "10GB"                  }               }            }      }   ];   return events.aggregate(pipeline);};

Funzione di esempio

La funzione può essere eseguita tramite la scheda Esegui e gli errori possono essere debuggati utilizzando le funzionalità di log presenti nei servizi dell’applicazione. Inoltre, gli errori possono essere debuggati utilizzando il menu Log nel riquadro sinistro.

La seguente schermata mostra l’esecuzione della funzione insieme all’output:

Crea il dataset in Amazon SageMaker Canvas

I seguenti passaggi presuppongono che tu abbia creato un dominio SageMaker e un profilo utente. Se non lo hai ancora fatto, assicurati di configurare il dominio e il profilo utente di SageMaker. Nel profilo utente, aggiorna il tuo bucket S3 in modo personalizzato e fornisci il nome del tuo bucket.

Una volta completato, accedi a SageMaker Canvas, seleziona il tuo dominio e profilo e seleziona Canvas.

Crea un dataset fornendo la fonte dei dati.

Seleziona come origine del dataset S3.

Seleziona la posizione dei dati nel bucket S3 e seleziona Crea il dataset.

Verifica lo schema e clicca su Crea dataset

A seguito di un importazione riuscita, il dataset apparirà nell’elenco come mostrato nell’immagine successiva.

Allenare il modello

Successivamente, utilizzeremo Canvas per impostare l’allenamento del modello. Seleziona il dataset e clicca su Crea.

Crea un nome per il modello, seleziona Analisi predittiva e clicca su Crea.

Seleziona la colonna target

Successivamente, clicca su Configura il modello di serie temporale e seleziona item_id come colonna ID articolo.

Seleziona tm per la colonna timestamp

Per specificare la quantità di tempo che vuoi prevedere, scegli 8 settimane.

Ora sei pronto per visualizzare il modello o avviare il processo di creazione.

Dopo aver visualizzato il modello o avviato la creazione, il tuo modello verrà creato e potrebbe richiedere fino a quattro ore. Puoi lasciare la schermata e tornare per verificare lo stato di addestramento del modello.

Quando il modello è pronto, seleziona il modello e clicca sull’ultima versione

Esamina le metriche del modello e l’impatto delle colonne e se sei soddisfatto delle prestazioni del modello, clicca su “Prevedi”.

Successivamente, scegli “Previsione batch” e clicca su “Seleziona dataset”.

Seleziona il tuo dataset e clicca su “Scegli dataset”.

Successivamente, clicca su “Avvia previsioni”.

Osserva un lavoro creato o osserva lo stato del lavoro in SageMaker sotto “Inferenza”, “Lavori di trasformazione batch”.

Quando il lavoro è completato, seleziona il lavoro e annota il percorso S3 in cui Canvas ha archiviato le previsioni.

Visualizza i dati di previsione nei grafici di Atlas

Per visualizzare i dati di previsione, crea i grafici di MongoDB Atlas basati sui dati federati (amazon-forecast-data) per le previsioni P10, P50 e P90 come mostrato nel seguente grafico.

Pulizia

  • Elimina il cluster MongoDB Atlas
  • Elimina la configurazione di federazione dei dati di Atlas
  • Elimina l’applicazione del servizio Atlas
  • Elimina il bucket di S3
  • Elimina il dataset e i modelli di Amazon SageMaker Canvas
  • Elimina i grafici di Atlas
  • Effettua il logout da Amazon SageMaker Canvas

Conclusioni

In questo post abbiamo estratto dati di serie temporali dalla collezione di serie temporali di MongoDB. Questa è una collezione speciale ottimizzata per la velocità di archiviazione e interrogazione dei dati di serie temporali. Abbiamo utilizzato Amazon SageMaker Canvas per allenare modelli e generare previsioni e abbiamo visualizzato le previsioni in Atlas Charts.

Per ulteriori informazioni, consulta le risorse seguenti.