【发布时间】:2014-09-26 20:07:57
【问题描述】:
我有一个简单的 dynamodb2 表,其中包含 task_names(字符串)及其开始时间(数字/浮点数)。如何获取开始时间大于给定数字 X 的所有记录? 目前,我尝试将开始时间作为全局二级索引并使用以下内容:
table hashkey 是 task_name,range key 是开始时间。 我在 start_time (start_time-index) 上做了一个二级全局索引,并用它来查询下面。
recs =tab.query(start_time__gte=1, index='start_time-index')
但是,它说:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/dynamodb2/results.py", line 62, in __next__
self.fetch_more()
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/dynamodb2/results.py", line 146, in fetch_more
results = self.the_callable(*args, **kwargs)
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/dynamodb2/table.py", line 1132, in _query
**kwargs
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/dynamodb2/layer1.py", line 1522, in query
body=json.dumps(params))
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/dynamodb2/layer1.py", line 2100, in make_request
retry_handler=self._retry_handler)
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/connection.py", line 937, in _mexe
status = retry_handler(response, i, next_sleep)
File "/nail/home/osarood/work/.venv/local/lib/python2.7/site-packages/boto/dynamodb2/layer1.py", line 2140, in _retry_handler
response.status, response.reason, data)
boto.dynamodb2.exceptions.ValidationException: ValidationException: 400 Bad Request
{u'message': u'Query key condition not supported', u'__type': u'com.amazon.coral.validate#ValidationException'}
【问题讨论】:
-
你的
start_time属性是什么类型的? -
它是一个数字。基本上是纪元时间。
标签: amazon-dynamodb boto