Flink SQL(基础实践)

第一章 核心概念

1.1、动态表和连续查询

_动态表(Dynamic Tables)_是Flink的支持流数据的Table API 和SQL的核心概念。

_动态表_是随时间变化的,可以像查询静态批处理表一样查询它们。查询动态表将生成一个连续查询(Continuous Query).一个连续查询永远不会终止,结果会生成一个动态表,查询不断更新其(动态)结果表,以反映其(动态)输入表上的更改。

需要注意的是,连续查询的结果在语义上总是等价于以批处理模式在输入表快照上执行的相同查询的结果。

1、将流转换为动态表

2、在动态表上计算一个连续查询,生成一个新的动态表

3、生成的动态表被转换为流

1.2、在流上定义表(动态表)

为了使用关系查询处理流,必须将其转换为Table,从概念上讲,流的每条记录都被解释为对结果表的INSERT 操作。

假设有如下格式的数据:


user:VARCHAR,//用户名
cTime:TIMESTAMP,//访问url的时间
uri:VARCHAR//用户访问的url

下图显示了单击时间流(左侧)如何转换为表(右侧),当插入更多的单击流记录时,结果的表的数据将不断增长。

1.2.1、连续查询

在动态表上的计算一个连续查询,并生成一个新的动态表,与批处理查询不同,连续查询从不终止,并根据其插入表上的更新其结果表。

在任何时候。连续查询的结果在语义上与以批处理模式在输入表快照上执行的相同查询的结果相同。

说明:

1.、当查询开始,Clicks表(左侧)是空的。

2、在第一行数据被插入到clicks表时,查询开始计算结果表。第一行数据【Mary,./home】插入后,结果表(右侧,上部)由一行【Mary,1】组成。

3、当第二行【Bob,./cart】插入到clicks表时,查询会更新结果表并插入了一行新数据【Bob,1】。

4、第三行【Mary,./prodid=1】将产生已计算的结果行的更新,【Mary,1】更新【Mary,2】

5、最后,当第四行数据加入clicks表时,查询将第三行数据【Liz,1】插入到结果表中。

第二章 Flink Table API

2.1 导入需要的依赖

//老版官方提供的依赖没有融合blink的

org.apache.flink
flink-table-planner_ s c a l a . b i n a r y . v e r s i o n < / a r t i f a c t I d > < v e r s i o n > {scala.binary.version}</artifactId> <version> scala.binary.version</artifactId><version>{flink.version}

//blink二次开发之后的依赖

org.apache.flink
flink-table-planner-blink_ s c a l a . b i n a r y . v e r s i o n < / a r t i f a c t I d > < v e r s i o n > {scala.binary.version}</artifactId> <version> scala.binary.version</artifactId><version>{flink.version}


org.apache.flink
flink-csv
f l i n k . v e r s i o n < / v e r s i o n > < / d e p e n d e n c y > < d e p e n d e n c y > < g r o u p I d > o r g . a p a c h e . f l i n k < / g r o u p I d > < a r t i f a c t I d > f l i n k − j s o n < / a r t i f a c t I d > < v e r s i o n > {flink.version}</version> </dependency> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-json</artifactId> <version> flink.version</version></dependency><dependency><group

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值