TableAPi
1. 概述
TableApi & sql的特点:
- 声明式 :用户只需要关心做什么,不用关心怎么做
- 高性能:底层会有一个优化器,可以对sql进行优化,达到更好的性能
- 流批统一:相同的处理逻辑,可以流模式运行,也可以批模式运行
- 标准稳定:语义标准遵循sql,不易变动
- 易理解:语义明确,所见即所得
Table API自身的特点:
- 多声明式数据处理写起来比较容易
- 比较容易扩展标准的sql
2. Table API编程
2.1 word count例子
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
BatchTableEnvironment tEnv = TableEnvironment.getTableEnvironment(env);
DataSet<WC> input = env.fromElements(
new WC("hello", 1),
new WC("word", 2),
new WC("mvp", 1)
);
Table table = tEnv.fromDataSet(input);//dataSet 转为 Table
Table filtered = table.groupBy("word").select("word,frequency.sum as frequency").filter("frequency=2");
DataSet<WC> result = tEnv.toDataSet(filtered, WC.class);
result.print();