我创建了一个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”?感谢
答案 0 :(得分:0)
在4月24日之前,您无法在查询中指定Greater Than
,Lesser Than
或Between
。但截至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版本并进行测试。