Rya*_*yan 8 amazon-web-services nosql amazon-dynamodb
我需要有一种方法来按时间戳排序项目,所以我正在考虑使用公共哈希键和unix时间戳作为范围键.
根据FAQ:
When storing data, Amazon DynamoDB divides a table into multiple partitions and
distributes the data based on the hash key element of the primary key. The provisioned
throughput associated with a table is also divided among the partitions; each
partition's throughput is managed independently based on the quota allotted to it.
There is no sharing of provisioned throughput across partitions.
Run Code Online (Sandbox Code Playgroud)
由于我使用的是公共哈希密钥,因此不会出现不均匀的负载分配 - 因为所有负载都将进入单个分区.
因此,当我配置100 write到这个分区时,将使用所有容量,那么我认为这是一件好事,因为容量没有被浪费?
您可以将写入和读取配置到DynamoDB表,而不是分区.您的容量在分区之间传播/共享,但由于底层硬件,每个分区也具有固定的速率限制.
通过使用单个哈希键,无论您配置和支付多少,您都可以对表上实际执行的读写数量进行固定限制.
您无法将其扩展到该限制之上,因为dynamodb无法进一步对您的表进行分区以并行化负载处理,这是AWS随着您的配置数量增加而扩展系统的主要方式之一.
您可能最初不会达到此限制,但亚马逊建议不要使用此方法,因为亚马逊希望您以可扩展的方式使用AWS.
在你的情况下,一个常见的技巧是
hash_key=%Y-%m-%d (日间时间戳)range_key=iso-8601_timestamp+uuid通过这种方式,您的数据按天划分为分区(假设从一天到另一天的负载相当均匀),但是范围键允许query使用BETWEEN条件进行非常精细的调用.这uuid部分用于区分(完全)同时插入的记录.
| 归档时间: |
|
| 查看次数: |
4745 次 |
| 最近记录: |