仅获取更新的字段以及 DynamoDB 流中的标识符

Get only updated fields along with identifiers in DynamoDB stream

有没有办法只获取对象中的更新字段以及一些其他属性(即该对象的标识符,无论是主键还是其他) 在亚马逊文档上:https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Streams.html 我看到我们有四种口味:KEYS ONLY、NEW IMAGE、OLD IMAGE、NEW AND OLD IMAGES 我现在能看到的唯一可能的方法是使用 NEW_AND_OLD_IMAGES 获取所有更新的属性以及标识符,然后交叉检查 NEW IMAGE 与 OLD IMAGE 中的每个属性。有更好的方法吗?

不,没有办法如你所愿。您可以想象第五个 StreamViewType 只存储键和更新的属性,但不幸的是 DynamoDB Streams 不支持它。

有趣的是,虽然我怀疑它对您有帮助,但 ReturnValues 确实支持您希望的模式 - 请参阅 UpdateItem's documentation 中的 UPDATED_NEW。但遗憾的是,DynamoDB 流不支持它。

如果你愿意接受 DynamoDB 的替代品,有一个兼容 DynamoDB 和 DynamoDB Streams 的开源 Scylla Alternator,它的 Streams 实现基于 Scylla 的 CDC(“change-data capture"),它可以像您希望的那样在本机捕获 deltas。这些增量当前未在 Scylla 的 DynamoDB Streams 兼容 API 中公开,因为它不是其中的一部分 API - 但可以很容易地添加这样的功能。