![](https://img-blog.csdnimg.cn/20190918140037908.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Flink Sql
Flink Sql系列教程
狄杰丶
单创数据平台负责人
展开
-
Flink Sql on Zeppelin(6)——Hive Streaming
概述Flink1.11 在上周二正式release了,在此之前我也给大家分享过了Flink1.11的一些新特性,然后和大家说过这一期会给大家单独说Flink X Hive本来打算找点数据,然后做一期类似于实时数仓的内容,但是数据不太好找,加上时间、精力有限就简单和大家聊聊吧在开始之前,大家参考一下Hive Integration,把flink 连接hive所需要的包放到lib目录下Hive Streaming Sink先看看官网是怎么描述Hive Streaming Sink的吧SET原创 2020-07-19 18:05:48 · 1772 阅读 · 5 评论 -
Flink Sql on Zeppelin(6)——Flink1.11预览(上)
Flink 1.11 Table&Sql预览概述之前就和大家说过要做一期Flink 1.11的超前点映版,加上Flink 1.11 release在即,所以这次的内容就和大家简单分享一些Table&Sql方面的新特性就像标题一样,还是会在Zeppelin中演示,由于两个项目都没release,所以我自己编了下,不过大家用的时候可能有点问题,可以钉钉联系我解决,钉钉号是rnodvmd。链接: https://pan.baidu.com/s/1qCsv9nf35mrqLSTMq9f1fQ原创 2020-07-05 14:34:06 · 2961 阅读 · 0 评论 -
Flink Sql on Zeppelin(5)——双流Join
双流Join概述其实之前和大家聊过双流Join,这次之所以再拉出来讲并不是在炒冷饭,而是发现了之前讲的一些不足以UnBounded Join来说,我之前一直以为,无论哪边的流先到,只要匹配上之后,key对应的、存储在state中的数据应该被清理。这样,无论哪边再来一条同样key的数据,不会触发数据下发,也就是一对一。其实这样的理解是错误的,key会一直存储在state中,直到OOM或者配置TTL之后被清理。那么,也就是会多次触发数据下发,也就是会发生一对多、多对多之前关于Time Interval原创 2020-06-28 17:48:26 · 1305 阅读 · 1 评论 -
Flink Sql教程(8)
Flink精准去重概述为啥需要去重在某些情况下,由于上游的作业不是端到端的exactly-once,在上游出现问题自动failover的时候,该任务的sink端很大可能出现重复数据;这些重复数据又会影响下游的聚合作业(如SUM,COUNT)。所以,我们的作业需要去重完再进行计算去重方法TopN(Flink官网推荐的方式)Group ByUDTF(维表去重)各自优缺点前两者纯内存去重,效率高,速度快,使用简单;但是一旦任务KILL再启动就会有状态丢失,那么下游计算过的数据又会原创 2020-06-05 14:23:46 · 3124 阅读 · 3 评论 -
Flink Sql教程(7)
Redis异步维表概述之前和大家聊过维表,也聊过FLINK中如何使用维表,目前FLINK自带的维表有两种,一种是JDBC维表,一种是HBASE维表。其中JDBC维表支持缓存,HBASE暂不支持两种维表也都是同步维表,性能较弱我之前也说过会在后面的教程实现以下异步第三方维表,加上一个叫啤酒鸭的问我相关的问题,就抽空写了一把redis异步客户端我用的是Lettuce,大家也可以用Redission,Jedis是同步的,大家千万注意不过和我之前说的一样,缓存会遇到旧数据的问题,所以也相当于给大家留了原创 2020-06-03 16:54:03 · 4220 阅读 · 4 评论 -
Flink Sql教程(6)
FLINK SQL 解析复杂JSON&维表关联HBASE解析复杂JSON目前我们的数据源都是以JSON格式存储在KAFKA中,所以今天就写一下怎么在DDL语句中,解析复杂JSON先贴一份JSON数据{ "afterColumns":{ "created":"1589186680", "extra":{ "canGiving":false }, "parameter":[ 1原创 2020-05-29 15:47:23 · 3469 阅读 · 8 评论 -
Flink Sql教程(5)
Flink 双流Join概述在之前的Flink教程03里面给大家讲过了维表Join,今天来和大家分享一下双流Join目前Flink双流Join分成两类:UnBounded Join 和 Time Interval Join在有些场景下,用哪个都行,不过后者的性能会优于前者,而且如果在双流Join之后想要再进行窗口计算,那么只能使用Time Interval Join,目前的UnBounded Join后面是没有办法再进行Event Time的窗口计算UnBounded Join分为两种Jo原创 2020-05-24 17:06:26 · 2516 阅读 · 1 评论 -
Flink Sql教程(4)
Flink UDF概述什么是UDFUDF是User-defined Functions的缩写,即自定义函数。UDF种类UDF分为三种:Scalar Functions、Table Functions、Aggregation FunctionsScalar Functions接收0、1、多个参数,返回一个值Table Functions和上面的Scalar Functions接收的参数个数一样,不同的是可以返回多行,而不是单个值Aggregation Function原创 2020-05-22 23:17:30 · 2992 阅读 · 0 评论 -
Flink Sql教程(3)
维表Join尝鲜什么是维表维表,维度表的简称,来源于数据仓库,一般用来给事实数据补充信息。假设现在有一张销售记录表。销售记录表里面的一条销售记录就是一条事实数据,而这条销售记录中的地区字段就是一个维度。通常销售记录表里面的地区字段是地区表的主键,地区表就是一张维表。更多的细节可以面向百度/谷歌编程。为什么Flink中需要维表以流计算为例,一般情况下,消费的消息中间件中的消息,是事实表中的数...原创 2020-04-30 09:53:30 · 5416 阅读 · 13 评论 -
Flink Sql教程(2)
从kafka到mysql新建Java项目最简单的方式是按照官网的方法,命令行执行curl https://flink.apache.org/q/quickstart.sh | bash -s 1.10.0,不过这种方法有些包还得自行添加,大家可以复制我的pom.xml,我已经将常用的包都放进去了,并且排除了冲突的包。注意的是,本地测试的时候,记得将scope注掉,不然会出现少包的情况。也可...原创 2020-04-30 09:48:58 · 3128 阅读 · 3 评论 -
Flink Sql教程(1)
环境准备安装Docker及相关镜像Docker下载链接 由于穷买不起mac,所以挂的windows的链接,可自行去Docker官网下载其他版本。安装过程省略,毕竟一路下一步的东西,下面开始安装并启动kafka、mysql等服务。安装zookeeper服务因为kafka需要将许多信息固化存储在zk上,所以我们首先得安装zookeeper服务执行docker run -d ...原创 2020-04-30 09:44:16 · 3195 阅读 · 1 评论