簡體   English   中英

在 DynamoDB Streams 和 Kinesis Streams 之間選擇用於 IoT 傳感器數據

[英]Choosing between DynamoDB Streams vs. Kinesis Streams for IoT Sensor data

我有 250 個支持 Wifi 的物聯網傳感器傳輸重量數據。 每個設備每秒采樣一次。 我在選擇 AWS DynamoDB Streams 和 AWS Kinesis Streams 之間請求幫助,以實時存儲和處理這些數據。 以下是一些額外的要求:

  • 我需要將所有原始數據保存在一個 SQL 可訪問的表中。
  • 我還需要使用 Python 的 Pandas 庫清理原始 stream 數據,以識別基於重量變化的設備級事件(例如,如果傳感器 #1 的重量增加,記錄為“傳感器 #1 增加了 x lbs @ XX:XX PM”如果沒有變化,什么都不做)。
  • 我需要可以在實時儀表板中訪問更改事件數據(使用來自原始數據流的庫進行解釋)(例如,設備 #1 重量剛剛變為零,提示員工重新填充容器 #1)

DDB Streams 或 Kinesis Streams 都可以支持 Lambda 函數,這是我將用於數據清理的函數,但我已經閱讀了文檔和比較文章,無法區分哪個最適合我的用例。 成本不是關鍵考慮因素。 提前致謝!!

不幸的是,我認為您需要一些基礎設施才能獲得完整的解決方案。

  1. 我認為您可以使用 Kinesis 和 firehose 寫入數據庫,以可以使用 SQL 查詢的方式存儲原始數據。
  2. 對於數據清理步驟,我認為您將需要使用有狀態的 stream 處理器,例如flinkbytewax ,然后可以將轉換后的數據寫入實時數據庫或返回到 kinesis,以便在儀表板中使用。

DynamoDB streamDynamoDB一起工作。 它流式傳輸行更改以供下游服務(如Lambda)接收 您提到要將數據存儲在 SQL 數據庫中。 DynamoDB 是一個 NOSQL 數據庫。 所以你可以排除那個服務。

不確定為什么要在 SQL 數據庫中存儲數據。 如果它是時間序列數據,您可能會將它們存儲到像TimeStream這樣的時間序列數據庫中。

如果您使用AWS IoT Core通過 MQTT 將數據發送到 AWS,您可以將這些消息轉發Kinesis Data Stream (或 SQS)。 然后,您可以 在 Kinesis 收到的消息上觸發 lambda 這個 lambda 可以處理數據並將它們存儲在你想要的數據庫中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM