我试图在DynamoDB中存储一组网络度量,并且我不确定正确的分区键和范围键。我的数据将如下所示:
{
count: 33,
total: 45,
timestamp: 21231133,
data: {
key1: value1,
key2: value2,
key3: value3,
key4: value4,
key5: value5}
}我需要能够检索在timestamp1和timestamp2之间有时间戳的数据。我将每秒钟存储数据,并以较慢的间隔(可能每30秒)进行检索。
我需要避免热分区,并仍然能够快速查询数据。我不想做表格扫描。
谢谢,
发布于 2016-06-29 09:02:30
基于问题中提到的查询模式,我认为“时间戳”属性应该是分区键。当将属性定义为字符串、数字或二进制时,可以在运算符之间使用。
在这个表数据上,我看不到任何可以用作范围键的属性,除非您有任何其他查询模式或用例。
介于:大于或等于第一个值,小于或等于第二个值。AttributeValueList必须包含两个相同类型的AttributeValue元素,要么是字符串、数字,要么是二进制(不是set类型)。如果目标值大于或等于第一个元素,小于或等于第二个元素,则目标属性匹配。如果项包含与请求中提供的类型不同的AttributeValue元素,则该值不匹配。例如,{"S":"6"}不能与{"N":"6"}相比。此外,{"N":"6"}与{"NS":"6“、"2”、"1"}相比
https://stackoverflow.com/questions/38088208
复制相似问题