[英]Modeling data in NoSQL DynamoDB
我試圖弄清楚如何在AWS DynamoDB表中對以下數據建模。
我有很多物聯網設備,每個設備每隔幾秒鍾發送一次遙測數據。
我知道我可以為每個屬性添加GSI,但是我只想在沒有其他選擇的情況下使用GSI,因為這會花費我更多的錢。
什么是主主鍵(partition-key:sort-key)?
請分享您的想法,因為我想學習如何思考和考慮什么,而不是為特定問題提供答案,因此我更關心它們而不是完美答案。
非常感謝 !
如果您絕對需要提到的可查詢性模式,則別無選擇,只能為每個模式創建GSI。 這也有一些警告:
incident_date
(或其他)作為分區鍵,而device_id
是排序鍵。 根據您的訪問模式,這可能導致DynamoDB中的熱分區。 在評估在給定情況下使用NoSQL的利弊時,需要同時考慮讀寫訪問模式。 因此,您應該問的問題是,為什么要使用DynamoDB?
例如,您真的需要實時查詢嗎? 如果沒有,您可以將DynamoDB用作主數據庫,並定期將數據(使用AWS Lambda或Kinesis Firehose)同步到EMR或Redshift,以進行后續批處理。
編輯 :建議的主鍵:
device_id
作為分區鍵和incident_date
作為排序鍵, 如果你知道,沒有2個或更多的事件,對於給定device_id
,可以來在精確的同一時間。 incident_id
作為分區鍵,將incident_date
作為排序鍵。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.