使用 DynamoDBMapper/DynamoDbTable 在 DynamoDB 中插入未知属性

问题描述 投票:0回答:1

我使用

DynamoDBMapper
将数据插入 dynamoDB 表中。

对于数据,我有一个相应的数据模型,并用

@DynamoDBTable
注释。

现在,很少有可能来自客户端的属性是事先未知的并且无法建模。此外,这些属性需要是顶级的,因为我希望在所有这些属性上都有 GSI。

有没有办法可以使用

DynamoDBMapper
DynamoDbTable
(如果是 sdk 2.0)对需求进行建模?

我经历了

@DynamoDBFlattened
,但它不适用于用例,因为它要求我事先定义所有属性。

此问题还有一张票,但没有任何解决方案就已关闭:https://github.com/aws/aws-sdk-java/issues/674

amazon-web-services amazon-dynamodb
1个回答
0
投票

您引用的两个 SDK 客户端都是用于将项目强映射到类对象。但是,您的用例要求您存储未映射的属性,这让我认为您最好使用不同的 SDK 客户端。

如果低级别客户端不适合您的用例并且您仍然需要一些抽象,那么请考虑使用文档客户端。

代表 DynamoDB 文档 API 的接口。文档 API 操作旨在处理开放内容,例如没有固定模式的数据、无法使用严格类型建模的数据或具有模式的数据。此接口提供访问文档所需的所有方法,以及用于创建可用于使用增强型 DynamoDB 客户端读取和写入 DynamoDB 的文档的构造函数方法。此外,该接口在处理数据时提供了灵活性,因为它允许您处理不一定与特定数据模型相关的数据。

https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/enhanced/dynamodb/document/EnhancedDocument.html

© www.soinside.com 2019 - 2024. All rights reserved.