栏目导航

阿里Blink SQL关键技能及实现原理

更新时间: 2019-01-25

诚然SQL被更多的用于批处理,然而在流打算场景下同样也适用。从处理的数据凑集来看,流处理的数据是无穷的,而批处理面对的是有限聚集。从内部处理逻辑来看,批处置是单次作业,流处理的运作持续一直,并且会对历史数据进行修正。

(Blink架构)

五个概念和一个实现

传统数据库表有两个最明显的特色schema跟data,流同样也有schema跟data,另外还有一个重要属性time,随着时间的推移数据会始终涌入流中。

BlinkSQL是在FlinkSQL基础上新增了大量的丰富功能和性能优化。SQL作为声名式的可优化的语言具备很大的优势,Blink的SQL查问优化器会对用户SQL进行优化,制定最优的实行盘算以获取高性能。同时SQL易于理解,用它编写的业务逻辑明白明了。

先容Blink SQL的多少个关键技能,以及实现原理,并通过两个实例来阐述具体的功效成果。

六个特点和背景介绍

1. 流表对偶性

上图展示的是一个携带时光戳和用户名的点击事件流,咱们先对这些事件流进行流式统计,同时在最后的流事件上触发批盘算。流计算中每接收一个数据都会触发一个结果,可能看到最后的事件无论是在流还是批上计算成果都是6。这说明只有SQL语句和数据源相同,流和批的计算结果就不会存在差异。雷同的SQL在流和批这两种模式下,语义相同,最终结果就会一致。

什么是BlinkSQL

Blink作为一个纯流式的计算平台,具备秒级甚至毫秒级的延时,可能快捷容错,比喻在某个计算节点挂掉的时候能够快速恢复。它还支撑动态扩容,针对流计算场景做了大批优化,具备高吞吐和高资源利用率的极致机能,同时解决了非常明显的数据乱序的问题,并且支持大数据量的流计算请求。

流表对偶性是指流表转换信息无损,存在对偶性。