DT时代阿里云流计算让业务实时、让数据发电

本文涉及的产品
实时计算 Flink 版,1000CU*H 3个月
日志服务 SLS,月写入数据量 50GB 1个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 如果说数据处理技术时代中数据是新能源,流计算就是让新能源发电的关键技术。基于阿里云流计算天猫双十一大屏可以实时展现上亿条数据订单。如何搭建具备亿级QPS处理能力的流式大数据处理系统,本文就阿里云流计算在大数据实时处理中带来的价值、流计算的显著优势以及应用场景和案例等方面的内容做了深入的分析。
摘要: 如果说数据处理技术时代中数据是新能源,流计算就是让新能源发电的关键技术。基于阿里云流计算天猫双十一大屏可以实时展现上亿条数据订单。如何搭建具备亿级QPS处理能力的流式大数据处理系统,本文就阿里云流计算在大数据实时处理中带来的价值、流计算的显著优势以及应用场景和案例等方面的内容做了深入的分析。

本场视频精彩回顾,戳这里!

本场视频PPT下载,戳这里!

演讲嘉宾简介:

付空,阿里云高级产品专家

以下内容根据演讲嘉宾视频分享以及PPT整理而成。

本次的分享主要围绕以下三个方面:

一、为什么要用流计算
二、为什么要用阿里云流计算
三、如何用流计算

一、 为什么要用流计算
  b99ed40f9f84b75b3db6d837af4de0b6cfd18965
随着DT(数据处理技术)时代的到来,数据作为生产资料包含用户的需求,通过分析数据、挖掘用户需求同时满足用户需求,可以产生一定商业价值,因此商业和数据之间可以产生闭环。
  68c3a14c66350f2c6cdb92797d1756d11ba614b6
流计算秉持数据价值会随时间延迟而迅速跌落的基本观念,例如实时推荐、异常或欺诈检测和实时的报表。实时推荐中,要求在用户进行点击时,系统感知用户目前感兴趣的东西,从内容库中查找对应用户感兴趣的内容并推送给用户,从而使用户可以实时发现自己感兴趣的东西,延长用户活跃时间。相反当用户访问离线的推荐系统时,即使拥有较高准确率的算法,用户的兴趣也可能会随着时间的推移而发生改变。在实时异常和欺诈检测中,以电商系统为例,系统需要实时地监控用户的行为判断该用户是否为羊毛党,如果该系统为批处理系统,当发现问题时系统交易可能已经完成,追回损失成为困难。
  c7a1cbec788bd8bed39618ffc98074560f43f258
基于以上两个方面,数据的闭环工作应该进行得越快越好,越快找到用户的需求并满足用户的需求,就能获取更好的商业竞争力。因此大数据的实时化成为一种需求,实时化需求的解决方案就是流式处理系统。
  2d85d1c99d53c3cf9e0773280cf78d038e6ee41c
批处理系统中,用户将作业提交给系统,系统读取数据、计算、返回结果后作业停止。批处理系统具有比较大的延迟,表现为两个方面:

1) 每次计算都要计算所有的数据,产生较长的计算耗时。

2) 由提交作业驱动,提交作业和事件发生之间具有延迟。

流式处理系统中,用户提交作业后,作业会在内存中常驻,只要有数据过来就会触发计算,产生实时的结果流。流式处理系统做到实时性表现为两个方面:

1) 每次计算只计算一个增量,计算耗时短。

2) 由事件触发,事件到达即刻进行计算。

  01e0c6e2a264670f901a57febce4e198eddca278
在批处理中,数据相当于一个湖,无论湖有多大都是静态的,离线(批量)计算相当于开船去湖中捕鱼,将计算贴近数据从而获取想要的结果。在流计算中,数据相当于一条河,河流不停地在流动,流计算相当于在河边修水坝,数据流过时获取想要的结果相当于电。基于以上例子,批量计算和流计算的区别在于:

1) 批量计算中数据是静态的,流计算中数据是动态的,表现为湖与河的区别。

2) 批量计算是将船开到湖中,自己寻找数据,流计算是在河边建坝,等待数据传入。

  3a7951f31f4c15d205a2506b9d543d9cbe9f21d2
批处理是处理有限的数据,流处理是处理无限的数据。将有限作为无限的特例,具体来说,在流式处理中将窗口设置成批处理一样的大小,从而获取和批处理一样的结果。然而在实践中,人们会把两个系统分开,实时的部分采用流式系统,离线的部分采用批处理系统。采用以上架构有两点原因:

1) 由于大数据通过Spark等发展起来,本身采用离线的处理系统,批处理系统占据了公司的大部分业务,具有一定的先发优势。

2) 从工程上来讲,批处理是流处理的特殊场景,批处理系统在特殊的场景中可以进行特殊的优化。例如批处理系统不用考虑流计算窗口上的容错,在设计内部数据结构或查询优化时,可以假设数据是有限的,因此在批处理特殊场景下会有更好的性能,例如更高的吞吐量等。

二、 为什么要用阿里云流计算
  af90a1d08968659929304116514a2edc77fa8190
阿里云流计算采用一站式、高性能、稳定、易用的流式大数据处理平台。下面从四个方面介绍阿里云流计算平台。

流式SQL
  71f4025c3d5485f4b8a20f8452c491a88b95c53c
阿里云的流计算平台采用流式SQL语言,图中右侧为基于storm的固定时间窗口下的单词计数的java代码,左侧为实现相同功能的SQL代码,两者在代码量上差别巨大,SQL对生产力的提升有着非常大的帮助,同时SQL的编写较为简单,从而降低了使用者的门槛。

一站式平台
  d26187c7f855075d0fc5dfc9232cd24b903fb777
阿里云的一站式流计算平台相当于提供了一个web的IDE。流计算本身的开发、调试、运维和报警都可以在自己的平台中执行。流计算的上下游例如数据的存储、source、sink和中间的一些维表也可以通过自己的平台进行管理。该平台提供完善的支持,用户遇到的业务问题可以很快得到解决,同时支持团队根据用户合理的需求可以进行功能上的扩展开发。

数据生态
6654319c367bc520ea885415165aefed9721bea0
阿里云的流计算平台无缝对接阿里云上的十多种数据存储,所谓无缝对接,是指用户不需要进行数据迁移,用户注册后可以直接使用原来地方存储的数据,表现为一键式的流式大数据环境构建的处理系统。

Blink
  5bde64aac32486954b0275e3348f11ce11734fe3
阿里云的流计算平台采用Blink作为底层引擎。Blink可以认为是开源引擎Flink的企业版。阿里巴巴在底层引擎方面进行了很多优化,包括二级调度、增量checkpoint和异步IO等,在关键部分上有着10倍的性能提升。
  288eaf0d1b5b67c4151b081f49173b46a3329e9f
上图展现Apache Storm、Spark Streaming和Flink的区别,Flink将Apache Storm和Spark Streaming在流处理上的优点进行了集合,窗口作为流计算非常重要的特性,Flink在窗口方面表现得更好,想要在流计算中处理有限的数据通常需要使用窗口,Flink支持比较完善的事件窗口、时间处理窗口和会话窗口。

三、 如何用流计算
  ce7a71f3fc0cc7e6f024cf1e7b105f5fd7c4f2e3
如图为流计算的典型架构,一般地当用户拥有一个web、app或者作为IoT的厂商时,日常中会实时地产生日志,这些日志本身是流式的,可以推送到消息队列的服务器中,然后流计算订阅这些消息,在这一过程中可以关联一些用户的静态数据,进而得到结果,结果可以为流式的例如同样为消息队列的日志,也可以为静态的例如流计算实时地更新用户写入的数据,使数据保持实时更新的状态。
  81caca6faab80d3e1c6329617eb83d0ebd2bddea
进一步来说,流计算可以对数据流进行解析和过滤,两个数据流可以进行join(结合),同时用户可以定义一些函数即udf,处理一些特殊的逻辑,在流计算的过程中可能会关联一些其它静态的数据,获取数据的一些属性,最终经过汇总和统计产生结果。
  d48461d7fcbd91c48cbdb5867e562b4715bf268d
下面介绍流计算的典型应用场景包括实时推荐、工业IoT、欺诈检测和实时报表。

实时推荐
  355dada7c970bc82723fa7a211fa4e20665986b9
实时推荐中,系统获取用户画像,在内容数据库中进行相似度的匹配,找到与用户画像比较相近的内容推送给用户。为了解决实时性,将用户画像分为长期兴趣标签和短期兴趣标签两部分。长期兴趣标签指基本不太发生变化或者发生变化频率比较低的用户画像,例如用户的性别、年龄、地理位置、消费习惯等,由于长期兴趣标签对实时性要求不高,可以通过离线的方式进行更新。短期兴趣标签例如用户5分钟一直对汽车比较感兴趣,不断刷新汽车相关的网页。系统通过web或app记录用户的行为,发送到消息队列,流计算订阅消息队列实时地计算用户的短期兴趣标签,例如统计用户最近1分钟对所有类别的点击率,然后进行排序,获取点击率高的类别作为短期兴趣标签,经过内容匹配的搜索将结果返回给用户。

工业IoT
  214de0a93ed9306022220a3ff0cd1acfc1a8cfd0
工业IoT中,相当于用户拥有一条生产线,想要获得生产线上实时的指标或者监控生产线上的良品率,防止产生更大的损失。在该数据流中,用户在车床上部署传感器实时地采集产品的特征,然后将特征的原始信息例如日志发送到消息队列服务器中,流计算订阅消息队列获取产品的原始数据计算产品的特征,通过udf调用产品合格率的检测模型进行判断,最后将结果个性化地展现给用户。

欺诈检测
  4de816bdf4080a114450b061252c7d0c9805b8e6
欺诈检测中,假设电商系统实时地监控用户的行为是否在薅羊毛,它的数据流类似于工业IoT,用户的行为通过日志发送到消息队列服务器,流计算实时地将用户行为特征化,然后调用风险模型对用户的行为进行一对一的判断。在这一过程中CEP规则引擎是流式系统中复杂的分析归类引擎,例如可以在CEP中定义用户先做了A,过了3分钟又做了B,之后做了3次C和1次D,将这些动作综合起来认为用户做了异常行为。综合CEP和风险模型可以实时地检测用户的行为是否有问题,进而发出报警避免更大的财产损失。

实时报表
  61acb09b2a1551d4d054b651995e8203eda606f6
实时报表中,例如天猫的双十一大屏,将用户的交易数据和行为数据归组到消息队列中,消息队列读取数据关联到商品的属性,按照想要的维度进行统计,将结果存储在RDS中,展示系统读取RDS的内容进行结果展示。实时报表不仅仅只有展示作用,同时会产生一定的业务价值。
  55a60543be207b6c48743eb361a70924db698ba2
流计算应用的典型案例中,天猫双十一大屏的TPS(系统吞吐量)峰值是过硬的,每秒可以处理几亿条事务,从用户下单到数据汇总到大屏的整个全链路的延迟为3秒,同时拥有秒级别的流计算处理延迟。除了天猫,菜鸟和支付宝也在使用流计算进行实时的大数据处理,例如菜鸟通过流计算进行实时的仓库管理。流计算同时应用在城市大脑和工业大脑中,例如通过流计算进行实时地异常检测、实时地车辆检测、实时地监控、报表等。
  ab798d0a977d17a07f4a01f2a6320102f796d5db
如图所示除了阿里集团内部,阿里云流计算平台在公共云中已经拥有很多用户。实时化其实是一个非常横向的需求,覆盖行业范围广泛包括互联网、金融、IoT、国企和政府等。具有实时化大数据处理需求的用户都可以免费体验一个月的阿里云流计算平台服务,同时在试用的过程中会有专业人员进行辅导。
  d44b59df8004acdd2757d42e8f606d6f617f6c37
阿里云流计算平台在最近添加了一些新功能,包括独享集群、Datalake ETL和CEP。独享集群6月7日正式开始邀测,独享集群相对于公共云上的共享集群,在共享集群中所有的用户共享同一个集群,在独享集群中每个用户使用自己的集群,独享集群更加开放,用户可以定义很多的udf,网络与VPC的互通变得更加便捷,同时独享集群支持非常多的底层硬件例如GPU、FPGA等,可以实时地处理图像和视频。在Datalake ETL中用户可以进行数据的清洗、同步、分析等。CEP是在流式系统中进行复杂规则匹配的工具,集成于SQL,通过SQL定义复杂的模式进行匹配。

DT时代,数据是新能源,流计算让业务实时,让数据发电!

本文由云栖志愿小组丁匀泰整理

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
搜索推荐 数据库 C语言
C语言实现冒泡排序(超详细)
C语言实现冒泡排序(超详细)
600 1
|
Java Spring
【SpringBoot】SpringBoot自定义banner,成千上万种可供选择,当然也可以自定义生成哦
【SpringBoot】SpringBoot自定义banner,成千上万种可供选择,当然也可以自定义生成哦
1530 1
|
Arthas Cloud Native Java
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
Arthas 是阿里巴巴开源的应用诊断利器,提供了 profiler 命令,可以生成热点火焰图。通过采样录制调用链路来做性能分析,极大提升了线上排查性能问题的效率。
是谁在调用我?使用 arthas+jprofiler 做复杂链路分析
|
4月前
|
SQL 缓存 关系型数据库
MySQL 慢查询是怎样优化的
本文深入解析了MySQL查询速度变慢的原因及优化策略,涵盖查询缓存、执行流程、SQL优化、执行计划分析(如EXPLAIN)、查询状态查看等内容,帮助开发者快速定位并解决慢查询问题。
172 0
|
机器学习/深度学习 人工智能 大数据
看看AI大佬都开了什么公司 | AI大咖说
看看AI大佬都开了什么公司 【10月更文挑战第6天】
800 1
|
XML JSON API
带你了解淘宝API是如何使用的
淘宝API使用介绍:需先注册开发者账号并创建应用以获取appkey和appsecret。熟悉API文档,了解接口功能和调用方式。调用地址为http://gw.api.taobao.com/router/rest,支持GET/POST方式。调用时需进行签名验证,返回数据主要为xml/json格式,需注意接口访问频次限制等。
带你了解淘宝API是如何使用的
|
12月前
利用 printStackTrace()方法定位异常的深入探讨
【10月更文挑战第13天】利用 printStackTrace()方法定位异常的深入探讨
378 58
|
定位技术
Cesium案例解析(九)——Rotatable2DMap旋转2D地图
Cesium案例解析(九)——Rotatable2DMap旋转2D地图
320 0
|
12月前
|
人工智能
写歌词的技巧和方法基础教程:引领你走进音乐世界,妙笔生词智能写歌词软件
音乐是灵魂的语言,歌词则是承载灵魂的载体。本文介绍写歌词的基础技巧,包括寻找灵感、确定主题、构建结构和运用语言,同时推荐《妙笔生词智能写歌词软件》作为创作助手,助力你走进丰富多彩的音乐世界。
|
存储 数据管理 数据库
CRUD操作实战:从理论到代码实现的全面解析
【7月更文挑战第4天】在软件开发领域,CRUD代表了数据管理的四个基本操作:创建(Create)、读取(Read)、更新(Update)和删除(Delete)。这四个操作构成了大多数应用程序数据交互的核心。本文将深入讲解CRUD概念,并通过一个简单的代码示例,展示如何在实际项目中实现这些操作。我们将使用Python语言结合SQLite数据库来演示,因为它们的轻量级特性和易用性非常适合教学目的。
1264 2