flink Table API 与 SQL

Table API 是流处理和批处理通用的关系型 API Table API 可以基于流输入或者
批输入来运行而不需要进行任何修改。 Table API SQL 语言的超集并专门为 Apache
Flink 设计的, Table API Scala Java 语言集成式的 API 。与常规 SQL 语言中将
查询指定为字符串不同, Table API 查询是以 Java Scala 中的语言嵌入样式来定义
的,具有 IDE 支持如 : 自动完成和语法检测。
1 需要引入的 pom 依赖
flink Table API 与 SQL_第1张图片

 .2 简单了解 TableAPI

flink Table API 与 SQL_第2张图片

 flink Table API 与 SQL_第3张图片

 1 动态表

如果流中的数据类型是 case class 可以直接根据 case class 的结构生成 table

tableEnv.fromDataStream(dataStream)
或者根据字段顺序单独命名
tableEnv.fromDataStream(dataStream,’id,’timestamp .......)

最后的动态表可以转换为流进行输出

table.toAppendStream[(String,String)]

2 字段

用一个单引放到字段前面来标识字段名, ‘name , ‘id ,’amount

3 TableAPI 的窗口聚合操作
3.1 通过一个例子了解 TableAPI

flink Table API 与 SQL_第4张图片

 flink Table API 与 SQL_第5张图片

 3.2 关于 group by

flink Table API 与 SQL_第6张图片

 

3.3 关于时间窗口
1. 用到时间窗口,必须提前声明时间字段,如果是 processTime 直接在创建动
态表时进行追加就可以。
flink Table API 与 SQL_第7张图片

 4 SQL 如何编写

flink Table API 与 SQL_第8张图片

 flink Table API 与 SQL_第9张图片

 

你可能感兴趣的:(flink,flink,大数据,big,data)