问题描述
如何使用Boto python库对DynamoDB的结果进行分页?从Boto API文档中,尽管DynamoDB API确实具有分页支持,但我无法弄清它是否还支持分页。
How do I paginate my results from DynamoDB using the Boto python library? From the Boto API documentation, I can't figure out if it even has support for pagination, although the DynamoDB API does have pagination support.
推荐答案
Boto确实支持结合使用 ExclusiveStartKey和 Limit之类的分页行为。例如,要对 Scan
进行分页。
Boto does have support for "pagination" like behavior using a combination of "ExclusiveStartKey" and "Limit". For example, to paginate Scan
.
在此示例中,应按10个大块解析整个表。 / p>
Here is an example that should parse a whole table by chunks of 10
esk = None
while True:
# load this batch
scan_generator = MyTable.scan(max_results=10, exclusive_start_key=esk)
# do something usefull
for item in scan_generator:
pass # do something usefull
# are we done yet ?
else:
break;
# Load the last keys
esk = scan_generator.kwargs['exclusive_start_key'].values()
编辑:
正如@garnaat指出的那样,我可能误解了您的实际目标。上面的建议使您可以像问题一样提供分页。每页不超过15个。
As pointed out by @garnaat, it is possible that I misunderstood your actual goal. The above suggestion allows you to provide pagination like SO does for questions for example. No more than 15 per pages.
如果您只需要一种方法来加载给定的 Scan
,Boto是一个很棒的库,并且已经像您的答案中那样,不需要黑魔法就为您抽象了此库。在这种情况下,您应该遵循他(@garnaat)的建议。顺便说一句,他是Boto的作者,因此,是Boto相关问题的很好的参考:)
If you just need a way to load the whole result set produced by a given Scan
, Boto is a great library and already abstracts this for you with no need for black magic like in my answer. In this case, you should follow what he (@garnaat) advises. Btw, he is the author of Boto and, as such, a great reference for Boto related questions :)
这篇关于使用Boto在Amazon DynamoDB中进行分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!