我们正在对 dynamoDB 表进行扫描,示例代码如下。 看起来扫描将扫描整个表以获取记录,是否有任何优化的方法来更新下面的代码,以便它可以在巨大的数据集上工作。
import boto3
dynamodb = boto3.resource('dynamodb', region_name=region)
table = dynamodb.Table('my-table')
response = table.scan()
data = response['Items']
while 'LastEvaluatedKey' in response:
response = table.scan(ExclusiveStartKey=response['LastEvaluatedKey'])
data.extend(response['Items'])
如果你不提及你想要获取什么具体数据,就没有办法优化。
扫描将始终读取所有数据,如果这不是您的目标,那么您可以使用
GetItem
或 Query
来提高效率。
我建议花一个小时阅读文档来熟悉 API。