![](/img/trans.png)
[英]AWS: Transforming data from DynamoDB before it's sent to Cloudsearch
[英]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.