Amazon DynamoDB會將一個table切成好幾個partition, 而整個table的throughput會平均分配給各個partition. Total provisioned throughput/partitions = throughput per partition 不過partition然而在今年的AWS re:Invent, Amazon DynamoDB: Data Modeling and Scaling Best Practices的講者終於揭開了partition的奧秘! 剛剛查了一下官方文件不知何時也更新囉! Partition的個數跟table的資料量(大小)以及讀寫的provision throughput有關. 若是你的RCU和WCU都是1000, ( 1000 / 3000 ) + ( 1000 / 1000 ) = 1.333 那你的table就會需要兩個partition, 分別有500的RCU和WCU. 依照公式可以看出, 若是我們的資料量不大而且需要的讀寫量(單筆資料&頻率)不高, 其實table是不會被切成多個partition哦!. 所以不用擔心存取資料(key)不夠分散, 某些狀況下可以好好利用這點. 另外講者也提到一些實際應用上的小技巧, 針對熱門的read item像是拍賣主打的商品資料要cache來降低花費(減少需要的throughput) 針對熱門的write item像是投票系統的候選人則是要自行把候選人切成多個key讓寫入能夠分散 (投票的人數多過於候選人, 且票數常常是集中在固定幾個人身上) 不錯的影片, 有在用DynamoDB的人值得看看啦!跟思念一樣都是很玄的東西, Amazon DynamoDB的官方文件只輕描淡寫的說是依照hash key來決定item是屬於哪個partition, 我們無從得知我們的table實際上被切成幾個partition.
Sunday, December 07, 2014
Amazon DynamoDB - Data Modeling and Scaling Best Practices | AWS re:Invent 2014
前情提要:
Subscribe to:
Posts (Atom)