如何使用DataGrip获取DynamoDB中的全部记录
如何使用DataGrip获取DynamoDB中的全部记录
嗨,我来帮你解决这个问题!你遇到的情况大概率是DataGrip默认做了返回行数限制,或者默认用了需要主键的Query操作而非全表扫描,下面给你几个可行的解决方法:
调整DataGrip的结果集限制
DataGrip为了避免一次性加载大量数据影响性能,默认会限制单次查询返回的行数。你可以这样修改设置:- 打开DataGrip的设置(点击顶部菜单栏的
File→Settings,或者用快捷键Ctrl+Alt+S) - 在左侧导航栏找到
Database→Data Views - 找到“Limit page size”(或者类似名称的选项),默认值可能是几百行,你可以把它调大到20000以上,或者直接取消勾选限制
- 保存设置后,重新打开对应的数据表,应该就能看到更多记录了
- 打开DataGrip的设置(点击顶部菜单栏的
使用DynamoDB的Scan操作全表查询
DynamoDB是NoSQL数据库,DataGrip默认的表查询可能用的是Query(需要指定主键条件),而如果要获取全表所有记录,得用Scan操作:- 在DataGrip中打开你要查询的DynamoDB表
- 切换到“Query”标签页,然后选择
Scan模式(不同版本的DataGrip可能位置略有不同,找找看有没有Scan选项) - 执行这个Scan操作,它会遍历全表返回所有记录。如果数据量特别大,DataGrip会自动分页,你可以在结果页面点击“Load more”之类的按钮加载剩余数据
用SQL语句查询(如果你的DataGrip支持)
部分版本的DataGrip支持用SQL语法查询DynamoDB,你可以直接在查询编辑器里写:SELECT * FROM 你的表名执行前记得检查查询编辑器右上角的行数限制设置,把它改成0或者去掉限制,这样就能返回全部记录了
检查权限与一致性
另外也可以确认一下DataGrip连接使用的IAM账号是否拥有dynamodb:Scan和dynamodb:Query的权限,避免因为权限不足导致部分数据无法返回。不过你已经能看到147行,权限问题可能性相对小,但也可以排查一下~
备注:内容来源于stack exchange,提问作者Owen
相关产品推荐
相关产品推荐

