DynamoDBMapper 负载与查询

2024-03-22

DynamoDBMapper 提供了从表中读取一项的不同方法:

  • query
  • load

有推荐吗,该使用哪一个?在快速测试中,以下两个代码片段对于主键 = 哈希和范围键 = 日期的表返回相同的“MyEntry”项,而查询方法大约快 10%。

load

public MyEntry getEntryForDay(final Integer hash, final LocalDate date) {
    return mapper.load(MyEntry.class, hash, date);
}

query

public MyEntry getEntryForDay(final Integer hash, final LocalDate date) {
    final MyEntry hashKeyValues = new MyEntry ();
    hashKeyValues.setHash(hash);
    final Condition rangeKeyCondition = new Condition()//
            .withComparisonOperator(ComparisonOperator.EQ.toString())//
            .withAttributeValueList(new AttributeValue().withS(new LocalDateMarshaller().marshall(date)));
    final DynamoDBQueryExpression<MyEntry> queryExpression = new DynamoDBQueryExpression<MyEntry>()//
            .withHashKeyValues(hashKeyValues)//
            .withRangeKeyCondition("date", rangeKeyCondition)//
            .withLimit(1);
    final List<MyEntry> storedEntries = mapper
            .query(MyEntry.class, queryExpression);
    if (storedEntries.size() == 0) {
        return null;
    }
    return storedEntries.get(0);
}

加载和查询是不同的操作:

如果您只有哈希键架构,它们会执行相同的操作 - 检索具有指定哈希键的项目。

如果您有哈希范围架构,则加载会检索由单个哈希+范围对标识的特定项目。查询检索具有指定哈希键并满足范围键条件的所有项目。

由于您对哈希键和范围键都使用相等运算符,因此操作完全相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DynamoDBMapper 负载与查询 的相关文章

  • DynamoDB - 新放入的项目未反映在扫描中

    我在 DynamoDB 扫描方面遇到问题 我使用以下命令将新项目添加到表中putItem method AmazonClientManager ddb putItem request 但是 当我尝试使用扫描方法进行扫描时 该项目不会出现在结
  • 查询 DynamoDB

    我有一个 DynamoDB 表 其中一个字母数字字符串作为哈希键 例如 d4ed6962 3ec2 4312 a480 96ecbb48c9da 我需要根据表中的另一个字段查询表 因此我需要查询来选择所有键 例如我的字段 x 位于 dat
  • DynamoDBScanExpression withLimit 返回的记录多于限制

    必须列出 DynamoDB 表中的所有记录 无需任何过滤表达式 我想限制记录数量 因此将 DynamoDBScanExpression 与 setLimit 结合使用 DynamoDBScanExpression scanExpressio
  • 无法使用 python 从 AWS dynamodb 获取_item?

    我是 dynamodb 的新手 试图从 dynamodb 获取数据 这是我的表 其中 主题 作为主哈希键 https i stack imgur com GVoXN jpg 我的Python代码 import boto3 from boto
  • 按优先级和组值对结果进行排序,然后过滤结果

    这是我的 DynamoDB 当前数据 我的目标是创建一个查询 该查询过滤组集中的结果 类似于 默认 然后按优先级排序 然后将结果过滤到loggedIn true和status idle的结果 在 SQL 中它会是这样的 SELECT FRO
  • 使用 Python 删除所有 DynamoDB 项目

    如何使用 python boto3 删除 DynamoDB 中的所有项目 我正在尝试这样做 scan table scan with table batch writer as batch for each in scan Items ba
  • 如何存储我正在开发的 Alexa 技能的数据?

    我目前正在开发一项基于医疗保健的 Alexa 技能 所以我需要存储有关疾病 诊断和症状的信息 我已经掌握了一项基本技能 包括在一个文件中包含有关一种疾病的信息 制作了一个 zip 文件 将其上传到 AWS Lambda 并获得了 Amazo
  • AWS DynamoDB 查询不过滤 BOOL 值

    我有一个使用 GUI 创建的用户表 并给出了电子邮件分区键 它是一个字符串 然后我使用 aws lambda 来做一个 putItem 它有 email string email protected cdn cgi l email prot
  • DynamoDB 如何同时支持 Key-Value 和 Document 数据库属性

    根据 DynamoDB 的文档 它支持 NoSQL 的键值和面向文档的属性 即使其他 NoSQL 数据库仅属于一种类型 键值 文档 图形或面向列 它还说 Amazon DynamoDB 基于 Dynamo 的原则构建 3 是 AWS 基础设
  • 带有前缀的 DynamoDB 和 TableNameOverride

    我正在测试 DynamoDB 表 并希望使用前缀 dev 为生产和开发环境设置不同的表名称以进行开发 我做了这个测试来打印表名称 import com amazonaws services dynamodbv2 datamodeling D
  • 检索 DynamoDB 上以指定文本开头的列的所有项目

    我在 DynamoDB 中有一个表 Id int hash key Name string 还有很多列 但我省略了 通常 我只是根据项目的 ID 提取和更新项目 这个模式非常适合这种情况 然而 要求之一是有一个基于名称的自动完成下拉框 我希
  • DynamoDB 触发器 Lambda 函数问题:函数调用失败

    我在 dynamoDB 表上启用了流 当项目被修改时 会触发 lambda 函数 我认为我在 lambda 触发器端 权限和 dynamodb 端都正确设置了所有内容 我还使用测试数据运行了 lambda 函数 并且成功了 但是 当修改表中
  • 使用 Swift 3 的 DynamoDB 中的保留关键字 ExpressionAttributeValues

    我能够在没有 status 接受表达式属性值的情况下获得响应 但是有了它 当我在projectionExpression 行中使用 status 时 我收到以下错误 状态是 DynamoDB 中的保留字 因此我必须添加主题标签有每https
  • Heroku Dynos 是否享受 AWS 网络内的免费数据传输?

    我正在考虑将 Heroku 用于 NodeJS 应用程序 我想知道他们的 Dynos 是否享受 AWS 网络内的免费内部数据传输 我想使用 DynamoDB ElastiCache RDS SQS 和许多其他 AWS 产品 如果我可以从 H
  • 如何使用dynamoose查询本地dynamoDB?

    作为一名开发人员 我不想一直连接到 Amazon Web 服务 我在本地计算机上安装了 DynamoDB 引用了AWS Docs https docs aws amazon com amazondynamodb latest develop
  • 检查 DynamoDB 中是否存在表的最佳方法是什么?

    检查 DynamoDb 中是否存在表的最佳方法是什么 如果代码是 PHP 语言 我将不胜感激 要么活跃 要么不活跃 稍后作为错误代码 400 的各种情况的示例添加 检查表是否存在很容易 它可以有以下之一 表状态 gt 创建 活动 删除或更新
  • 获取 emr-ddb-hadoop.jar 将 DynamoDB 与 EMR Spark 连接

    我有一个 DynamoDB 表 需要将其连接到 EMR Spark SQL 才能对该表运行查询 我获得了带有发行标签 emr 4 6 0 和 Spark 1 6 1 的 EMR Spark Cluster 我指的是文档 使用 Spark 分
  • AWS Lambda 调用错误未触发 SQS 死信队列

    我有一个 AWS Lambda 函数 它订阅 DynamoDB 流并配置了SQS 死信队列 DLQ https docs aws amazon com lambda latest dg dlq html 我可以看到管理控制台中配置了正确的队
  • DynamoDB 中条件写入的日期时间比较

    我目前正在使用 DynamoDB 如果该记录的日期早于新记录日期字段 我想使用条件写入来更新该记录 有没有办法比较条件写入的 DateTime 类型 或者目前仅适用于整数 字符串和流 Thanks 既然你提到你正在使用ISO 8601 ht
  • 更新 DynamoDB 中的多条记录

    如何在单个查询中更新 DynamoDB 中的多条记录 我有一个 csv 文件作为基于 csv 文件的输入 我必须更新数据库中的多条记录 只有一个属性 有可用的 API 吗 或者这可以使用批处理 Spring batch 来完成 Dynamo

随机推荐