淘宝大数据之流式计算

2019-09-24 16:51:21 浏览数 (1)

到底什么是大数据?大数据与数据统计有什么区别?如果不理解大数据的承载底层技术,很难讲清楚。因此作为解决方案经理,技术与业务都是作为方案不可缺少的组成部分。今天我们来看一下大数据之流式计算。

一、流式计算的应用场景

我们上一章讲到了数据采集。数据采集之后,如何利用数据呢?将采集的数据快速计算后反馈给客户,这便于流式计算。 流式计算在物联网、互联网行业应用非常之广泛。在电商“双11”节中,不断滚动的金额数据;在交通展示大通,不断增加的车辆数据,这些都是流式计算的应用场景。

二、数据时效性的三种分类

离线:在今天(T)处理N天(N>1)前的数据,延迟时间粒度为天。例如我们想统记手环记录的全年分24小时的每小时跑步数情况。

准实时:在当前小时(H)处理N小时前(N>1)小时前的数据,延延时间粒度为小时。

实时:在当前时刻处理当前的数据,延迟时间粒度为秒。例如,我们想实时展示全市的各采集点的空气质量情况。

三、离线、流式数据的处理要求

1、对于离线、准实时数据都可以在批处理系统中实现(比如MapReduce、MaxCompute),对于此类数据,数据源一般来源于数据库(HBase、Mysql等),而且采用了分布式计算,因此具有处理时间长、处理数据量大的特别,MapReduce不适合处理实时数据。

2、流式数据是指业务系统每产生一条数据,就会立刻被发送至流式任务中进行处理,而不需要定时调度任务来处理数据。中间可能会经过消息中间件(MQ),作用仅限于削峰等流控作用。

四、流式数据的特点

1、时间效高。数据采集、处理,整个时间秒级甚至毫秒级。

2、常驻任务、资源消耗大。区别于离线任务的手工、定期调度,流式任务属于常驻进程任务,会一直常驻内存运行,计算成本高。

3、性能要求高。如果实时任务1分钟只能处理30秒钟采集的数据,那么只能造成系统崩溃。

4、应用局限性。实时数据处理不能代替离线处理。例如想统计过去一年的电商消耗金额,这个任务不需要随时执行,只需要一次;如果用实时数据处理只是浪费社会资源。

五、流式数据的技术架构

1、数据采集

数据的源头,一般来自于业务的日志服务器或物联网终端等。这些数据被实时采集到数据中间件,供下游订阅。

2、数据处理

下游任务(Spark、Storm、Flink、StreamCompute等应用)实时订阅数据,并进行实时数据处理。

3、数据处理

数据实时加工后,会被写到个在线服务存储系统(一般是Redis、MangoDB、HBase等高速数据库)借助大屏应用读取。

4、数据服务

通过UI、BI等界面展示程序,将数据实时投影到大屏中,形成大家看到的图形、不断变幻的数字。

0 人点赞