网站首页 > 博客文章 正文
?
然后我们再来看table api 以及 flink sql
?
我们看,table api 和flink sql我们来看看是什么东西,首先
我们之前说过ProcessFunction,这个是处理一些底层的数据会用到这个,之前我们知道
processFunction,可以对事件时间,做更精细的处理.
然后中间的DataStream这个我们也说过了,可以读入数据流,然后进行map,flatMap等的处理对吧
然后我们现在看再上一层的API,可以看到这里有个High-level Analytics API 这个SQL/Table API
可以看到这个是,上层的API,他把我们之前写的代码实现的功能,做了进一步的封装,提供给我们用
这样用起来会方便很多.
比如Table api用的时候,直接.select这样类似于就可以了.
至于flink sql,就相当于写个字符串的sql,执行就可以了.
?
然后我们自己去写个例子去,用一下table api,首先在
com.atguigu.apitest.tableapi下创建Example类
写一个main方法
?
然后去看一下这里,首先创建执行环境,然后,设置并行度是1,然后
我们首先去文件中读取文本流
?
然后我们再去,把输入流转换成.map,SensorReading流对吧
?
然后我们再去创建一个Table api的执行环境
可以看到这里,使用的是StreamTableEnvironment对吧.
?
这里我们需要引入上面两个依赖,可以看到一个是
flink-table-planner_2.12
然后version是1.10.1 这里2.12 是scala的版本,然后
1.10.1 是flink的版本
?
然后可以看到还有一个桥接器,这里
flink-table-api-java-bridge_2.12
?
首先我们去引入计划器:
flink-table-planner_2.12 然后version是1.10.1
?
然后我们去看一下引入的依赖,可以看到,这个
org.apache.flink这里
flink-table-planner 这个计划器可以看到里面包含了
table-api-java-bridge了对吧,包含桥接器了,然后同时,可以看到除了包含java的桥接器
还包含了scala的桥接器对吧.
这个计划器就可以为我们生成执行计划,然后执行了.
?
然后我们再看这里
flink-table-planner-blink_2.12 这个blink的版本会比较新,上面我们引入的那个
flink-table-planner_2.12这个是旧版本的,现在我们引入了两个以后
?
我们来看我们引入以后,可以看到下面又多了一个org.apache.Flink...blink的一个包对吧.
我可以去官网去看这里说,现在虽然我们引入了两个planner-table,但是他会用哪个呢?
注意这里,他会用不带blink的这个旧的,可以看到上面1.11这个版本的可以看到官网也说了
?
如果你是用的1.10以及以前的,他会默认用1.10的版本的,不带blink的,如果是1.11开始的版本
他就会使用blink版本的了.
可以看到,上面第一个值是fields[0]是id,然后第二个是时间戳,第三个是温度值.
然后我们先去创建一个StreamTableEnvironment 这个Table的运行环境.
?
创建了以后,然后我们再去,tableEnv.fromDataStream(dataStream)
这里是基于流,来创建一张表对吧.
?
然后我们直接通过创建的这张表,调用.select,从里面,获取id,temperature这两个值,然后
我们还可以添加条件,可以看到.where("id = sensor_1") 我们只取第一个传感器的值.
上面这里,就是用table api来进行数据的查询了,可以看到简单多了.
?
然后我们再看,这里我们怎么用执行SQL来查询
这个时候,首先我们需要注册,我们的table,可以看到通过,tableEnv.createTemporaryView("sensor",dataTable);
这里,创建以后,然后,我们就可以去写一个sql,可以看到跟以前写sql一样对吧.
然后我们再去执行sqltableEnv.sqlQuery(sql),这里执行以后,返回:
resultSqlTable 这个表.
?
返回以后,我们可以跟以前直接stream.print那样打印结果吗?
不可以,可以看到这里表,只能直接printSchema()打印结构对吧.
?
然后,我们再去看这里,我们可以把表,转换成流,然后把流再进行打印输出对吧.
?
然后我们去执行看看结果,没问题对吧.
- 上一篇: 新一代大数据计算引擎 Flink从入门到实战
- 下一篇: 三分钟速懂大数据Flink | 窗口操作
猜你喜欢
- 2024-10-03 FlinkSQL全面指南(flinksql udf)
- 2024-10-03 Apache Flink学习笔记(六)Table API
- 2024-10-03 Flink Table API & SQL 聚合性能调优
- 2024-10-03 美团点评基于 Flink 的实时数仓平台实践
- 2024-10-03 Flink SQL 动态表 & 连续查询详解(建议收藏)
- 2024-10-03 Flink 1.11 与 Hive 批流一体数仓实践
- 2024-10-03 Flink SQL中的动态表和临时表(flink sql动态查询)
- 2024-10-03 三分钟速懂大数据Flink | 窗口操作
- 2024-10-03 新一代大数据计算引擎 Flink从入门到实战
- 2024-10-03 4位资深专家多年大厂经验分享出Flink技术内幕架构设计与实现原理
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)