开发者社区> 问答> 正文

什么是实时计算?

什么是实时计算?

展开
收起
Puppet 2020-03-22 17:01:16 1512 0
1 条回答
写回答
取消 提交回答
  • 下面从用户和产品层面来理解两类计算方式的区别。 • 批量计算 批量计算是一种批量、高时延、主动发起的计算。目前绝大部分传统数据计算和数据分析服务均是基于批量数据处理模型:使用ETL系统或者OLTP系统进行构造数据存储,在线的数据服务(包括Ad-Hoc查询、DashBoard等)通过构造SQL语言访问上述数据存储并取得分析结果。这套数据处理的方法论伴随着关系型数据库在工业界的演进而被广泛采用。传统的批量数据处理模型如下图所示。 i. 装载数据 对于批量计算,用户需要预先将数据加载到计算系统,您可以使用ETL系统或者OLTP系统装载原始数据。系统将根据自己的存储和计算情况,对于装载的数据进行一系列查询优化、分析和计算。 ii. 提交请求 系统主动发起一个计算作业(例如MaxCompute的SQL作业,或Hive的SQL作业)并向上述数据系统进行请求。此时计算系统开始调度(启动)计算节点进行大量数据计算,该过程的计算量可能非常大,耗时长达数分钟乃至于数小时。由于数据累计处理不及时,上述计算过程中可能就会存在一些历史数据,导致数据不新鲜。 说明 您可以根据业务需要随时调整计算SQL后再次提交作业,您甚至可以使用AdHoc查询做到即时修改即时查询。 iii. 返回结果 计算作业完成后将数据以结果集形式返回给用户,由于保存在数据计算系统中的计算结果数据量巨大,需要用户再次集成数据到其他系统。一旦数据结果巨大,整体的数据集成过程就会漫长,耗时可能长达数分钟乃至于数小时。 • 实时计算 实时计算是一种持续、低时延、事件触发的计算作业。相对于批量计算,流式计算整体上还属于比较新颖的计算概念。由于当前实时计算的计算模型较为简单,所以在大部分大数据计算场景下,实时计算可以看做是批量计算的增值服务,实时计算更强调计算数据流和低时延。实时计算数据处理模型如下。 i. 实时数据流 使用实时数据集成工具,将实时变化的数据传输到流式数据存储(例如消息队列、DataHub)。此时数据的传输实时化,将长时间累积的大量数据平摊到每个时间点,不停地小批量实时传输,因此数据集成的时延得以保证。 源源不断的数据被写入流数据存储,不需要预先加载的过程。同时,流计算对于流式数据不提供存储服务,数据持续流动,在计算完成后就被立刻丢弃。 ii. 提交流式任务 批量计算要等待数据集成全部就绪后才能启动计算作业,而流式计算作业是一种常驻计算服务。实时计算作业启动后,一旦有小批量数据进入流式数据存储,流计算会立刻计算并得出结果。同时,阿里云流计算还使用了增量计算模型,将大批量数据分批进行增量计算,进一步减少单次运算规模并有效降低整体运算时延。 从用户角度,对于流式作业,必须预先定义计算逻辑,并提交到流式计算系统中。在整个运行期间,流计算作业逻辑不可更改。用户通过停止当前作业运行后再次提交作业,此时之前已经计算完成的数据是无法重新再次被计算。 iii. 实时结果流 不同于批量计算,结果数据需等待数据计算结果完成后,批量将数据传输到在线系统。流式计算作业在每次小批量数据计算后,无需等待整体的数据计算结果,会立刻将数据结果投递到在线/批量系统,实现计算结果的实时化展现。 使用实时计算的顺序如下: iv. 提交实时计算作业。 v. 等待流式数据触发实时计算作业。 vi. 计算结果持续不断对外写出。 计算模型差别对比。

    2020-03-22 17:01:33
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
实时计算Flink版&Hologres全域实时数仓实践 立即下载
实时数仓“王炸组合”实时计算Flink版+Hologres 立即下载
阿里云实时计算Flink版解决方案白皮书-2021版 立即下载