我有一个用例,可以让我根据日期获取余额,并且我想显示每天的正确余额。如果获取旧日期的更新,则该日期之后该帐户的所有余额都会更改。 例如
Account Date balance Total balance IBM 1Jun 100 100 IBM 2Jun 50 150 IBM 10Jun 200 350 IBM 12Jun 200 550
现在我收到日期为6月4日的消息(这是某些事务回溯日期,或者一些更正及其频繁发生的情况)
Account Date balance Total balance IBM 1Jun 100 100 IBM 2Jun 50 150 IBM 4Jun 300 450 ----------- all data from this point changes IBM 10Jun 200 650 IBM 12Jun 200 850
它是流数据,因此我希望随时显示每个帐户的正确余额。 我知道flink和kafka非常适合流传输用例,在这种情况下,如果特定日期的更新不会触发该点以后所有数据的更新。但是我们能否很好地实现这种情况,或者这根本不是这些流技术的用例吗?
请帮助
答案 0 :(得分:0)
您不能在队列中修改过去的消息,因此您应该引入一条使前一条无效的新消息。例如,您可以为每个事务使用一个ID(并在需要修改时重复该ID)。如果您有两条或更多条具有相同ID的邮件,请保留最后一条。
从Kafka Streams看KTable。它可以帮助您使用该ID(或任何其他聚合因子)来聚合数据,并通过有效的简历生成一张表,直到现在。如果收到新消息,将发出表更新