我使用
DynamoDBMapper
将数据插入 dynamoDB 表中。
对于数据,我有一个相应的数据模型,并用
@DynamoDBTable
注释。
现在,很少有可能来自客户端的属性是事先未知的并且无法建模。此外,这些属性需要是顶级的,因为我希望在所有这些属性上都有 GSI。
有没有办法可以使用
DynamoDBMapper
或 DynamoDbTable
(如果是 sdk 2.0)对需求进行建模?
我经历了
@DynamoDBFlattened
,但它不适用于用例,因为它要求我事先定义所有属性。
此问题还有一张票,但没有任何解决方案就已关闭:https://github.com/aws/aws-sdk-java/issues/674
您引用的两个 SDK 客户端都是用于将项目强映射到类对象。但是,您的用例要求您存储未映射的属性,这让我认为您最好使用不同的 SDK 客户端。
如果低级别客户端不适合您的用例并且您仍然需要一些抽象,那么请考虑使用文档客户端。
代表 DynamoDB 文档 API 的接口。文档 API 操作旨在处理开放内容,例如没有固定模式的数据、无法使用严格类型建模的数据或具有模式的数据。此接口提供访问文档所需的所有方法,以及用于创建可用于使用增强型 DynamoDB 客户端读取和写入 DynamoDB 的文档的构造函数方法。此外,该接口在处理数据时提供了灵活性,因为它允许您处理不一定与特定数据模型相关的数据。