带时间戳的范围键。使用DynamoDB进行查询和分页

时间:2012-09-04 16:22:12

标签: c# amazon-web-services amazon-dynamodb

我很困惑。我应该如何设计DynamoDB表以使用带分页的时间戳的反向顺序有效地查询项目?

我知道我可以使用ScanIndexForward并使用LimitLastEvaluatedKey进行查询,但指南说:“查询结果始终按范围键排序,基于ASCII字符代码值“

范围键应该包含什么?现在我正在使用reverseTimestamp,但我不确定这个:

var request = new QueryRequest()
    .WithTableName("Output")
    .WithLimit(25)
    .WithScanIndexForward(false)
    .WithExclusiveStartKey(new Key { HashKeyElement = new AttributeValue {S = "1"}, 
     RangeKeyElement = new AttributeValue {S = lastKeyEvaluated} })

将返回表格中的25个最新项目

1 个答案:

答案 0 :(得分:2)

在Python的DynamoDB-Mapper中,我们将所有日期序列化为“W3C日期/时间格式”AKA“RFC 3339”。在使用UTF-8文本排序时,它具有以正确顺序对时间进行排序的良好属性。另一个副作用是使用时间戳存储tz信息。