流计算与批量计算的对比

相比于批量大数据计算,流(式)计算整体上还属于较为新颖的计算概念,下面我们从用户/产品层面来理解下两类计算方式的区别。

批量计算

目前绝大部分传统数据计算和数据分析服务均是基于批量数据处理模型: 使用ETL系统或者OLTP系统进行构造数据存储,在线的数据服务(包括Ad-Hoc查询、DashBoard等服务)通过构造SQL语言访问上述数据存储并取得分析结果。这套数据处理的方法论伴随着关系型数据库在工业界的演进而被广泛采用。但在大数据时代下,伴随着越来越多的人类活动被信息化、进而数据化,越来越多的数据处理要求实时化、流式化,当前这类处理模型开始面临实时化的巨大挑战。传统的批量数据处理模型传统的批量数据处理通常基于如下处理模型:

  1. 使用ETL系统或者OLTP系统构造原始的数据存储,以提供给后续的数据服务进行数据分析和数据计算。即下图,用户装载数据,系统将根据自己的存储和计算情况,对于装载的数据进行索引构建等一系列查询优化工作。因此,对于批量计算,数据一定需要预先加载到计算系统,后续计算系统才在数据加载完成后方能进行计算。
  2. 用户/系统主动发起一个计算作业(例如MaxCompute的SQL作业,或者Hive的SQL作业)并向上述数据系统进行请求。此时计算系统开始调度(启动)计算节点进行大量数据计算,该过程的计算量可能巨大,耗时长达数分钟乃至于数小时。同时,由于数据累计的不可及时性,上述计算过程的数据一定是历史数据,无法保证数据的”新鲜”。用户可以根据自己需要随时调整计算SQL,甚至于使用AdHoc查询,可以做到即时修改即时查询。
  3. 计算结果返回,计算作业完成后将数据以结果集形式返回用户,或者可能由于计算结果数据量巨大保存着数据计算系统中,用户进行再次数据集成到其他系统。一旦数据结果巨大,整体的数据集成过程漫长,耗时可能长达数分钟乃至于数小时。

批量计算是一种批量、高时延、主动发起的计算。 用户使用的批量计算的顺序是:

  1. 预先加载数据。
  2. 提交计算作业,并且可以根据业务需要修改计算作业,再次提交作业。
  3. 计算结果返回。
流式计算

不同于批量计算模型,流式计算更加强调计算数据流和低时延,流式计算数据处理模型如下:

  1. 使用实时数据集成工具,将数据实时变化传输到流式数据存储(即消息队列,如DataHub);此时数据的传输变成实时化,将长时间累积大量的数据平摊到每个时间点不停地小批量实时传输,因此数据集成的时延得以保证。

此时数据将源源不断写入流数据存储,不需要预先加载的过程。同时流计算对于流式数据不提供存储服务,数据是持续流动,在计算完成后就立刻丢弃。

  1. 数据计算环节在流式和批量处理模型差距更大,由于数据集成从累积变为实时,不同于批量计算等待数据集成全部就绪后才启动计算作业,流式计算作业是一种常驻计算服务,一旦启动将一直处于等待事件触发的状态,一旦有小批量数据进入流式数据存储,流计算立刻计算并迅速得到结果。同时,阿里云流计算还使用了增量计算模型,将大批量数据分批进行增量计算,进一步减少单次运算规模并有效降低整体运算时延。

从用户角度,对于流式作业,必须预先定义计算逻辑,并提交到流式计算系统中。在整个运行期间,流计算作业逻辑不可更改!用户通过停止当前作业运行后再次提交作业,此时之前已经计算完成的数据是无法重新再次计算。

  1. 不同于批量计算结果数据需等待数据计算结果完成后,批量将数据传输到在线系统;流式计算作业在每次小批量数据计算后可以立刻将数据写入在线/批量系统,无需等待整体数据的计算结果,可以立刻将数据结果投递到在线系统,进一步做到实时计算结果的实时化展现。

流计算是一种持续、低时延、事件触发的计算作业。,用户使用流计算的顺序是:

  1. 提交流计算作业。
  2. 等待流式数据触发流计算作业。
  3. 计算结果持续不断对外写出

在大部分大数据处理场景下,受限于当前流计算的整个计算模型较为简单,流计算是批量计算的有效增强,特别在于对于事件流处理时效性上,流计算对于大数据计算是一个不可或缺的增值服务

了解详细知识内容:流计算与批量计算的区别

(课程针对大数据分步式计算中的相关技术进行讲解,核心讲解流式计算和内存计算技术,阐述阿里云在处理这些功能时所使用的技术,并对阿里在这里的技术优化方式进行了详细的讲解。)

教程资料

教程课时

课时1:流式计算概述 27:45

课时2:流计算与批量计算的区别 07:16

课时3:流式计算典型系统技术分析 19:09

课时4:阿里计算核心技术概述 25:49

课时5:有状态计算实现方式 17:35

课时6:StreamSQL 14:11

课时7:大数据和数据库的结合 33:12

课时8:分析型数据库服务ADS 05:55

课时9:统一计算框架 16:01

课程目标

  • 学习分步式计算相关技术

适合人群

  • 大数据开发者、爱好者

阿里云大学官网(阿里云大学 - 官方网站,云生态下的创新人才工场

阅读更多
上一篇什么是云数据库 Redis 版
下一篇JSON自学手册图文教程
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭