前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阿里构建实时大数据系统的秘诀——流计算

阿里构建实时大数据系统的秘诀——流计算

作者头像
IT大咖说
发布2018-09-12 17:15:19
1.5K0
发布2018-09-12 17:15:19
举报
文章被收录于专栏:IT大咖说IT大咖说

内容来源:2018 年 6 月 23 日,阿里巴巴云计算平台事业部产品经理郭华在“数据智能实践技术沙龙”进行《基于流计算构建实时大数据处理系统》演讲分享。IT 大咖说(微信id:itdakashuo)作为独家视频合作方,经主办方和讲者审阅授权发布。

阅读字数:2390 | 6分钟阅读

摘要

本次演讲主要分享基于流计算如何构建实时大数据处理系统。

获取嘉宾演讲视频及PPT,扫一扫下方二维码即可。

为什么要用流计算

通过分析数据可以挖掘出用户需求,进而满足用户需求,所以我们常说数据是重要的生成资料,商业和数据能够形成闭环。而流计算有个非常典型的认知——数据的价值随着时间延长会迅速降低。比如在实际推荐、异常检测和欺诈检测、实时调度等场景下对数据时效性的要求就会非常高。大数据实时化对此的解决方案就是流式计算。

批处理 VS 流计算

传统的大数据采用的是批处理的方式,数据被静态的存储起来,通过提交作业读取数据处理,处理完成后返回结果并停止作业。流处理则是实时数据流,提交的是流式作业且一直存在于内存中,每当数据过来的时候就会产生实时的结果流。

批处理存在延迟较大的问题,一方面是因为全量计算的计算过程耗时长,另一方面是由于作业提交和事件触发之间的延时无法估计。流计算弥补了这两方面的不足,首先它是增量计算在计算速度上有明显提升,其次事件驱动能够实现即时响应。

理论上来说批处理是流处理的一种特殊形式,流处理被设计用来处理无线数据,批处理则是处理有线数据。在实际应用中我们还是会将它们分隔开,实时部分使用流处理,离线部分使用批处理,然后通过某个业务系统来整合它们的计算结果。之所以出现这种情况,我个人认为有两方面原因。第一批处理有先发优势,大数据的兴起是由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

工业IoT领域主要是用来实时监控生产线中的产品是否合格或者一段时间内的合格率。整个流数据处理是这样的,首先在车床上部署一些传感器将商品数据发送到消息队列上,由流计算订阅消息队列,然后计算出商品特征,外部的异常检测模型接收这些特性并返回是否合格,流计算获得返回值后根据具体业务决定何时报警。

典型场景—实时报表

实时报表的数据一般来自于交易数据和行为日志,数据同样也是发送到消息队列中由流计算订阅,然后根据统计维度关联商品信息计算出结果推到展示数据库中,可视化系统通过直接刷新数据库就能更新报表。

新功能速览

主要的新功能有独享集群、Datalake ETL、CEP。独享集群相对于共享集群,开放了UDX、VPC,支持GPU和FPGA。Datalake ETL是批处理功能,负责数据清洗、同步、分析。CEP 做的是流式复杂事件处理。

以上为今天的分享内容,谢谢大家!

IT大咖说 | 关于版权

本文由“IT大咖说(ID:itdakashuo)”原创,转载时请注明作者、出处及微信公众号。投稿、约稿、转载请加微信:ITDKS10(备注:投稿),茉莉小姐姐会及时与您联系!

感谢您对IT大咖说的热心支持!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档