Scenario 4: rilevamento delle anomalie e notifiche in tempo reale dei sensori del dispositivo
L'azienda ABC4logistics trasporta prodotti petroliferi altamente infiammabili come benzina, propano liquido (GPL) e nafta dal porto in varie città. Ci sono centinaia di veicoli che hanno più sensori installati su di essi per monitorare aspetti quali posizione, temperatura del motore, temperatura all'interno del container, velocità di guida, posizione di parcheggio, condizioni stradali e così via. Uno dei requisiti di ABC4Logistics è quello di monitorare le temperature del motore e del container in tempo reale e avvisare il conducente e il team di monitoraggio della flotta in caso di anomalie. Per rilevare tali condizioni e generare avvisi in tempo reale, ABC4Logistics ha implementato la seguente architettura su AWS.
Il dispositivo di ABC4Logistics rileva le anomalie in tempo reale e l'architettura delle notifiche
I dati provenienti dai sensori dei dispositivi vengono acquisiti da AWS IoT Gateway, dove il motore delle regole AWS IoT renderà disponibili i dati di streaming in Amazon Kinesis Data Streams. Utilizzando Kinesis Data Analytics, ABC4Logistics può eseguire analisi dei dati in tempo reale sui dati di streaming in Kinesis Data Streams.
Utilizzando Kinesis Data Analytics, ABC4Logistics è in grado di rilevare se le letture della temperatura dei sensori si discostano dalle normali letture per un periodo di dieci secondi e di inserire il record su un'altra istanza di Kinesis Data Streams, identificando i record anomali. Amazon Kinesis Data Streams richiama quindi le funzioni Lambda, che possono inviare gli avvisi al conducente e al team di monitoraggio della flotta tramite Amazon SNS.
Anche i dati in Kinesis Data Streams vengono trasferiti ad Amazon Kinesis Data Firehose. Amazon Kinesis Data Firehose conserva questi dati in Simple Storage Service (Amazon S3), consentendo ad ABC4Logistics di eseguire analisi dei dati in batch o quasi in tempo reale sui dati dei sensori. ABC4Logistics utilizza Amazon Athena
Di seguito vengono descritti in dettaglio i componenti importanti di questa architettura.
Amazon Kinesis Data Analytics
Amazon Kinesis Data Analytics
Con Amazon Kinesis Data Analytics, puoi eseguire query interattive sui dati di streaming utilizzando diverse opzioni, tra cui SQL standard, applicazioni Apache Flink in Java, Python e Scala e costruire applicazioni Apache Beam utilizzando Java per analizzare i flussi dei dati.
Queste opzioni offrono la flessibilità di utilizzare un approccio specifico a seconda del livello di complessità dell'applicazione di streaming e del supporto di origine/destinazione. Nella sezione seguente viene illustrata l'opzione Kinesis Data Analytics per applicazioni Flink.
Amazon Kinesis Data Analytics per applicazioni Apache Flink
Apache Flink
Con Amazon Kinesis Data Analytics per Apache Flink, puoi creare ed eseguire codice su fonti di streaming per eseguire analisi dei dati di serie temporali, alimentare pannelli di controllo in tempo reale e creare parametri in tempo reale senza gestire il complesso ambiente distribuito di Apache Flink. È possibile utilizzare le caratteristiche di programmazione Flink di elevato livello nello stesso modo in cui le si utilizza quando si ospita personalmente l'infrastruttura Flink.
Kinesis Data Analytics per Apache Flink consente di creare applicazioni in Java, Scala, Python o SQL per elaborare e analizzare i dati di streaming. Una tipica applicazione Flink legge i dati dal flusso di input o dalla posizione o dall'origine dei dati, trasforma/filtra o unisce i dati utilizzando operatori o funzioni e archivia i dati nel flusso di output o nella posizione dei dati o nel sink.
Il seguente diagramma dell'architettura mostra alcune delle origini e dei sink supportati per l'applicazione Flink di Kinesis Data Analytics. Oltre ai connettori preassemblati per origine/sink, puoi anche inserire connettori personalizzati in una varietà di altre origini/sink per le applicazioni Flink su Kinesis Data Analytics.
Applicazione Apache Flink su Kinesis Data Analytics per l'elaborazione di flussi in tempo reale
Gli sviluppatori possono utilizzare l'IDE preferito per sviluppare applicazioni Flink e implementarle su Kinesis Data Analytics da AWS Management Console
Amazon Kinesis Data Analytics Studio
Come parte del servizio Kinesis Data Analytics,Kinesis Data Analytics Studio
Utilizzando il notebook Studio, è possibile sviluppare il codice dell'applicazione Flink in un ambiente notebook, visualizzare i risultati del codice in tempo reale e visualizzarli nel notebook. Puoi creare un notebook Studio basato su Apache Zeppelin e Apache Flink con un solo clic da Kinesis Data Streams e dalla console Amazon MSK oppure avviarlo dalla console di Kinesis Data Analytics.
Una volta sviluppato il codice in modo iterativo come parte di Kinesis Data Analytics Studio, è possibile implementare un notebook come applicazione di analisi dei dati Kinesis, per l'esecuzione continua in modalità di streaming, la lettura dei dati dalle origini, la scrittura nelle destinazioni, la gestione dello stato dell'applicazione con esecuzione prolungata e il dimensionamento automatico in base alla velocità effettiva dei flussi di origine. In precedenza, i clienti utilizzavano Kinesis Data Analytics for SQL Applications per l'analisi interattiva dei dati di streaming in tempo reale su AWS.
Kinesis Data Analytics per le applicazioni SQL è ancora disponibile, ma per i nuovi progetti, AWS consiglia di utilizzare il nuovo Kinesis Data Analytics Studio
Per rendere l'applicazione Flink di Kinesis Data Analytics tollerante ai guasti, è possibile utilizzare checkpoint e snapshot, come descritto in nella sezione relativa all'implementazione della tolleranza ai guasti in Kinesis Data Analytics per Apache Flink.
Le applicazioni Flink di Kinesis Data Analytics sono utili per la scrittura di applicazioni di analisi dei dati di flusso complesse con semantica "exactly-once"
Dopo aver elaborato i dati di streaming nell'applicazione Flink, è possibile mantenere i dati in vari sink o destinazioni come Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon OpenSearch Service, Amazon Timestream, Simple Storage Service (Amazon S3) e così via. L'applicazione Kinesis Data Analytics Flink fornisce anche garanzie di prestazioni inferiori al secondo.
Applicazioni Apache Beam per Kinesis Data Analytics
Apache Beam
È possibile utilizzare il framework Apache Beam con l'applicazione di analisi dei dati Kinesis per elaborare i dati di streaming. Le applicazioni di analisi dei dati Kinesis che utilizzano Apache Beam utilizzano il runner Apache Flink
Riepilogo
Utilizzando i servizi di streaming di AWS Amazon Kinesis Data Streams, Amazon Kinesis Data Analytics e Amazon Kinesis Data Firehose,
ABC4logistics è in grado di rilevare modelli anomali nelle letture della temperatura e avvisare il conducente e il team di gestione della flotta in tempo reale, prevenendo incidenti gravi come guasti totali del veicolo o incendi.