如何与一个流和两个静态配置单元表联接

时间:2019-09-23 09:38:47

标签: apache-flink

我是Flink的新手,并且我正在使用Flink 1.3(旧版本,但是我的公司已使用此版本...)编写流应用程序。该应用程序涉及连接一个流(来自kafka)和两个静态Hive表(每天更改一次,两个表大约有1亿行),

我想问问,连接,流API或SQL API的最佳方法是什么?在我看来,Stream API不支持从Hive读取。

这时,我想知道应该使用哪个API(数据流api或流sql api)。

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为,最适合您的方法是转换stream to table

然后将tha数据与配置单元表数据连接起来。

// get StreamTableEnvironment 
 // registration of a DataSet in a BatchTableEnvironment is equivalent 
StreamTableEnvironment tableEnv = ...; // see "Create a TableEnvironment" section

DataStream<Tuple2<Long, String>> stream = ...

// Convert the DataStream into a Table with default fields "f0", "f1" 
Table table1 = tableEnv.fromDataStream(stream);

// Convert the DataStream into a Table with fields "myLong", "myString" 
Table table2 = tableEnv.fromDataStream(stream, "myLong, myString");