如何在boto dynamo2查询中指定组合范围键条件?

时间:2014-04-24 16:42:14

标签: python-2.7 range amazon-dynamodb

我创建了一个DynamoDB表,其中包含日志消息,每个消息都有一个与之关联的时间戳:

table = Table.create('myTable',
                      schema=[
                         HashKey('cluster'),
                         RangeKey('messageTimestamp', data_type=NUMBER)],
                      throughput={'read': 10,
                                  'write': 5},
                      connection=conn)

我知道如何查询表以获取时间戳晚于给定时间戳的所有项目:

tThresh = time.time()
results = table.query(cluster__eq="clusterA", messageTimestamp__gte=tThresh)

(“集群”散列键值大部分是常数,即消息仅来自两个不同的集群)

是否可以构造一个查询来获取所有带有“之前和之后”时间戳的项目,即基本上在一个查询中组合“gte”和“lte”?感谢

1 个答案:

答案 0 :(得分:0)

在4月24日之前,您无法在查询中指定Greater ThanLesser ThanBetween。但截至4月24日,AWS DynamoDB已更新其API以允许这些高级运营商。

http://aws.typepad.com/aws/2014/04/improved-queries-and-updates-for-dynamodb.html

我已经确认这些运营商正在为Java SDK 1.7.7工作,但是对于boto,我猜测boto API也已更新,您应该更新到最新的API版本并进行测试。