flink在袋鼠云一站式大数...

Post on 03-Sep-2020

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Flink在袋鼠云一站式大数据平台中的使用

Flink China Meetup 上海 - 2018年11月4日

杨思枢 · 袋鼠云 / 技术专家

CONTENT

为什么要扩展Flink SQL

01

目录 >>如何实现流与维表的JOIN

02

https://github.com/DTStack/flinkStreamSQL开源地址:

后续的开发计划

03

01为什么要扩展FlinkSQL

实时计算完全SQL化

在实时计算的世界里不只是流与流的JOIN,还需要流与维表的JOIN

Kafka Kafka

Join

KafkaMysql,Hbase

….

Join

维表流流流

FLinkSQL不支持流与维表JOIN这么办?

修改Flink源码 扩展FlinkSQL?

1. 对Flink的源码改动的地方比较多,无法保证对其他的功能带来影响,要做额外的测试工作

2. 除非合并到社区版本,不然后续合并社区代码是比较大的工作量

修改Flink源码带来的问题

02如何实现流与维表的JOIN

DEMO SQLinsert into

MyResultselect

d.channel, d.info

from ( select a.*,b.infofrom

MyTable a join sideTable b

on a.channel=b.namewhere a.channel = 'xc2’

and a.pv=10 ) as d

Calcite解析Insert into语句,拆分出子语句

1. select a.*,b.info from MyTable a join sideTable b on a.channel=b.namewhere a.channel = 'xc2' and a.pv=10

2. select d.channel, d.info from d

3. insert into MyResult

Calcite继续解析select语句old: select a.*,b.info from MyTable a join sideTable b on a.channel=b.namewhere a.channel = 'xc2' and a.pv=10

判断right table 是否是维表(维表只能是右表)

如果是拆分出left table(select * from MyTable )生成 A

把维表转换成AsyncFunction或者RichFlatMapFunction生成 B

CREATE TABLE sideTable( cf:name varchar as name, cf:info varchar as info, PRIMARY KEY(name), PERIOD FOR SYSTEM_TIME )WITH(type ='hbase’, zookeeperQuorum ='rdos1:2181',

zookeeperParent ='/hbase', tableName ='workerinfo’, cache ='LRU’,

cacheSize ='10000’,cacheTTLMs ='60000’,parallelism ='1' );

AsyncDataStream.orderedWait(A, B, Timeout, TimeUnit)或A.flatMap(B)生成C

生成新的SQL(Select name,channel,pv,xctime,info from C where channel = ‘xc2’ and pv=10)

LRU维表的实现

RichAsyncFunction

open(Configuration)

asyncInvoke(Row, ResultFuture<Row> )

close()

LRU维表

继承

Async I/O简介

Async I/O 是由阿里巴巴贡献给社区的,于1.2版本引入,主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题。

ALL维表实现

RichFlatMapFunctionvoid flatMap(IN value, Collector<OUT> out)

ALL维表

继承

03后续的开发计划

后续的开发计划

1.中间临时表(视图)功能

2.性能指标采集到Prometheus

3.维表快照功能

4.redis维表,结果表功能

5.mongodb维表,结果表功能

6.用SQL实现CEP

公司简介

关注袋鼠云技术团队

回复“10”获取PPT资料

top related