在flink应用程序中访问flatmapfunction内的数据库可以吗?

thtygnil  于 2021-06-25  发布在  Flink
关注(0)|答案(1)|浏览(230)

我将kafka主题作为数据流使用,并使用flatmapfunction处理数据。处理包括用更多的数据来丰富来自流的示例,这些数据是从数据库执行查询以收集输出得到的,但它认为这不是最好的方法。
阅读文档我知道我可以从数据库查询创建数据集,但我只看到了批处理的示例。
我可以用数据流和数据集执行合并/减少(或其他操作)来完成吗?
使用数据集而不是直接访问数据库可以提高性能吗?

68de4m5k

68de4m5k1#

使用flink的datastreamapi可以采取多种方法来实现这种丰富。
(1) 如果您只想一次性获取所有数据,那么可以使用一个有状态的richflatmapfunction在其open()方法中执行查询。
(2) 如果您想对每个流元素执行查询,那么可以在flatmapfunction中同步执行,或者查看asyncio以获得更高性能的方法。
(3) 为了获得最佳性能,同时从外部数据库获取最新值,请查看数据库更改流中的流,并使用协处理函数执行流连接。像这样的http://debezium.io/ 在这里可能有用。

相关问题