【发布时间】:2016-10-31 11:44:29
【问题描述】:
我正在尝试在 DynamoDB 中存储一堆网络测量值,但我不确定正确的分区键和范围键。我的数据将如下所示:
{
count: 33,
total: 45,
timestamp: 21231133,
data: {
key1: value1,
key2: value2,
key3: value3,
key4: value4,
key5: value5}
}
我需要能够检索时间戳介于时间戳 1 和时间戳 2 之间的数据。我将每秒存储一次数据,并以较慢的间隔(可能每 30 秒)检索一次。
我需要避免热分区并且仍然能够快速查询数据。我不想进行表扫描。
谢谢,
【问题讨论】:
-
我已经不再为这个应用程序使用 DynamoDB。
-
将数据源保留为主键,时间戳(如果您每秒获取大量数据,则以纳秒为单位)作为 SortKey,这将允许您根据每个设备独立查询数据。如果用例也是获取时间范围之间的所有数据,您可以在定义设备类型的属性上使用 GSI,您可以查询 [for type-x give me data between StartTime to Endtime] .所以每个数据包都会有 DeviceID(主键)、Timestamp(SortKey)、DataType(GSIPK),并使用 Timestamp 作为 GSISK
标签: amazon-web-services amazon-dynamodb nosql