大数据关键技术浅谈之大数据处理

2020-11-17  本文已影响0人  企通查

在本篇文章中,企通查将为大家介绍两种大数据的主要处理模式:流处理和批处理。

如果把数据比作石油,那么大数据处理就相当于要对数据石油进行精炼,而流处理和批处理这两种处理模式就是精炼数据石油的方法。那么,流处理和批处理到底是什么意思呢?

数据的“边界”

在介绍什么是流处理和批处理之前,需要先向大家介绍两个概念:有边界数据和无边界数据。

随着大数据系统(如物联网数据监控系统、视频流系统等)的大规模出现,亟待分析处理的数据源源不断地产生、汇聚,日常生活工作中我们也经常会和这些数据打交道,它们被抽象分为两类数据,即有边界数据和无边界数据。

无边界数据

无边界数据,其实就是一种可增长、无限的数据集,也可以将其称为流数据。

举个例子,某软件的用户每时每刻都可能会打开软件,并通过账号产生各种各样的数据,我们无法判断数据会在什么时候停止发送,也无法判断它是否会彻底结束。

 

有边界数据

而有边界数据,其实就是一种保存好了的数据,例如数据库中的数据或者csv中的数据等。

拿上边说到的无边界数据来说,如果按照一定的时间窗口,从中拿取一小部分数据,那么提取出来的数据就可以被称为有边界数据。

数据的“处理模式”

大数据的处理模式可以分为流处理模式和批处理模式两种。

批处理

数据的批处理,可以理解为一系列相关的任务按顺序或并行的,一个接一个地执行。批处理的输入是在一段时间内收集好的数据。每次批处理的输出都可以是下次批处理的的输入。

大部分情况下,批处理任务会被提前按照预先设定好的时间间隔来执行,例如一天、一个月、一年的某个特定时间。同时由于批处理的输入数据和输出数据都是上边介绍的有边界数据。所以在批处理中,我们更关注的是事件时间。

*事件时间:指一个数据实际产生的时间。与之相对的概念还有处理时间,指这条数据实际被处理数据的系统接收的时间。

举个例子,假如你肚子饿了准备点个外卖,在12点下了单,但是由于WiFi信号不好导致外卖订单一直没有支付成功,你随即切换了移动网络,平台显示12点02分下单成功,这个例子里的12点整就是事件时间,12点02分就是处理时间。

图:批处理简化流程示意图

举个例子,很多软件都会在年初的时候对你这一年所做的事情通过数据统计进行分析,从而得到一些有趣的结论。以网易云音乐为例,它会将用户过去一年听取歌曲的相关信息记录存储下来,并将其作为年度听歌报告的分析数据来源,经过批处理的一系列分析计算得到一份个人专属的数据统计结果进行输出。

批处理的系统框架通常会被设计在日志分析、计费应用程序、数据仓库等应用场景中。

由于批处理“先存储后处理”的特性,使得它具有高延迟性,有时计算需要几小时、几天甚至是几周的时间。所以,如果对于结果的实时性要求比较高,那么就应当考虑使用另一种处理数据的方式——流处理。

流处理

数据的流处理,可以理解为系统需要接收并处理一系列连续不断变化的数据,且输入的基本都是无边界数据。

与批处理的迂回不同,流处理对于数据会“直接处理”。因此流处理的特点是足够快、低延迟、以及能够及时处理来自各种数据源的大规模数据。例如大家使用频率很高的搜索引擎,系统必须在用户输入关键字后以毫秒级的延时返回搜索结果给用户。

流处理所需的响应时间通常会以毫秒或秒来进行计算。当流处理架构拥有一定时间间隔(毫秒)内产生逻辑上正确的结果,这种架构就可以被定义为实时处理。而当一个系统可以接收以分钟为单位的数据处理时间延时,我们可以把它定义为准实时处理。

图:流处理简化流程示意图

在流处理系统中,我们更关心事件时间还是处理时间?一般是随应用场景而定的。

例如,像网页监控系统这样的流处理系统需要计算网站的QPS(即每秒查询率,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准)时,我们更关心的是处理时间,即网页请求数据被监控系统接收到的时间。而在一些医疗护理监控系统的流处理系统中,显然我们会更关心数据的事件时间。

与批处理不同,流处理架构拥有低延迟和高吞吐等特点,通常会用于实时监控、实时商业智能、销售终端系统等。

无论是批处理模式还是流处理模式,在现实中都是广泛的被使用,而采用哪种处理模式,则应当由使用场景决定。

比如在不需要实时分析结果的情况下,其实批处理是一个很好的选择。特别是业务逻辑复杂、数据量大的时候,批处理的处理模式更容易从数据中挖掘到有用的信息。

而在对应用的实时分析处理有要求的情况下,或者数据传输的结束时间、数据量无法确定的情况下,就可以采用流处理的处理架构。

大数据处理的挑战

对有大数据处理需求的企业来说,如果需要能够支撑一定场景需求的分析系统,大体需要面临的技术挑战有:

业务分析的数据范围横跨实时数据和历史数据,既需要低延迟的实时数据分析,也需要对PB 级别的历史数据进行探索性的数据分析;

可靠性和可扩展性问题,用户可能会存储海量的历史数据,同时数据规模有持续增长的趋势,需要引入分布式存储系统来满足可靠性和可扩展性需求,同时保证成本可控;

技术栈深,需要组合流式组件、存储系统、计算组件和;

可运维性要求高,复杂的大数据架构难以维护和管控;

……

越来越多的行业和技术领域需求大数据分析系统,例如金融行业需要使用大数据系统结合VaR(value at risk,即一种定量衡量风险的指标)或者机器学习方案进行信贷风控,零售、餐饮行业需要大数据系统实现辅助销售决策,各种 IOT 场景需要大数据系统持续聚合和分析时序数据,各大科技公司需要建立大数据分析中台等等。

上一篇 下一篇

猜你喜欢

热点阅读