我们需要定期将数据库中的某些表(可能是Elasticsearch)集成到我们的流应用程序中(Flink)。所有表的此时间段都是固定的,大约在10秒到2分钟之间。目前,我们不需要集成很多表,它们的大小很小,但是我们希望有一种可扩展的方法,这意味着如果我们有更多的表或表随着时间的推移变得更大,则应该进行更改容易适应。
就目前而言,我想到了两种方法。
有一个中间系统,该系统定期侦听表中的更改,然后将这些更改推送到Kafka主题中。在应用程序端,以数据流的形式收听此主题,然后在有新元素(即新提示)的情况下,将其广播到执行者并更新其状态。 (这里的状态是键/值映射)
直接在应用程序侧,以给定的频率查询表(可能在触发器中)。删除并重新插入状态中的所有元素。
这是我正在考虑的两种策略。如果您已经解决了类似的问题,我希望获得您的经验,或者,如果您可以提出建议,并分享您对该问题的看法,我将很高兴。