问题标签 [dynamodb-mapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
450 浏览

amazon-dynamodb - 调用 DynamoDBMapper 的负载时出现 SocketTimeoutException

调用 DynamoDBMapper 的加载时有时会出现此错误:

我有 2 次 PUT /latest/api/token 超时,然后我得到响应。我不确定到底出了什么问题或为什么有时会出现这种行为,但这会导致我的应用程序出现延迟。

我需要修改设置中的某些内容吗?它与 DynamoMapper 有关吗?我应该使用低级 Dynamo API 吗?

0 投票
0 回答
493 浏览

java - DynamoDBTypeConverter 未按预期工作

首先,正确运行的代码: DynamoDB 表中的内容是:

实体 POJO 具有:

使用适当的 getter 和 setter 方法。转换器类是:

它有效!

但是当我将 DynamoDB 项目更改为:

和我的 POJO 对象:

和转换器类是这样的:

}

它抛出:

我在网上找到的类似示例据称有效,但我的示例无效。我错过了什么,请帮忙?

0 投票
1 回答
197 浏览

amazon-dynamodb - DynamoDB 删除现有属性并添加新属性

我们有一个现有的 DynamoDB 表,该表具有非关键属性“最新”。我们希望从现在开始使用另一个名为“latestV2”的新项目删除此属性。只是将模型类中的属性替换为较新的一项工作,还是我们需要保留它们并且不再设置旧的。当前模型类:

这会起作用吗:

底层的 setter/getter setlatest()/getlatest() 也应该适用于新的 attributeName。问题是,当加载任何带有旧“最新”标志的旧项目为真时,由于该属性不再建模,它会破坏代码吗?

或者我们应该在 Model 类中同时拥有这两个属性,并且只更改旧属性的变量名称,以便它永远不会像这样再次设置/获取:

0 投票
1 回答
290 浏览

java - 如何使用多个索引查询 DynamoDB?

我在 DynamoDB 中有一个表,我有一个主键和两个全局共享索引。例如,表结构如下。

所以我需要的是我需要知道如何在withKeyConditionExpression.

我需要按以下场景过滤数据,

  1. S1PK = :v1 and SK = :v4 and S2PK = :v2 and S2SK <= :v3
  2. S2PK = :v1 and S2SK >= :v2 and S1SK <= :v2

那么我该怎么做呢?如果我将上述查询放入withKeyConditionExpression其中,则会引发错误。那么有没有办法一次查询带有主键和二级索引的表呢?我在这里做错了什么?如果有人可以帮助我,我真的很感激。提前致谢。

0 投票
1 回答
641 浏览

java - 如何通过从 DynamoDB 中的非关键属性中搜索来获取一项?

我在 DynamoDB 中有一个表,并且有分区键和排序键。例如,表结构如下。

假设表中有两个项目,

Java用作语言并DynamoDBMapper用于执行 CRUD 操作。所以我知道我可以通过提供andDynamoDBMapper.load()来获取一项,但我想知道如何通过搜索非关键属性来获取数据。例如,我需要通过提供一次获得一个项目,PKSK

以上是我的一些访问模式,基本上,我需要在不提供 PK 和 SK 的情况下获取数据,而且我不能使用全局二级索引。所以我知道有查询。但我想知道没有那个有什么办法可以做我需要的吗?如果有人可以帮助我,我真的很感激。提前致谢。

0 投票
1 回答
384 浏览

amazon-dynamodb - DynamoDBMapper 如何在不分页的情况下获取所有项目

我在 DDB 中存储了大约 780K(计数)个项目。

我正在调用 DynamoDBMapper.query(...) 方法来获取所有这些。结果很好,我可以得到所有的项目。但我花了 3 分钟才拿到它们。

从日志中,我看到 DynamoDBMapper.query(...) 方法正在尝试逐页获取项目,每个页面将请求对 DDB 的单独查询调用,每页大约需要 0.7 秒。我统计了所有返回的项目有 292 页,所以总时长约为 0.7*292=200s,这是不可接受的。我的代码基本上如下:

那么如何在不分页的情况下一次获取所有项目。我的最终目标是减少查询持续时间。

0 投票
1 回答
354 浏览

java - 如何在 DynamoDB 中使用包含函数和 DynamoDBMapper Java?

我需要检查具有contains功能的数据列表是 DynamoDB。以下是我的Java代码,

我将上面的列表插入到名为 Data 的 JSON 中。

我使用了上述方法,但它不起作用。我需要的是,如果任何列表值包含在 dynamo db 插入的列表值中,我需要过滤数据。列表数据在 Json 中。那么我在这里做错了什么?有谁能够帮助我?提前致谢。

0 投票
0 回答
131 浏览

java - 有没有办法使用 DynamoDB Mapper 更新 DynamoDB 中的嵌套属性

我有一个带有嵌套属性的 DynamoDB 模式。因此,让我们说下面是我的映射器结构。

现在这将导致如下模式:

我正在使用 Dynamo DB Mapper 来更新这个对象。dynamo DB Mapper 配置如下:

这样做是为了使保存操作忽略空/未更新的字段。

但是,根据我的观察,此配置仅适用于“测试”类中的原始数据类型,不适用于映射器(Test.java)中定义的自定义 DynamoDBDocument(MyClass)。每当我尝试更新 MyClass 对象时,如果我尝试仅更改“myName”,“mySubject”将设置为 null,这会覆盖其旧值,这意味着“update_skip_null_attributes”无法在 DynamoDBDocument 上运行。

如何更改嵌套 json 上的此更新行为。?

任何帮助将不胜感激。

0 投票
1 回答
191 浏览

java - 通过 DynamoDbMapper 从 Dynamodb 返回动态对象

我正在使用 dynamodb 来存储数据,它可以有各种数据类型,如字符串、数字和 json。map 可以根据 id 有不同的键,因此,它的结构是事先不知道的。

有没有办法让我通过 Dynamodbmapper 检索它?对于其他属性,Java 数据类型(如String, )Long有效,但对于Map或者更确切地说是 a json,我最终得到一个解析错误。我尝试过像这样的数据类型JsonNode

是否有注释或 java 数据类型可以做到这一点?或者我应该回滚到原来的 dynamodb 客户端而不是使用映射器?

0 投票
1 回答
1910 浏览

amazon-web-services - DynamoDBMapper 和 Table for DynamoDB 表有什么区别

在 AWS DynamoDB 中,有两个选项可用于对表执行 CRUD 操作。

DynamoDBMapper:。 com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper;_

表: com.amazonaws.services.dynamodbv2.document.Table;

两者似乎都执行相同的操作。

DynamoDBMapperTable之上的一层吗?如果是这样,使用它们有什么区别?