如何用PartiQL获取DynamoDB表全量记录,无需点击“继续搜索”
在DynamoDB获取全表记录的解决办法
首先明确:DynamoDB控制台的查询/扫描界面本身没办法一次性加载所有记录,它默认会分页返回(你遇到的31行是因为单次返回的数据量或条目数触发了分页阈值),必须通过"继续搜索"加载下一页。但要获取全表所有记录,有两种可行方案:
方案1:用SDK/API循环执行Scan操作
DynamoDB的Scan API单次最多返回1MB数据或1000条条目,超过的话会返回LastEvaluatedKey,你可以用这个值作为下一次Scan的ExclusiveStartKey,循环执行直到LastEvaluatedKey不存在,就能拿到所有数据。
举个Python SDK的示例:
import boto3 dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('你的表名') response = table.scan() items = response['Items'] while 'LastEvaluatedKey' in response: response = table.scan(ExclusiveStartKey=response['LastEvaluatedKey']) items.extend(response['Items']) # 现在items里就是全表所有记录
方案2:用DynamoDB控制台的导出功能
如果不想写代码,可以直接在控制台导出全表数据:
- 进入目标表的"导出"标签页
- 选择导出到S3桶,配置好导出参数(比如导出所有数据、时间范围等)
- 等待导出完成后,从S3下载完整的数据文件
内容的提问来源于stack exchange,提问作者rj2
相关产品推荐
相关产品推荐

