内容来源:2018 年 6 月 23 日,阿里巴巴云计算平台事业部产品经理郭华在“数据智能实践技术沙龙”进行《基于流计算构建实时大数据处理系统》演讲分享。IT 大咖说(微信id:itdakashuo)做为独家视频合做方,经主办方和讲者审阅受权发布。web
阅读字数:2390 | 6分钟阅读数据库
获取嘉宾演讲视频及PPT:http://suo.im/4vMRAI微信
本次演讲主要分享基于流计算如何构建实时大数据处理系统。架构
经过分析数据能够挖掘出用户需求,进而知足用户需求,因此咱们常说数据是重要的生成资料,商业和数据可以造成闭环。而流计算有个很是典型的认知——数据的价值随着时间延长会迅速下降。好比在实际推荐、异常检测和欺诈检测、实时调度等场景下对数据时效性的要求就会很是高。大数据实时化对此的解决方案就是流式计算。运维
传统的大数据采用的是批处理的方式,数据被静态的存储起来,经过提交做业读取数据处理,处理完成后返回结果并中止做业。流处理则是实时数据流,提交的是流式做业且一直存在于内存中,每当数据过来的时候就会产生实时的结果流。异步
批处理存在延迟较大的问题,一方面是由于全量计算的计算过程耗时长,另外一方面是因为做业提交和事件触发之间的延时没法估计。流计算弥补了这两方面的不足,首先它是增量计算在计算速度上有明显提高,其次事件驱动可以实现即时响应。oop
理论上来讲批处理是流处理的一种特殊形式,流处理被设计用来处理无线数据,批处理则是处理有线数据。在实际应用中咱们仍是会将它们分隔开,实时部分使用流处理,离线部分使用批处理,而后经过某个业务系统来整合它们的计算结果。之因此出现这种状况,我我的认为有两方面缘由。第一批处理有先发优点,大数据的兴起是由hadoop或spark这样传统的批处理系统所引导的,通常人员提到大数据首先想到的就是构建hadoop或spark系统。第二批处理针对特定场景作了特殊优化,不须要考虑太多容错。性能
阿里云流计算从2016年9月份开始公测,2018年3月21日正式商业化,历时大概1年半,基本上解决了可用性方面的问题。下面从4个方面来进一步了解下。学习
咱们平台的流式处理能够经过SQL完成,相对与传统的程序编写,极大的减小了代码量,同时SQL语法学习成本不高,下降了开发和运维的门槛。大数据
做为一站式平台咱们提供了web IDE,便于流做业的开发、调试、运维、报警,流处理的上下游数据管理也能够在这里完成,在平台以外还有完善的支持团队。数据生态方面平台无缝对接了阿里云上的10中数据存储。
最后是关于Blink引擎(该引擎过段时间也会开源),它是开源引擎Flink的企业版,在它的基础上咱们作了一些优化,包括二级调度、增量checkpoint、异步IO,在一些关键部分更是有10倍的性能提高。
从趋势上来看咱们认为大数据会继续发展,且因为批处理在离线场景下的优点,批流会共存,不过流的比例会逐渐增长。基于这一考量咱们在选择引擎的时候设定了几点要求。第一可以知足低延时,第二有exactly-once这样的正确性保证,第三可以支持大规模计算,第四支持复杂计算,第五能作到批流统一。
上图是对市面上的流式系统的筛选比较,能够看到除开Flink以外,其余的系统多少会存在一些问题。
各类终端上的流式数据汇总到消息队列上,流计算订阅消息队列进行处理,这个过程当中可能会查询静态历史数据作一些关联,最终抛出结果,该结果能够是流式的,也能够写到静态数据库中。
推荐系统本质上是联系用户的兴趣和物品,不过通常状况下用户和物品之间没有直接联系,须要中间元素来衔接。根据元素类别,推荐系统大体能够分为三类,基于物品、基于用户以及基于特征。
接下来主要讲的是基于标签,标签是特征的一种表示形式,,实现起来较为简单,效果能够预期,可解释性较强。
实时推荐的关键在于将用户的标签划分为长期和短时间,长期标签指的是变更不太频繁的标签,好比年龄、居住地、消费习惯等,这些可使用离线系统处理。短时间标签指的是在一段时间内用户感兴趣的内容,短时间标签统计完后会进行匹配度的计算。
上图为计算公式,第一个变量是用户对标签的兴趣程度,第二个变量是商品在该标签上的得分。对于推荐系统来讲准确性不是惟一的要求,还要有覆盖率、可信度以及新颖程度,基于这种思考咱们还须要对热门标签进行惩罚,防止其占比过大。
工业IoT领域主要是用来实时监控生产线中的产品是否合格或者一段时间内的合格率。整个流数据处理是这样的,首先在车床上部署一些传感器将商品数据发送到消息队列上,由流计算订阅消息队列,而后计算出商品特征,外部的异常检测模型接收这些特性并返回是否合格,流计算得到返回值后根据具体业务决定什么时候报警。
实时报表的数据通常来自于交易数据和行为日志,数据一样也是发送到消息队列中由流计算订阅,而后根据统计维度关联商品信息计算出结果推到展现数据库中,可视化系统经过直接刷新数据库就能更新报表。
主要的新功能有独享集群、Datalake ETL、CEP。独享集群相对于共享集群,开放了UDX、VPC,支持GPU和FPGA。Datalake ETL是批处理功能,负责数据清洗、同步、分析。CEP 作的是流式复琐事件处理。