在之前的文章中,我们介绍了如何查询DynamoDB数据库
查询DynamoDB第1部分
查询DynamoDB第2部分 。

除了发出查询之外,DynamoDB还提供扫描功能。 扫描所做的是获取您在DynamoDB表上可能拥有的所有项目。 因此,扫描不需要任何基于我们的分区键或您的全局/本地二级索引的规则。 扫描提供的功能是基于已获取的项目进行过滤,并从已获取的项目中返回特定属性。

下面的代码段通过添加过滤并仅选择电子邮件字段来对“登录名”表进行扫描。

public List<String> scanLogins(Date date) {List<String> emails = new ArrayList<>();Map<String, String> attributeNames = new HashMap<String, String >();attributeNames.put("#timestamp", "timestamp");Map<String, AttributeValue> attributeValues = new HashMap<String, AttributeValue>();attributeValues.put(":from", new AttributeValue().withN(Long.toString(date.getTime())));ScanRequest scanRequest = new ScanRequest().withTableName(TABLE_NAME).withFilterExpression("#timestamp < :from").withExpressionAttributeNames(attributeNames).withExpressionAttributeValues(attributeValues).withProjectionExpression("email");Map<String,AttributeValue> lastKey = null;do {ScanResult scanResult = amazonDynamoDB.scan(scanRequest);List<Map<String,AttributeValue>> results = scanResult.getItems();results.forEach(r->emails.add(r.get("email").getS()));lastKey = scanResult.getLastEvaluatedKey();scanRequest.setExclusiveStartKey(lastKey);} while (lastKey!=null);return emails;}

在对应用程序使用扫描之前,我们必须考虑到扫描会获取所有表项。 因此,它在费用和性能上都有很高的成本。 此外,它可能会消耗您的配置容量。
最好坚持查询并避免扫描。

您可以在github上找到源代码。

翻译自: https://www.javacodegeeks.com/2016/08/scan-dynamodb-items-java.html

使用Java扫描DynamoDB项目相关推荐

  1. dynamodb java_使用Java扫描DynamoDB项目

    dynamodb java 在之前的文章中,我们介绍了如何查询DynamoDB数据库 查询DynamoDB第1部分 查询DynamoDB第2部分 . 除了发出查询之外,DynamoDB还提供扫描功能. ...

  2. dynamodb容器使用_使用DynamoDBMapper扫描DynamoDB项目

    dynamodb容器使用 之前,我们介绍了如何使用DynamoDBMapper或底层Java api查询DynamoDB数据库. 除了发出查询之外,DynamoDB还提供扫描功能. 扫描的目的是获取您 ...

  3. 使用DynamoDBMapper扫描DynamoDB项目

    之前,我们介绍了如何使用DynamoDBMapper或底层Java api查询DynamoDB数据库. 除了发出查询之外,DynamoDB还提供扫描功能. 扫描的目的是获取您在DynamoDB表上可能 ...

  4. sonar扫的是class还是Java_用Sonar扫描sonar-java项目提示需要配置sonar.java.binaries参数的问题...

    今天在执行在sonar代码检查的时候报出来这么一个错: [INFO]------------------------------------------------------------------ ...

  5. dynamodb java_使用Java更新DynamoDB项

    dynamodb java 在上一篇文章中,我们继续使用Java将项目插入DynamoDB. DynamoDB还支持更新项目. 我们将使用Login表获取更新示例. 发布更新时,必须指定要更新的项目的 ...

  6. 使用Java更新DynamoDB项

    在上一篇文章中,我们继续使用Java将项目插入DynamoDB. DynamoDB还支持更新项目. 我们将使用Login表获取更新示例. 发布更新时,必须指定要更新的项目的主键. public voi ...

  7. Sonarqube 扫描maven项目

    Sonarqube 添加Maven项目 1.Maven配置文件中添加sonar maven的安装目录中修改-/conf/settings.xml文件,添加以下配置 Sonarqube配置信息修改为自己 ...

  8. IntelliJ IDEA 创建 hello world Java web Maven项目从头到尾都有图有真相2017版本

    IntelliJ IDEA使用教程 (总目录篇) 学Java的大部分吧都是要整Java web开发项目的,那么最好用的编辑器估计就是这个 IntelliJ IDEA,然后现在maven管理项目是很流行 ...

  9. Java分布式二手房项目尚好房第一课 搭建环境

    Java分布式二手房项目尚好房2.0:搭建环境 一.项目介绍 1.介绍 尚好房是一个二手房管理服务平台,开放优质资源和线上能力,聚合线上线下二手房产资源,打造一个全方位二手房服务生态市场,为消费者提供 ...

最新文章

  1. 软件工程学完java后干_软件工程学习后的一些体会--------两周
  2. oracle最新scn补丁,更新:Oracle全面修正了关于DB Link和SCN补丁的公告
  3. python基本运算
  4. 边缘计算边缘计算edge_Edge AI-边缘上的计算机视觉推理
  5. [转载] 1.1Java使用JDBC原生方式连接MySql数据库
  6. VC++ 多线程同步实例
  7. 滑雪(洛谷-P1434)
  8. android intent actionview,android – 检查Intent.ACTION_VIEW上的用户操作
  9. Ubuntu 14.04开启ssh服务
  10. 分库分表读写分离总结
  11. 优化方法总结(梯度下降法、牛顿法、拟牛顿法等)
  12. tabbar 图片太大了怎么办_设置TabBar分栏控制器上图片的大小问题
  13. erLang中的标点符号
  14. 好书推荐--《人生不设限》
  15. oracle登录连接为是什么,oracle里的连接(connection)究竟是指什么
  16. MP4文件如何转换成GIF动态图?两种方法帮你搞定
  17. Avatar——元宇宙和Web3的超级入口
  18. 企业计算机机房存在环境安全隐患,如何加强企业计算机机房管理和系统维护.doc...
  19. maxon产品手册 产品指南 中文版(2019)
  20. 交换机-Smart Link AND Monitor Link的配置

热门文章

  1. java爬虫之基于httpclient的简单Demo(二)
  2. Oracle入门(九)之用户、角色与权限之间关系
  3. SpringCloud配置中心客户端读取配置
  4. 如何求解两个数的最大公约数
  5. 使用Servlet上传多张图片——Dao层(BaseDao.java)
  6. 给定年月日计算是一年的第几天
  7. 集合打印出来的信息不是输入的信息
  8. 防止properties乱码配置---SpringBoot
  9. think-in-java(17)容器深入研究
  10. 正则表达式总结之查找