情境 4:裝置感應器即時異常偵測和通知
ABC4Logistics 公司將汽油、液化丙烷 (LPG) 和石腦油等高度易燃的石油產品從港口運往各個城市。數以百計的車輛安裝了多個感應器,用於監控位置、引擎温度、容器內温度、行駛速度、停車位置、道路狀況等資料。ABC4Logistics 的其中一個要求是即時監控引擎和容器的温度,並在發生任何異常情況時向駕駛員和車隊監控團隊發送提醒。為了即時偵測此類情況並產生提醒,ABC4Logistics 在 AWS 上實作以下架構。

ABC4Logistics 的裝置感應器即時異常偵測和通知架構
來自裝置感應器的資料由 AWS IoT 閘道擷取,AWS IoT 規則引擎將在 Amazon Kinesis Data Streams 中提供串流資料。ABC4Logistics 可以透過 Kinesis Data Analytics,對 Kinesis Data Streams 中的串流資料執行即時分析。
ABC4Logistics 可以使用 Kinesis Data Analytics,偵測感應器的温度讀數是否在十秒內偏離正常讀數,並將記錄擷取到另一個 Kinesis Data Streams 執行個體中,從而識別異常記錄。然後,Amazon Kinesis Data Streams 會叫用 Lambda 函數,這些函數可以透過 Amazon SNS,將提醒傳送給駕駛員和車隊監控團隊。
Kinesis Data Streams 的資料也被推送到 Amazon Kinesis Data Firehose。Amazon Kinesis Data Firehose 將這些資料保存在 Amazon S3 中,允許 ABC4Logistics 對感應器資料執行批次或近乎即時的分析。ABC4Logistics 使用 Amazon Athena
接下來詳細介紹了此架構的重要組件。
Amazon Kinesis Data Analytics
Amazon Kinesis Data Analytics
您可以藉助 Amazon Kinesis Data Analytics,使用多個選項以互動方式查詢串流資料,包括標準 SQL、Java、Python 和 Scala 中的 Apache Flink 應用程式,並使用 Java 建置 Apache Beam 應用程式來分析資料串流。
這些選項為您提供使用特定方法的靈活性,具體取決於串流應用程式和來源/目標支援的複雜程度。以下章節討論了適用於 Flink 應用程式的 Kinesis Data Analytics 選項。
Apache Flink 應用程式的 Amazon Kinesis Data Analytics
Apache Flink
您可以藉助適用於 Apache Flink 的 Amazon Kinesis Data Analytics,針對串流來源編寫和執行程式碼,以執行時間序列分析、提供即時儀表板以及建立即時指標,而無需管理複雜的分散式 Apache Flink 環境。您可以使用與自行託管 Flink 基礎設施的相同方式,使用高層級的 Flink 程式設計功能。
Apache Flink 的 Kinesis Data Analytics 使您能夠在 Java、Scala、Python 或 SQL 中建立應用程式來處理和分析串流資料。典型的 Flink 應用程式從輸入串流或資料位置 (也就是來源) 讀取資料,使用運算子或函數轉換/篩選條件或連接資料,並將資料存放在輸出串流或資料位置 (也就是接收)。
下面的架構圖表顯示 Kinesis Data Analytics Flink 應用程式支援的一些來源和接收。除了用於來源/接收的預先搭售連接器之外,您還可以將自訂連接器導入 Kinesis Data Analytics 上 Flink 應用程式的各種其他來源/接收。

Apache Flink 應用程式在 Kinesis Data Analytics 中實現即時串流處理
開發人員可以使用他們偏好的 IDE 開發 Flink 應用程式,並透過 AWS Management Console
Amazon Kinesis Data Analytics Studio
作為 Kinesis Data Analytics 服務的一部分, Kinesis Data Analytics Studio
您可以使用 Studio 筆記本,在筆記本環境中開發 Flink 應用程式程式碼,即時檢視程式碼的結果,並在筆記本中進行視覺化。您可以透過在 Kinesis Data Streams 和 Amazon MSK 主控台點擊,來建立由 Apache Zeppelin 和 Apache Flink 提供支援的 Studio 筆記本,也可以從 Kinesis Data Analytics 主控台進行啟動。
作為 Kinesis Data Analytics Studio 的一部分反覆開發程式碼後,您可以將筆記本作為 Kinesis Data Analytics 應用程式進行部署,在串流模式下連續執行,從來源讀取資料,寫入目的地,維護長時間執行的應用程式狀態,和根據來源串流的輸送量來自動擴展。稍早,客户將 Kinesis Data Analytics 用於 SQL 應用程式,對 AWS 上的即時串流資料進行此類互動式分析。
SQL 應用程式的 Kinesis Data Analytics 仍然可用,但若是新專案,AWS 建議您使用新的 Kinesis Data Analytics Studio
為了使 Kinesis Data Analytics Flink 應用程式具有容錯能力,您可以使用檢查點和快照,如對 Apache Flink 的 Kinesis Data Analytics 實作容錯中所述。
Kinesis Data Analytics Flink 應用程式可用於編寫複雜的串流分析應用程式,例如具有資料處理精確一次語意
在 Flink 應用程式中處理串流資料後,您就可以將資料保存到各種接收或目的地,如 Amazon Kinesis Data Streams、Amazon Kinesis Data Firehose、Amazon DynamoDB、Amazon OpenSearch Service、Amazon Timestream、Amazon S3 等。Kinesis Data Analytics Flink 應用程式還提供低於毫秒級的效能保證。
用於 Kinesis Data Analytics 的 Apache Beam 應用程式
Apache Beam
您可以將 Apache Beam 架構與 Kinesis Data Analytics 應用程式結合使用,以處理串流資料。使用 Apache Beam 的 Kinesis Data Analytics 應用程式使用 Apache Flink 執行程式
總結
透過使用 AWS 串流服務 Amazon Kinesis Data Streams、Amazon Kinesis Data Analytics 和 Amazon Kinesis Data Firehose,
ABC4Logistics 可以偵測温度讀數中的異常模式,並即時通知駕駛員和車隊管理團隊,防止車輛完全故障或火災等重大事故。