Skenario 4: Deteksi dan notifikasi anomali waktu nyata sensor perangkat - Solusi Data Pengaliran di AWS dengan Amazon Kinesis

Skenario 4: Deteksi dan notifikasi anomali waktu nyata sensor perangkat

Perusahaan ABC4Logistics mengangkut produk minyak bumi yang sangat mudah terbakar seperti bensin, gas minyak cair (LPG), dan nafta dari pelabuhan ke berbagai kota. Ada ratusan kendaraan yang memiliki sejumlah sensor yang terpasang untuk memantau hal-hal seperti lokasi, suhu mesin, suhu di dalam kontainer, kecepatan mengemudi, lokasi parkir, kondisi jalan, dan sebagainya. Salah satu kebutuhan ABC4Logistics adalah memantau suhu mesin dan kontainer secara waktu nyata serta memberi tahu pengemudi dan tim pemantauan armada jika terjadi anomali. Untuk mendeteksi kondisi tersebut dan menghasilkan pemberitahuan secara waktu nyata, ABC4Logistics menerapkan arsitektur berikut di AWS.

Arsitektur deteksi dan notifikasi anomali waktu nyata sensor perangkat ABC4Logistics

Arsitektur deteksi dan notifikasi anomali waktu nyata sensor perangkat ABC4Logistics

Data dari sensor perangkat diserap oleh AWS IoT Gateway, tempat mesin aturan AWS IoT akan membuat data pengaliran tersedia di Amazon Kinesis Data Streams. Menggunakan Kinesis Data Analytics, ABC4Logistics dapat melakukan analitik waktu nyata pada data pengaliran di Kinesis Data Streams.

Menggunakan Kinesis Data Analytics, ABC4Logistics dapat mendeteksi jika pembacaan suhu dari sensor menyimpang dari pembacaan normal selama sepuluh detik, dan menyerap catatannya ke instans Kinesis Data Streams lain, dengan mengidentifikasi catatan yang beranomali. Amazon Kinesis Data Streams kemudian memanggil fungsi Lambda, yang dapat mengirim pemberitahuan ke pengemudi dan tim pemantauan armada melalui Amazon SNS.

Data dalam Kinesis Data Streams juga didorong ke Amazon Kinesis Data Firehose. Amazon Kinesis Data Firehose mempersistensi data ini di Amazon S3, sehingga memungkinkan ABC4Logistics melakukan analitik batch atau hampir waktu nyata terhadap data sensor. ABC4Logistics menggunakan Amazon Athena untuk mengkueri data di S3, dan Amazon QuickSight untuk visualisasi. Untuk retensi data jangka panjang, kebijakan S3 Lifecycle digunakan untuk mengarsipkan data ke Amazon S3 Glacier.

Komponen penting dari arsitektur ini diuraikan selanjutnya.

Amazon Kinesis Data Analytics

Amazon Kinesis Data Analytics memungkinkan Anda mentransformasikan dan menganalisis data pengaliran dan merespons anomali secara waktu nyata. Ini adalah layanan nirserver di AWS, yang berarti Kinesis Data Analytics menangani penyediaan, dan secara elastis menskalakan infrastruktur untuk menangani throughput data apa pun. Layanan ini menghilangkan semua pekerjaan berat yang tidak terdiferensiasi dalam menyiapkan dan mengelola infrastruktur pengaliran, dan memungkinkan Anda meluangkan lebih banyak waktu untuk menulis aplikasi pengaliran.

Dengan Amazon Kinesis Data Analytics, Anda dapat secara interaktif mengkueri data pengaliran menggunakan sejumlah opsi, termasuk Standard SQL, aplikasi Apache Flink di Java, Python, dan Scala, serta membangun aplikasi Apache Beam menggunakan Java untuk menganalisis aliran data.

Sejumlah opsi ini memberi Anda fleksibilitas dalam menggunakan pendekatan tertentu tergantung pada tingkat kompleksitas aplikasi pengaliran dan dukungan sumber/target. Bagian berikut membahas opsi Aplikasi Kinesis Data Analytics for Flink.

Apache Flink adalah kerangka kerja sumber terbuka dan mesin pemrosesan terdistribusi populer untuk komputasi stateful terhadap aliran data yang tak terbatas dan terbatasi. Apache Flink dirancang untuk melakukan komputasi pada kecepatan dalam memori dan dalam skala besar dengan dukungan untuk semantik persis sekali. Aplikasi berbasis Flink Apache membantu mencapai latensi rendah bersama throughput tinggi dengan cara yang toleran terhadap kesalahan.

Dengan Amazon Kinesis Data Analytics for Apache Flink, Anda dapat menulis dan menjalankan kode terhadap sumber pengaliran untuk melakukan analitik deret waktu, mengirim umpan ke dasbor waktu nyata, dan membuat metrik waktu nyata tanpa mengelola lingkungan Apache Flink terdistribusi yang kompleks. Anda dapat menggunakan fitur pemrograman Flink tingkat tinggi dengan cara yang sama seperti saat meng-host sendiri infrastruktur Flink.

Kinesis Data Analytics for Apache Flink memungkinkan Anda membuat aplikasi di Java, Scala, Python, atau SQL untuk memproses dan menganalisis data pengaliran. Sebuah aplikasi Flink standar akan membaca data dari aliran atau lokasi data input atau sumber, mentransformasikan/memfilter atau menggabungkan data menggunakan operator atau fungsi, serta menyimpan data pada aliran atau lokasi data output, atau sink.

Diagram arsitektur berikut menunjukkan beberapa sumber dan sink yang didukung untuk aplikasi Kinesis Data Analytics Flink. Selain konektor bawaan untuk sumber/sink, Anda juga dapat membawa konektor kustom ke berbagai sumber/sink lainnya untuk Aplikasi Flink di Kinesis Data Analytics.

Aplikasi Apache Flink di Kinesis Data Analytics untuk pemrosesan aliran waktu nyata

Aplikasi Apache Flink di Kinesis Data Analytics untuk pemrosesan aliran waktu nyata

Developer dapat menggunakan IDE pilihan mereka untuk mengembangkan aplikasi Flink dan men-deploy-nya pada Kinesis Data Analytics dari AWS Management Console atau alat DevOps.

Amazon Kinesis Data Analytics Studio

Sebagai bagian dari layanan Kinesis Data Analytics, Kinesis Data Analytics Studio tersedia bagi pelanggan untuk mengkueri aliran data dalam waktu nyata secara interaktif, dan membangun dan menjalankan aplikasi pemrosesan aliran dengan mudah menggunakan SQL, Python, dan Scala. Notebook Studio didukung oleh Apache Zeppelin.

Menggunakan notebook Studio, Anda memiliki kemampuan untuk mengembangkan kode Aplikasi Flink Anda di lingkungan notebook, melihat hasil kode Anda secara waktu nyata, dan memvisualisasikannya dalam notebook Anda. Anda dapat membuat Notebook Studio yang didukung oleh Apache Zeppelin dan Apache Flink dengan satu klik dari Kinesis Data Streams dan konsol Amazon MSK, atau meluncurkannya dari Kinesis Data Analytics Console.

Setelah Anda mengembangkan kode secara iteratif sebagai bagian dari Kinesis Data Analytics Studio, Anda dapat men-deploy notebook sebagai aplikasi analitik data Kinesis, untuk berjalan dalam mode pengaliran secara terus-menerus, membaca data dari sumber Anda, menulis ke tujuan Anda, mempertahankan status aplikasi yang berjalan lama, dan menskalakan secara otomatis berdasarkan throughput aliran sumber Anda. Sebelumnya, pelanggan menggunakan Kinesis Data Analytics for SQL Applications untuk analitik interaktif terhadap data pengaliran waktu nyata di AWS.

Kinesis Data Analytics for SQL Applications masih tersedia, tetapi untuk proyek baru, AWS merekomendasikan agar Anda menggunakan Kinesis Data Analytics Studio yang baru. Kinesis Data Analytics Studio menggabungkan kemudahan penggunaan dengan kemampuan analitik tingkat lanjut, yang memungkinkan pembangunan aplikasi pemrosesan aliran yang canggih dalam hitungan menit.

Untuk membuat aplikasi Kinesis Data Analytics Flink yang toleran terhadap kesalahan, Anda dapat menggunakan checkpointing dan snapshot, seperti yang dijelaskan dalam Menerapkan Toleransi Kesalahan di Kinesis Data Analytics for Apache Flink.

Aplikasi Kinesis Data Analytics Flink berguna untuk menulis aplikasi analitik pengaliran yang kompleks seperti aplikasi dengan semantik persis sekali pada pemrosesan data, kemampuan checkpointing, dan memproses data dari sumber data seperti Kinesis Data Streams, Kinesis Data Firehose, Amazon MSK, Rabbit MQ, dan Apache Cassandra yang mencakup Konektor Kustom.

Setelah memproses data pengaliran di aplikasi Flink, Anda dapat menyimpan data ke berbagai sink atau tujuan seperti Amazon Kinesis Data Streams, Amazon Kinesis Data Firehose, Amazon DynamoDB, Amazon OpenSearch Service, Amazon Timestream, Amazon S3, dan sebagainya. Aplikasi Kinesis Data Analytics Flink juga memberikan jaminan performa sub-detik.

Apache Beam applications for Kinesis Data Analytics

Apache Beam adalah model pemrograman untuk memproses data pengaliran. Apache Beam menyediakan lapisan API portabel untuk membangun alur pemrosesan paralel data canggih yang dapat dijalankan di berbagai mesin, atau runner seperti Flink, Spark Streaming, Apache Samza, dan sebagainya.

Anda dapat menggunakan kerangka kerja Apache Beam dengan aplikasi analitik data Kinesis Anda untuk memproses data pengaliran. Aplikasi analitik data Kinesis yang menggunakan Apache Beam memanfaatkan runner Apache Flink untuk menjalankan alur Beam.

Ringkasan

Dengan memanfaatkan layanan pengaliran AWS Amazon Kinesis Data Streams, Amazon Kinesis Data Analytics, dan Amazon Kinesis Data Firehose,

ABC4Logistics dapat mendeteksi pola anomali dalam pembacaan suhu dan memberi tahu pengemudi dan tim manajemen armada secara waktu nyata, sehingga mencegah kecelakaan besar seperti kerusakan kendaraan yang parah atau kebakaran.