Как сделать соединение с одним потоком и двумя статическими таблицами кустов - PullRequest
0 голосов
/ 23 сентября 2019

Я новичок в Flink, и я использую Flink 1.3 (старая версия, но моя компания использовала эту версию ...) для написания потокового приложения.Приложение включает в себя объединение с одним потоком (от kafka) и двумя статическими таблицами Hive (меняются один раз в день, две таблицы - около 100 миллионов строк),

Я бы спросил, как лучше всего выполнить объединениеПотоковое API или SQL API?Мне кажется, что Stream API не поддерживает чтение из Hive.

На данный момент я хочу знать, какой API (поток данных api или поток sql api) следует использовать.

Спасибо!

1 Ответ

0 голосов
/ 23 сентября 2019

Я думаю, что лучший вариант для вас - преобразовать поток в таблицу

, а затем соединить данные с данными таблицы улья.

// 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");
...