首页 > 解决方案 > Flink 是否可以对非动态表运行连续查询?

问题描述

我希望将 Flink SQL 用作多个不同服务的物化视图。例如,从 MySQL & Redis & RPC 服务读取数据,将它们连接在一起,然后更新存储在 PostgreSQL 中的结果表

上述所有这些服务都向 Kafka 写入通知,告知发生了什么变化。

如果“通知”包含源表中的所有信息,那么我可以只使用动态表。但是,源表中的数据太大,将它们全部存储在动态表中将是一种浪费。

所以最好的方法是:

  1. Flink 读取输入 kafka 主题中的通知
  2. Flink 不是从内存中更新和查询动态表,而是查询外部服务以获取重新计算 SQL 结果所需的数据。
  3. 将结果写入接收器(如 PostgreSQL)。

是否可以通过一些技巧来做到这一点?

标签: apache-flinkflink-sql

解决方案


似乎是SYSTEM TIME AS OF/的工作LookupTableSource;它适用于 JDBC,但不适用于 redis 或 RPC。不过,这应该不太难实现。


推荐阅读