Nosql timeseries数据的dynamodb访问模式

Nosql timeseries数据的dynamodb访问模式,nosql,amazon-dynamodb,dynamodb-queries,Nosql,Amazon Dynamodb,Dynamodb Queries,在AWS dynamodb文档中,它们描述了在dynamodb()中存储timeseries数据的最佳实践 当您需要以下访问模式时,访问此数据的最佳做法是什么: 获取两个数据范围之间的行,这两个数据范围不是像一小时或一周这样的孔单位。例如,从2019-11-03 22:01:50到2019-11-04 04:10:35。因为您不能查询hashkey,而插入一个伪hashkey听起来是个坏主意。如果我使用2019-11-03作为主键,那么我必须先查询2019-11-03,然后查询2019-11-

在AWS dynamodb文档中,它们描述了在dynamodb()中存储timeseries数据的最佳实践

当您需要以下访问模式时,访问此数据的最佳做法是什么:

  • 获取两个数据范围之间的行,这两个数据范围不是像一小时或一周这样的孔单位。例如,从2019-11-03 22:01:50到2019-11-04 04:10:35。因为您不能查询hashkey,而插入一个伪hashkey听起来是个坏主意。如果我使用2019-11-03作为主键,那么我必须先查询2019-11-03,然后查询2019-11-04,这听起来也是一个糟糕的解决方案

我不会将多个查询称为“糟糕”的解决方案

事实上,由于您应该能够并行地执行这些操作,所以总体响应时间可能比使用单个查询时要短

您不提供每秒写入/读取次数的任何估计值,也不提供是否有其他访问要求;所以很难说什么最有效

我将指出,AWS时间序列示例支持流入表中的大量数据

如果您的卷没有那么高,您可能可以将哈希键设置为
YYYY-MM
,而不是
yyy-MM-DD
。然后排序键将是
DD HH:MM:SS.xxxxxx


如果您跨月查询,仍然需要多个查询

我预计每天写入新数据的次数不到1000次,而读取数据的次数为每天100次。您可能会争辩说,在这种数据大小下,对所有行使用像“#”这样的伪哈希键,然后将时间戳作为sortkey可能是一种可行的选择。这将得到期望的结果。但我认为这不会很好地扩展。因为所有数据都将放在一个分区上。