大数据 - 数据处理分类篇
数据处理分类篇
作者 | WenasWei
一 数据发展
大数据是这个时代最热的话题,大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
其实数据一直都在,只不过是记录数据的方式在变化。自古至今,可以简单分为四个阶段: 书籍载体阶段、计算机存储阶段、互联网阶段和物联网阶段。
1.1 书籍载体阶段
第一个阶段,以前没有 IT 前使用的是书本等记录数据,这个时候受限于采集数据的手段单一、人生产数据的工作效率低以及分享的不便捷性,导致数据单一、量少。这个时候数据的特点是少量、价值密度高。
1.2 计算机存储阶段
第二个阶段当有了 IT 技术后,我们把我们的工作数据和个人数据记录在服务器里面,这也就是信息化。例如银行的业务系统,企业的 OA 系统等,通过信息化引发的各种工作数据、业务数据开始进入到服务器中。这个时候的数据呈现出业务性特点。
1.3 互联网阶段
第三个阶段当出现了互联网后,我们的数据开始加大、开始出现分享的文档、图片、视频等数据。这个时候数据开始出现大量、多样性、价值密度低等特点。
1.4 物联网阶段
第四个阶段也就是我们目前所处的阶段,这其实也是由新技术以及环境的变化引发的现象。物联网的兴起带来了大量的高速的物联数据,例如 gps 设备、监控心跳和血压等设备。移动互联网导致我们以手机为终端实时产生大量的语音、图片、视频等多样性的数据,例如我们每天用微信聊天沟通,支付等。这个阶段的数据的特点是随时随地产生数据。真正达到了具备 4V 的特征。
二 批式数据处理计算
批式大数据又被称为历史大数据,数据的批处理,可以理解为一系列相关的任务按顺序或并行的,一个接一个地执行。批处理地输入是在一段时间内收集好地数据。每次批处理地输出都可以是下次批处理地输入。
大部分情况下,批处理地输入数据和输出数据都是有边界数据。
2.1 何为有边界的数据呢
有边界数据,其实就是一种保存好了的数据,例如数据库中的数据或者 csv 中的数据等
拿交易数据来说,如果按照一定的时间窗口,拿取一小部分数据,那么提取出来的数据也是有边界数据了。例如: 提取 2019 年 08 月 19 日这天的数据来做处理,提取出来地这份数据就是有边界数据。
其中的边界并不是固定的,有很多种边界划分,如: 时间、地域空间、种类划分等。
2.2 批式处理含义
批处理一般是解决离线计算数据量大,计算时间慢的问题,流处理相反是为了解决实时计算或是近实时计算问题,当然有了实时的要求就会使处理的数据量变少,但是计算速度要求更快,两者相同点都要求数据计算的准确性有保障。
复杂的批量数据处理(batch data processing),通常的时间跨度在数十分钟到数小时之间,甚至更加长达数天、数周。
2.3 批式处理场景和技术
批处理的系统架构通常会被设计在以下这些应用场景中:
日志分析:日志系统是在一定时间段内收集的。而日志系统的数据处理分析是在不同的时间内执行的,以得到系统的关键性指标(例如之前说的准确性和系统容量等)。
计费的应用程序:计费应用程序会计算出一段时间内一项服务的使用程度,并生成计费信息,例如支付宝花呗的还款账单。
数据仓库:数据仓库的主要目标是根据收集好的数据事件时间,将数据信息合并为静态快照(static snapshot),并将它们聚合为每周、每月、每季度的报告等。
像现在的 Apache Hadoop 或者是 Apache Spark 等开源框架都是支持这种大数据批处理架构的。
三 流式数据处理计算
流式大数据又被称为实时大数据,流式大数据实时处理是大数据时代信息化的重要抓手。
其采用“事中”甚至“事前”模式实现感知、分析、判断、决策等功能的智能系统需要流式大数据实时处理平台的支撑。此外,流式大数据实时处理可以为大数据驱动的深度学习提供计算框架支撑。“流立方”流式大数据实时处理平台可为研制融合逻辑推理、概率统计、众包、神经网络等多种形态的下一代人工智能统一计算框架提供支持。
3.1 流式计算和实时计算又有什么区别
流式计算关心的是数据以数据流形式输入、处理和输出,本身并不强调数据从入站到反映在最终结果的时延,比实时计算要稍微迟钝些,但比离线计算又实时的多,而且主要强调的是计算方法。
实时计算强调的是数据从产生到影响最终结果的时延要低,本身并不关心数据是以何种形式在系统中传递。实际应用中,由于批处理系统往往要求等待一批数据到齐才开始处理,而流式计算系统通常能够对每条记录立即产生输出)。
3.2 实时计算,强调的是实时
实时计算一般都是针对海量数据进行的,一般要求为秒级,甚至数据量大且无法或没必要预算,但要求对用户的响应时间是实时的;实时计算主要分为两块: 数据的实时入库、数据的实时计算;数据源是实时的不间断的,要求用户的响应时间也是实时的。
比如小明要查看他去年一年的消费总额度,那么当小明点下统计按钮的时候,服务器集群就在噼里啪啦的赶紧计算了,必须在小明能够忍耐的时间范围内得出结果。这种计算的背后实现,一般都是冗余 + 各种高性能部件在做支撑,算法也对实时性做了优化,但实时计算并没有强调用那种算法,只要能保证高实时性的就行。
基于实时数据流的数据处理(streaming data processing),通常的时间跨度在数百毫秒到数秒之间。
3.3 流式计算,强调的是计算方法
流式计算,比实时计算要稍微迟钝些,但比离线计算又实时的多,而且主要强调的是计算方法。
比如,服务器端,有一个值,是记录小明订单数量。当小明每买一件东西后,服务端立即发出一个交易成功的事件,该值接收到这个事件后就立即加 1。如果用离线计算的方式来做,估计是在查询时,才慢腾腾的从低速存储中,把小明的所有订单取出来,统计数量。流式计算有点像数据库领域的触发器,又有些像事件总线、中间件之类的计算模式。
3.4 流式处理场景和技术
流式数据处理主要应用的场景:
对于大型网站的流式数据:网站的访问 PV/UV、用户访问了什么内容、搜索了什么内容等,实时的数据计算和分析可以动态实时地刷新用户访问数据,展示网站实时流量的变化情况,分析每天各小时的流量和用户分布情况
物联网(IoT):设备故障告警:极其迅速感知到故障的发生,并及时进行告警;实时监控:实时分析设备的监控数据,实现对设备各项指标的实时监控;动态跟踪:实时跟踪并显示设备(比如汽车)的位置;
金融行业:欺诈探测:实时分析用户行为,并及时辨识到可疑欺诈行为;客户营销:根据用户即时的行为记录,实时为客户推荐个性化的金融产品;数据运营:根据业务需求灵活组合使用和业务集成,实现“数据驱动业务”。
视频直播:实时监控:通过通过对日志文件进行实时分析,及时发现视频中顿率、延迟、丢包等问题;个性化推荐:根据视频用户的访问内容,实时为视频用户推荐个性化内容;实时统计:实时统计当前直播间运营情况,包括热门视频、用户走势等等。
电商行业:个性化精准推荐:实时掌握用户的需求和喜好,进行个性化精准推荐;实时报表:多维度实时了解 PV\UV、销量、销售额、地域分布等;实时感知变化趋势:对商品整体的热度和关注量进行动态监测,感知商品关注度变化趋势。几个流处理的应用场景:
代表技术主要有: Flume 实时获取数据、Kafka/metaq 实时数据存储、Apache Flink、Apache Samza、Storm/JStorm 实时数据计算、Redis 实时结果缓存、持久化存储(mysql)。
四 数据处理分类关系
大数据跟我们每个人是息息相关的,你可以回想一下我们每个人每天的场景。我们带的穿戴式设备、用的智能家电、手机等设备,我们每天上下班的乘坐的交通工具,我们进入单位后的打卡数据、工作行为、上网行为、购物行为等。
在这个信息爆炸的时代我们每个人是一台生产数据的机器,全社会上的人都在源源不断地制造数据。这是个万物互联,数据连接的时代。换言之我们每个人都是大数据的缔造者,那么我们理所当然也应成为大数据的受益者。
大量的数据需要计算处理,才能为人提供价值,所以数据处理又可以分为: 批式数据处理计算、流式数据处理计算,实时数据计算和离线数据计算,历史数据和实时数据等。
包含关系:
批式数据处理计算: 计算方式的一种
流式数据处理计算: 计算方式的一种
历史数据 -> 批式数据处理计算/流式数据处理计算/离线计算
实时数据 -> 批式数据处理计算/流式数据处理计算/实时计算
离线计算 -> 批式数据处理计算/流式数据处理计算
实时计算 -> 批式数据处理计算/流式数据处理计算
一句话总结:将源源不断产生的数据实时收集并实时计算,尽可能快的得到计算结果,用来支持决策。
经过介绍你不难发现,无论是批处理模式还是流处理模式,在现实中都是广泛的被使用,而采用哪种处理模式,则应当由使用场景决定。
版权声明: 本文为 InfoQ 作者【进击的梦清】的原创文章。
原文链接:【http://xie.infoq.cn/article/4a9703c819c00d20160c4e699】。文章转载请联系作者。
评论