我想在 DynamoDB 表上处理最近的更新并将它们保存在另一个表中。假设我从一个不定期放入表 1 的 IoT 设备获取更新,我需要使用 N 个最后更新来计算表 2 中与原始更新同步的同一设备的更新(一种滑动窗口)。
DynamoDB 触发器(Streams + Lambda)似乎非常适合我的需求,但我没有找到 TRIM_HORIZON
的明确定义。在某些文档中,我知道它是 Table1 中最旧的数据(可能会变得很大),但在其他文档中,它似乎是 24 小时。或者可能是流中最旧的,即 24 小时?
那么有人知道 TRIM_HORIZON
的真相吗?甚至可以配置它吗?
我看到的替代方法是不使用 TRIM_HORIZON
,而是使用 LATEST
并在 Table1 上执行查询。但这有点违背了流的目的。
最佳答案
以下是 DynamoDB 文档( 1 和 2 )中与您相关的方面:
因此,如果您有一个持续处理流更新的 Lambda,我建议您使用
LATEST
。此外,由于您“需要使用 N 个最近的更新来计算 Table2 中的更新”,因此您必须为每次更新查询 Table1,以便您可以将当前更新与该设备的先前更新“合并”。我不认为你也不能使用
TRIM_HORIZON
来解决这个问题。关于amazon-web-services - DynamoDB 触发器(流 + Lambda) : details on TRIM_HORIZON?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38280958/