许佳胜 李若白 刘立云 王昊天 河北农业大学信息科学与技术学院
从字面意义上来看,大数据表示数量上数据规模的庞大,但是我们无法将其区别于以往的名词如“海量数据”,但我们可以从其特征来深入的理解。
一般来说大数据有三个特征,分别是规模性、多样性和高速性。规模性指数据的规模和容量巨大;多样性指数据的类型多种多样,包括结构化的和无结构化的数据;高速性是指数据的增长速度非常快,在增长的高峰期接近于指数级增长。我们在实际应用过程中应该首要理解大数据的这些特征,再进行下一步分析。
大数据的处理模式分为两种,一种是流处理,一种是批处理。流是一种数据传送技术,它把客户端产生的数据转变成稳定的数据流,所以流处理的处理方式为直接处理,而批处理,顾名思义,则是对数据进行批量的处理。
提出流处理的基本概念是人们普遍认为在数据的处理过程中数据的价值会随着时间的推移而逐渐减少,所以需要尽可能快的处理实时产生的数据。客户端接连不断产生的数据构成了流处理的原材料——数据流,数据流中的数据会根据数据产生的时间依次被系统处理并返回结果。
由于数据流具有持续性、快速性和规模大的特点,系统一方面不可能对传送的所有数据永久性的存储,另一方面接受到的数据又处在不断变化当中,所以往往做到数据的实时处理具有一定的难度。流处理一般是在内存中完成的,但内存的容量是有限的,这成为缩短响应时间的一个很大的瓶颈。数据流理论和技术的提出已经有十几年,人们目前已经研究出了很多实际的系统应用,例如Facebook 的 Scribe、Apache的Flume、Twitter的 Storm等。
数据的批处理,可以通俗理解为在数据输入处理过程中成批次的并行处理,处理之后的结果再转化成最终的结果输出,Google的MapReduce模式是目前批处理模式中比较成功的一种,下面简单介绍其处理流程:
待处理的数据先要进行分批处理,经过分批后的每个数据块再转交给相应的Map任务区,Map任务区首先把数据块中的数据解析成一个个的键值对,然后利用Map函数处理这些键值对并把结果存储到硬盘。接下来,Reduce任务负责把这些键值对按照键值排好序,将具有相同键值的数据组合在一起,之后调用Reduce函数来产生最终的结果。Map函数和Reduce函数是该模型的核心,通过定义这两个函数可以将模型按照相应的规则来处理大规模数据。目前该模型由于其简单性和适用广泛性已普遍应用于生物信息,文本挖掘等领域。
虽然大数据的来源广泛,包括交易数据、移动通信数据、机器检测数据、互联网上的开放数据等等,但大数据处理的基本流程是一样的。流程可分为三个阶段:数据的抽取与集成、数据分析以及数据解释。
由于大数据的来源广泛,首先要从数据源中抽取出关系和实体,再将其经过关联后采用统一的结构来进行存储。在数据的抽取和集成的过程中同时还要注意到对数据的清洗工作,以此来保证数据的准确性和可靠性。
数据的抽取和集成技术到目前还在不断发展之中,比较常见的数据抽取工具有可通过图形界面把抽取的数据再次过滤的Import.io,支持跨平台抽取的Parsehub等。
数据分析阶段的输入为在数据的抽取与集成阶段形成的有结构的数据,在实际应用中可根据需求不同有选择的对数据进行分析。
在大数据时代一些之前提出的分析数据的方法例如计划评审技术、统计分析等将需要进一步作出改进。由于大数据的处理要求系统具有实时性,算法的高处理效率尤为重要,所以分析算法要更多考虑其效率问题。又如面对大数据常见的处理方式云计算时,很多算法需要根据云计算框架作出适应性调整。目前大数据分析已经被广泛应用到各个领域,如电商领域的客户需求分析、金融领域的金融分析、房地产行业的投资决策分析等。
数据解释面向的对象是用户,若正确的数据分析结果不加以正确解释,将导致用户难以理解甚至误导用户的情况。传统的数据解释的方法有很多,如通过文本的方式展示给用户,这种方式在小数据量的情况下是适用的,但面对大数据这样大规模的数据往往显得力不从心。
在展示大规模的数据时我们可以引入可视化技术,数据分析结果通过直观清晰的可视化界面能够使用户更容易理解和接受,目前常用的可视化技术有datav、echarts等。
通过本文我们可以了解到大数据的基本概念,对大数据的处理模式和大数据的处理流程有基本的认识。我们应该认识到,大数据时代已经悄然而至,但目前尚处于不成熟的阶段,还面临着诸多挑战,如大数据能耗问题,大数据隐私问题等。