簡體   English   中英

在存儲到aws dynamodb之前分離iot設備發送的數據?

[英]Seperating data sent by iot device before storing in aws dynamodb?

我嘗試實現一個特定的功能來將物聯網數據存儲在 aws dynamodb 中。 設備要發送的JSON數據的結構是這樣的:

{'deviceid':123,'time':[t1,t2,t3,t4,t5],'voltage':[v1,v2,v3,v4,v5]}

每個電壓值都對應其時間值。 我希望它以這種格式存儲在 dynamodb 中

設備ID 時間 電壓
123 t1 v1
123 t2 v2
123 t3 v3
123 t4 v4
123 t5 v5

我將使用 device_id 和 time 作為我的主鍵和排序鍵。 一點幫助將不勝感激!

Lambda 最適合這里。 讀取 lambda 中的 JSON 數據,並像您一樣將其保存在 DynamoDB 中。 普通的 JSON 處理和 DynamoDb api 調用應該足夠好

考慮到您正在從 IoT 設備收集數據,並且當前使用 dynamodb 的設置運行良好。 但是您還應該考慮其他選項,例如 Kinesis Firehose/Streams,以提高成本效率和性能。

假設您將有大量來自設備的數據點,這將導致大量數據。 Dynamodb 是性能良好的 nosql 數據庫,但從長遠來看,它可能是相當昂貴的解決方案。 特別是在 Dynamodb 中寫入非常昂貴,掃描查詢也是如此。

另一種設計可能是:

IoT Core -> Kinesis Firehose(+ record transformation lambda) -> S3 buckets

您可以將事件發送到 Kinesis Firehose。 由於您想將記錄拆分為多個記錄,您可以實現 lambda function 並在 firehose 轉換中調用它。 您可以將目標定義為 S3 目標,select 將數據格式定義為 parquet/ORC 和壓縮技術。

暫無
暫無

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

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