大家节日快乐!
tl; dr:我需要聚合存储在一个DynamoDB表中的电影租赁信息,并将聚合的运行总计存储在另一张表中。如何确保一次聚合?
我目前将电影租借信息存储在名为MovieRentals的DynamoDB表中:{电影标题,租借期限,订单日期,租金金额}
我们每天有数百万部电影出租。我们的Web应用程序需要显示任何给定电影标题的合计租金金额。
我计划使用Flink在MovieRental DynamoDB流上按movie_title汇总租金金额,并将汇总的租金金额存储在另一个名为RentalAmountsByMovie的DynamoDB表中:{movie_title,total_rental_amount}
我如何确保RentalAmountsByMovie金额始终准确。即,如何防止任何检查点的结果不多次更新RentalAmountsByMovie表记录?
方法3:另一个模式似乎是仅将时间窗口聚合结果存储在RentalAmountsByMovie表中:{movie_title,rental_amount_for_checkpoint,checkpoint_id}。这样,从Flink到DynamoDB的写入将是幂等的(Flink不会进行任何更新,它只是在插入目标DDB表。 。我不喜欢此解决方案对Web应用程序的延迟影响。
方法4:可以使用Flink的Queryable状态功能。但是,该功能似乎在Beta中:https://ci.apache.org/projects/flink/flink-docs-release-1.9/dev/stream/state/queryable_state.html
我想这是一个非常常见的聚合用例。 人们通常如何在Flink外部接收器中处理更新的汇总结果?>]
我感谢任何指针。如果需要,很高兴提供更多详细信息。
谢谢!
大家节日快乐! tl; dr:我需要聚合存储在一个DynamoDB表中的电影租赁信息,并将聚合的运行总计存储在另一张表中。如何确保...
通常,您担心的问题不是问题,因为人们正在使用幂等写入来捕获外部接收器中的汇总结果。