Scenario 3: Preparazione dei dati clickstream per i processi di rilevamento delle informazioni dettagliate sui dati - Soluzioni per i dati di streaming di AWS per Amazon Kinesis

Scenario 3: Preparazione dei dati clickstream per i processi di rilevamento delle informazioni dettagliate sui dati

Fast Sneakers è una boutique di moda con particolare attenzione alle sneakers di tendenza. Il prezzo di un determinato paio di scarpe può aumentare o diminuire a seconda dell'inventario e delle tendenze, ad esempio se una celebrità o un campione sportivo hanno indossato una determinata marca di sneaker in TV la sera prima. È importante che Fast Sneakers tenga traccia e analizzi tali tendenze per massimizzare il fatturato.

Fast Sneakers non vuole introdurre ulteriori costi nel progetto con altre infrastrutture da gestire. Vuole riuscire a dividere lo sviluppo in modo appropriato tra le parti, dove i data engineer possono concentrarsi sulla trasformazione dei dati e i Data Scientist possono lavorare sulla funzionalità ML in modo indipendente.

Per reagire rapidamente e adeguare automaticamente i prezzi in base alla domanda, Fast Sneakers trasmette eventi significativi (come i dati relativi ai clic e agli acquisti), trasformando e aumentando i dati degli eventi e inviandoli a un modello di ML. Il suo modello di ML è in grado di determinare se è necessario un adeguamento del prezzo. Ciò permette a Fast Sneakers di modificare automaticamente i propri prezzi per massimizzare il profitto sui propri prodotti.

Adeguamenti dei prezzi in tempo reale

Adeguamenti dei prezzi in tempo reale

Questo diagramma dell'architettura mostra la soluzione di streaming in tempo reale creata da Fast Sneakers utilizzando Kinesis Data Streams, AWS Glue e DynamoDB Streams. Sfruttando questi servizi, è disponibile una soluzione elastica e affidabile senza dover dedicare tempo alla configurazione e alla gestione dell'infrastruttura di supporto. L'azienda può dedicare il suo tempo a ciò che apporta valore all'azienda concentrandosi sulle operazioni ETL (extract, transform, load) e sul modello di machine learning.

Per comprendere meglio l'architettura e le tecnologie utilizzate nel carico di lavoro, di seguito sono riportati alcuni dettagli dei servizi utilizzati.

Streaming AWS Glue e AWS Glue

AWS Glue è un servizio ETL completamente gestito che puoi utilizzare per catalogare i dati, pulirli, arricchirli e spostarli in modo affidabile tra i data store. Con AWS Glue, è possibile ridurre in modo significativo i costi, la complessità e il tempo dedicato alla creazione di operazioni ETL. AWS Glue è serverless, quindi non vi è alcuna infrastruttura da configurare o gestire. I prezzi sono calcolati in base alle risorse impiegate per l'esecuzione dei processi.

Utilizzando AWS Glue, è possibile creare un'applicazione consumer con un'operazione streaming ETL AWS Glue. Ciò consente di utilizzare la scrittura su Apache Spark e altri moduli basati su Spark per utilizzare ed elaborare i dati degli eventi. La sezione successiva di questo documento approfondisce questo scenario.

AWS Glue Data Catalog

AWS Glue Data Catalog contiene riferimenti a dati che vengono utilizzati come origini e destinazioni delle operazioni ETL in AWS Glue. Il AWS Glue Data Catalog è un indice per i parametri di posizione, schema e tempo di esecuzione dei dati. È possibile utilizzare le informazioni presenti nel catalogo dati per creare e monitorare le operazioni ETL. Le informazioni nel catalogo dati vengono archiviate come tabelle di metadati, dove ogni tabella specifica un singolo datastore. Configurando un crawler, è possibile valutare automaticamente numerosi tipi di archivi dati, inclusi gli archivi connessi a DynamoDB, S3 e Java Database Connectivity (JDBC), estrarre metadati e schemi e quindi creare definizioni di tabelle in AWS Glue Data Catalog.

Per utilizzare Amazon Kinesis Data Streams nelle operazioni Streaming ETL AWS Glue, è preferibile definire il flusso in una tabella di un database AWS Glue Data Catalog. Definire una tabella di origine del flusso con il flusso Kinesis, uno dei tanti formati supportati (CSV, JSON, ORC, Parquet, Avro o un formato cliente con Grok). È possibile inserire manualmente uno schema oppure lasciare questa fase al processo AWS Glue per determinarla durante il tempo di esecuzione del processo.

Operazione Streaming ETL in AWS Glue

AWS Glue esegue le operazioni ETL in un ambiente Apache Spark serverless. AWS Glue esegue questi processi su risorse virtuali di cui effettua il provisioning e che gestisce nel proprio account di servizio. Oltre a essere in grado di eseguire processi basati su Apache Spark, AWS Glue fornisce un ulteriore livello di funzionalità su Spark con DynamicFrames.

DynamicFrames sono tabelle distribuite che supportano dati annidati come strutture e array. Ogni record è auto descrittivo, progettato per la flessibilità dello schema con dati semi-strutturati. Un record in un DynamicFrame contiene sia i dati che lo schema che descrive i dati. Sia DataFrames che DynamicFrames di Apache Spark sono supportati negli script ETL ed è possibile alternarli. DynamicFrames forniscono una serie di trasformazioni avanzate per la pulizia dei dati e per ETL.

Utilizzando Spark Streaming nel processo AWS Glue, puoi creare operazioni Streaming ETL che vengono eseguite continuamente e utilizzare dati da fonti di streaming come Amazon Kinesis Data Streams, Apache Kafka e Amazon MSK. I processi possono pulire, unire e trasformare i dati, quindi caricare i risultati in archivi dati tra cui Simple Storage Service (Amazon S3), Amazon DynamoDB o JDBC.

Di default, AWS Glue elabora e scrive i dati in finestre di 100 secondi. Ciò permette di elaborare i dati in modo efficiente e di eseguire aggregazioni su dati che arrivano più tardi del previsto. È possibile configurare la dimensione della finestra regolandola per adattarsi alla velocità di risposta rispetto all'accuratezza dell'aggregazione. I processi di streaming AWS Glue utilizzano i checkpoint per tenere traccia dei dati letti da Kinesis Data Stream. Per una procedura dettagliata sulla creazione di un'operazione Streaming ETL in AWS Glue puoi consultare Aggiunta di operazioni Streaming ETL in AWS Glue

Amazon DynamoDB

Amazon DynamoDB è un database chiave-valore e di documenti in grado di garantire prestazioni in millisecondi a una cifra, indipendentemente dalle dimensioni. Si tratta di un database durevole, multiregione, multiattivo e completamente gestito che offre sicurezza, backup e ripristino integrati e memorizzazione nella cache in memoria per applicazioni Internet. DynamoDB può gestire oltre dieci trilioni di richieste al giorno e supporta picchi di oltre 20 milioni di richieste al secondo.

Acquisizione dei dati di modifica per DynamoDB Streams

Un flusso DynamoDB è un flusso ordinato di informazioni sulle modifiche apportate agli elementi in una tabella DynamoDB. Quando abiliti un flusso in una tabella, DynamoDB acquisisce informazioni su ogni modifica apportata agli elementi di dati nella tabella. Amazon DynamoDB viene eseguito su AWS Lambda, in modo da poter creare delle attivazioni, vale a dire parti di codice che rispondono automaticamente agli eventi in DynamoDB Streams. Con le attivazioni è possibile costruire applicazioni che rispondono alle modifiche di dati nelle tabelle Dynamo DB.

Quando su una tabella è abilitato un flusso, puoi associare l'Amazon Resource Name (ARN) del flusso a una funzione Lambda che scrivi. Immediatamente dopo che un elemento nella tabella viene modificato, nel flusso della tabella viene visualizzato un nuovo record. AWS Lambda esegue il polling del flusso e, quando rileva nuovi record nel flusso, richiama in modo sincrono la funzione Lambda.

Endpoint del servizio Amazon SageMaker

Amazon SageMaker è una piattaforma completamente gestita che consente a sviluppatori e Data Scientist di costruire, addestrare e implementare modelli ML in modo rapido e in qualsiasi dimensione. SageMaker include moduli che possono essere utilizzati congiuntamente ad altri o in modo indipendente per costruire, addestrare e implementare i modelli di ML. Con gli endpoint del servizio di Amazon SageMaker, puoi creare endpoint ospitati gestiti per l'inferenza in tempo reale con un modello implementato sviluppato all'interno o all'esterno di Amazon SageMaker.

Utilizzando l'AWS SDK, è possibile richiamare un endpoint SageMaker che trasmette le informazioni sul tipo di contenuti insieme ai contenuti e quindi ricevere previsioni in tempo reale basate sui dati trasferiti. Ciò consente di mantenere la progettazione e lo sviluppo dei modelli ML separati dal codice che esegue operazioni sui risultati dedotti.

Ciò consente ai Data Scientist di concentrarsi sull'ML e agli sviluppatori che utilizzano il modello ML di concentrarsi su come lo utilizzano nel codice. Per ulteriori informazioni su come richiamare un endpoint in SageMaker, consulta InvokeEnpoint nella Documentazione di riferimento dell'API di Amazon SageMaker.

Deduzione delle informazioni dettagliate sui dati in tempo reale

Il diagramma dell'architettura precedente indica che l'applicazione Web esistente di Fast Sneakers ha aggiunto un flusso dei dati Kinesis contenente eventi di clickstream, che fornisce dati sul traffico e sugli eventi dal sito Web. Il catalogo prodotti, che contiene informazioni quali la categorizzazione, gli attributi dei prodotti e i prezzi e la tabella degli ordini, che contiene dati quali articoli ordinati, fatturazione, spedizione e così via, sono tabelle DynamoDB separate. L'origine del flusso dei dati e le tabelle DynamoDB appropriate hanno i metadati e gli schemi definiti in AWS Glue Data Catalog modo da essere utilizzati dall'operazione Streaming ETL AWS Glue.

Utilizzando Apache Spark, Spark Streaming e DynamicFrames nelle operazioni Streaming ETL AWS Glue, Fast Sneakers è in grado di estrarre i dati dal flusso dei dati e trasformarli, unendo i dati delle tabelle di prodotti e degli ordini. Con i dati dopo la trasformazione, i set di dati da cui ottenere i risultati dell'inferenza vengono inviati a una tabella DynamoDB.

Il flusso DynamoDB per la tabella attiva una funzione Lambda per ogni nuovo record scritto. La funzione Lambda invia i record precedentemente trasformati a un endpoint SageMaker con l'AWS SDK per dedurre quali eventuali adeguamenti di prezzo sono necessari per un prodotto. Se il modello ML identifica un adeguamento al prezzo richiesto, la funzione Lambda scrive la variazione di prezzo sul prodotto nella tabella DynamoDB del catalogo.

Riepilogo

Amazon Kinesis Data Streams semplifica raccolta, elaborazione e analisi dei dati di streaming in tempo reale, per ottenere informazioni dettagliate tempestive e reagire rapidamente alle nuove informazioni. In combinazione con il servizio serverless di integrazione dei dati AWS Glue, puoi creare applicazioni di streaming di eventi in tempo reale che preparano e combinano i dati per ML.

Poiché sia Kinesis Data Streams che i servizi AWS Glue sono completamente gestiti, AWS elimina il pesante e indifferenziato carico di gestione dell'infrastruttura per la tua piattaforma di Big Data, permettendoti di concentrarti sulla generazione di informazioni dettagliate sui dati in base ai tuoi dati.

Fast Sneakers può utilizzare l'elaborazione di eventi in tempo reale e l'ML per consentire al proprio sito Web di apportare adeguamenti dei prezzi in tempo reale completamente automatici, per massimizzare le scorte di prodotti Ciò apporta il massimo valore alla sua attività evitando la necessità di creare e gestire una piattaforma di Big Data.