目录
主类
package myflink.sql;
import myflink.source.MySource;
import org.apache.flink.streaming.api.datastream.DataStream;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.table.api.Table;
import org.apache.flink.table.api.bridge.java.StreamTableEnvironment;
import org.apache.flink.types.Row;
import static org.apache.flink.table.api.Expressions.$;
/**
* @author pangsl
* @date 2021/5/25 15:13
* @Description flink使用SQL处理无界数据流
*/
public class SQLStreamDemo {
public static void main(String[] args) throws Exception{
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
StreamTableEnvironment tEnv = StreamTableEnvironment.create(env);
DataStream<String> stream= env.addSource(new MySource());
Table table = tEnv.fromDataStream(stream, $("word"));
Table result = tEnv.sqlQuery("select * from " + table + " where word like '%t%'");
tEnv.toAppendStream(result, Row.class)
.print();
env.execute();
}
}
MySource类
package myflink.source;
import org.apache.flink.streaming.api.functions.source.SourceFunction;
import java.util.ArrayList;
import java.util.List;
import