如何使用Flink中的内存数据创建可刷新表以进行联接?

时间:2020-11-12 00:20:14

标签: apache-flink flink-streaming flink-sql

我有一个依赖于Table API的Flink应用程序。我确实有创建表的Kafka主题。然后,我们维护一个S3对象以获取IP地址列表和一些元数据信息。

我们还想在此S3对象上创建一个表。 S3对象路径是静态的,不会改变,但是我可以覆盖S3对象,并且我想用新数据刷新该表。

基本上,我有一个从S3对象读取的集合内存。如何创建表并最有效地在Kafka表上进行联接?当S3对象中有更新时,应刷新该表。

1 个答案:

答案 0 :(得分:1)

如果使用FileSystem SQL Connector创建由S3对象支持的表,则它可能会执行您想要的操作。但是请注意,文件系统源代码尚未完全开发,您可能会遇到一些影响使用案例的限制。

您可以改为使用StreamExecutionEnvironment#readFiledocs),并将其产生的DataStream转换为表格。请注意,如果您在使用readFile模式时使用FileProcessingMode.PROCESS_CONTINUOUSLY读取文件,然后修改该文件,则会重新提取整个文件。