DynamoDB触发器(Streams + Lambda):有关TRIM_HORIZON的详细信息?

时间:2016-07-09 10:42:06

标签: amazon-web-services amazon-dynamodb aws-lambda iot

我想处理DynamoDB表上的最新更新,并将它们保存在另一个表中。假设我从表1中不定期放置的IoT设备获得更新,我需要使用N个最后更新来计算表2中的更新,以便与原始更新同步设备(滑动窗口的类型)

DynamoDB触发器(Streams + Lambda)似乎非常适合我的需求,但我没有找到TRIM_HORIZON的明确定义。在一些文档中,我理解它是Table1中最早的数据(可以变得很大),但在其他文档中,它似乎是24小时。或者也许是流中最古老的,也就是24小时?

所以任何人都知道TRIM_HORIZON的真相?甚至可以配置它吗?

我看到的替代方法是不使用TRIM_HORIZON,而是使用LATEST并对Table1执行查询。但它有点挫败了溪流的目的。

1 个答案:

答案 0 :(得分:7)

以下是您在DynamoDB的文档(12)中的相关方面:

  •   

    DynamoDB Streams中的所有数据都有24小时的生命周期。您可以   检索并分析任何给定表格的最近24小时活动

  •   

    TRIM_HORIZON - 开始读取最后一条(未修剪的)流记录,   这是碎片中最古老的记录。在DynamoDB Streams中,有   24小时的数据保留限制。流式传输年龄超过的记录   此限制可以从流中删除(修剪)。

因此,如果您有一个持续处理流更新的Lambda,我建议您使用LATEST

此外,由于您需要使用N个最后更新来计算表2和#34;中的更新,因此您必须在每次更新时查询Table1,以便您可以合并'当前更新与该设备的先前更新。我不认为你也可以使用TRIM_HORIZON解决这个问题。