大数据技术体系发展至今,不断充实完善,与互联网、物联网、人工智能等其他信息通信技术融合交汇,现已较为成熟。围绕数据资源的全生命周期过程** ,大数据基础技术包含大数据采集技术、大数据预处理技术、大数据存储及计算技术、大数据分析技术等。
大数据采集
大数据采集是大数据生命周期的第一个环节。随着各类技术和应用的发展,数据来源多种多样,除了传统的关系型数据库外,还包括众多非结构化数据库,以及互联网、物联网等等。数据类型也是越发丰富,包括原有的结构化数据,更多的还是半结构化数据和非结构化数据。按照数据来源不同,大数据采集技术和方法也存在较大差异,下面我们按照数据库数据采集、网络数据采集、物联网数据采集分类说明。
1.数据库数据采集
数据库数据采集因数据库类型不同以及其中存储数据类型是结构化还是非结构化而有所不同。
针对传统的关系型数据库,一般采用ETL(数据抽取、转换和加载)工具、SQL编码、ETL工具与SQL编码结合三种方式。ETL工具经过多年的发展,已经形成了相对成熟的产品体系,尤其是针对传统关系型数据库,典型代表包括:Oracle的OWB、IBM的Datastage、Microsoft的DTS、Informatica等。借助ETL工具可以实现数据库数据的快速采集及预处理,屏蔽复杂的编码任务,可提高速度,降低难度,但是缺乏灵活性。通过SQL编码方式实现数据库数据采集,相对使用ETL工具更加灵活,可以提高数据采集及预处理的效率,但是编码复杂,对技术要求比较高。ETL工具与SQL编码相结合可以综合前两种方法的优点,极大提高数据采集及预处理的速度和效率。
针对非结构化数据库采集以及不同类型数据库之间的数据传递,目前用的比较多的是一些开源项目提供的ETL工具, 典型代表包括:Sqoop、Kettle和Talend等,专为大数据而设计,可兼顾离线和实时数据采集,可以实现主流非结构化数据库(如HDFS、HBase及其他主流NoSQL数据库)与传统关系型数据库(如MySQL、Oracle、PostgreSQL等)之间的数据双向传递。
相对来说,数据库数据价值密度高,主要是通过日志文件、系统接口函数等方式采集,采集技术规范,可用工具较多,面向不同类型数据库的统一采集技术将成为未来的重要发展趋势。
2.网络数据采集
网络数据采集根据采集的数据类型又可以分为互联网内容数据采集和网络日志采集两类。
互联网内容数据采集主要是利用网络爬虫技术和网站公开的应用编程接口(API,Application Programming Interface)等方式, 辅以分词系统、任务与索引系统综合运用实现从网站上获取内容数据的过程。 这种方式可将互联网上半结构化数据、非结构化数据从网页中提取出来,并以结构化的方式将其存储为统一的本地数据文件,支持图片、音频、视频等文件或附件的采集以及自动关联。网络爬虫是一种按照一定规则,自动抓取互联网内容的程序或者脚本。网络爬虫技术最早主要运用在搜索引擎中,互联网搜索引擎与网页持有者之间通过Robots协议约定哪些信息可以被爬取,哪些信息不该被爬取。
网络日志采集目前用的比较多的是开源日志采集系统, 典型代表包括:Flume、Scribe、Logstash、Fluentd等。Flume是Cloudera贡献给Apache的一个开源日志采集系统项目,具有高可用性、高可靠性和分布式的特点,可以实现海量日志的实时动态采集、聚合和传输。Scribe是Facebook的开源日志采集系统项目,具有可扩展性和高容错的特点,可以实现日志的分布式采集和统一处理。Logstash部署使用相对简单,更加注重日志数据的预处理,可以为后续日志解析做好铺垫。Fluentd的部署与Flume比较相似,扩展性非常好,应用也相当广泛。
3.物联网数据采集
无论是消费物联网、产业物联网,还是智慧城市物联网,可能涉及RFID电子标签、定位装置、红外感应装置、激光雷达以及多种传感器等装置, 可以说物联网终端设备的作用就是采集物联网数据,可能涉及对声音、光照、热度、电流、压力、位置、生物特征等等各类数据的采集。 物联网数据涉及范围广阔,数据相对分散,数据类型差异巨大,数据采集方法和采集手段也存在较大差异。
大数据预处理
大数据分析与挖掘需要的数据往往是通过多个渠道采集的多种类型的数据,通过上述大数据采集技术采集到的数据往往存在数据冗余、数据缺值、数据冲突等数据质量问题,需要通过大数据预处理技术提高数据质量,使数据更符合分析挖掘需要,以保证大数据分析的正确性和有效性,获得高质量的分析挖掘结果。 大数据预处理技术可以对采集到的原始数据进行清洗、填补、平滑、合并、规格化以及一致性检查等操作,将杂乱无章的原始数据转化为相对单一且便于处理的结构类型,为后期的大数据分析挖掘奠定基础。 大数据预处理主要包括:数据清理、数据集成、数据转换以及数据规约四大部分。
1.数据清理
数据清理主要是通过检测数据中存在冗余、错误、不一致等问题,利用各种清洗技术去噪声数据,形成一致性数据集合,包括清除重复数据、填充缺失数据、消除噪声数据等。 清除重复数据一般采用相似度计算等统计分析方法。针对缺失数据处理有两种方式,一种是忽略不完整数据即清除缺失数据,另外一种是通过统计学方法、分类或聚类方法填充缺失数据确保数据可用性。在实际应用中,数据采集过程中还会因为多种原因产生大量的噪声数据(在合理的数据域之外),如果不加处理,会造成后续分析挖掘结果不准确、不可靠。常用的消除噪声数据的方法包括分箱、聚类、回归等统计学和数学方法。
主要的数据清洗工具包括前述Sqoop、Kettle和Talend等开源ETL工具,以及Apache Camel、Apache Kafka、Apatar、Heka和Scriptella等开源ETL工具。此外Potter’s Wheel也应用较多,此款数据清理工具交互性强,还集成了偏差检测和数据变换功能。
2.数据集成
数据集成是指将来源于多个数据源的异构数据合并存放到一个一致的数据库中。 这一过程主要涉及模式匹配、数据冗余、数据值冲突的检测与处理,主要工具仍是上述提到的开源ETL工具。模式匹配主要用于发现并映射两个或多个异构数据源之间的属性对应关系,朴素贝叶斯、stacking等机器学习算法在模式匹配中应用较为广泛。数据冗余可能来源于数据属性命名的不一致,可以利用皮尔逊积矩相关系数(Pearson product-moment correlation coefficient)来衡量数据属性命名的一致性,绝对值越大表明两者之间相关性越强。数据值冲突主要表现为来源不同的同一实体具有不同的数据值,针对数据值冲突问题有时需要辅以人工确定规则加以处理。
3.数据变换
数据变换就是处理采集上来的数据中存在的不一致的过程,包括数据名称、颗粒度、规则、数据格式、计量单位等的变换,也包括对新增数据字段进行组合、分割等变换。 数据变换实际上也包含了数据清晰的相关工作,需要根据业务规则对不一致数据进行清洗,以保证后续分析结果的准确性。数据变换的主要目的在于将数据转换后适合分析挖掘的形式,选用何种数据变换方法取决于大数据分析和挖掘算法。常用变换方法包括: 函数变换,使用数学函数对每个属性值进行映射;对数据进行规范化,按比例缩放数据的属性值,尽量落入较小的特定区间。规范化既有助于各类分类、聚类算法的实施,又避免了对度量单位的过度依赖,同时可规避权重不平衡问题。
4.数据规约
数据归约是指在尽可能保持数据原貌的前提下,寻找最有用特征以缩减数据规模,最大限度精简数据,涉及的技术和方法主要包括高维数据降维处理方法(维归约)、实例规约、离散化技术,以及不平衡学习等机器学习算法。 数据规约技术可以用来得到数据集的规约表示,使得数据集变小,但同时仍然近于保持原数据的完整性,可以在保证分析挖掘准确性的前提下提高分析挖掘的效率。目前基于海量数据的数据归约技术已经成为大数据预处理的重要问题之一。
大数据存储计算
大数据存储与计算技术是整个大数据系统的基础。当前的大数据系统架构主要有两种: 一种是MPP数据库架构,另一种是Hadoop体系的分层架构。 这两种架构各有优势和相应的适用场景。另外,随着光纤网络通信技术的发展,大数据系统架构正在向存储与计算分离的架构和云化架构方发展。
1.MPP
MPP(Massively Parallel Processing,大规模并行处理)架构。 MPP架构是将多个处理节点通过网络连接起来,每个节点是一台独立的机器,节点内的处理单元独占自己的资源, 包括内存、硬盘、IO等,也就是每个节点内的CPU不能访问另一个节点的内存,MPP架构服务器需要通过软件实现复杂的调度机制以及并行处理过程。重点面向行业大数据,采用Shared Nothing架构,通过列存储、粗粒度索引等多项大数据处理技术,再结合MPP架构高效的分布式计算模式,完成对分析类应用的支撑,运行环境多为低成本PC Server,具有高性能和高扩展性的特点,在企业分析类应用领域获得极其广泛的应用。
这类MPP产品可以有效支撑PB级别的结构化数据分析,这是传统数据库技术无法胜任的。对于企业新一代的数据仓库和结构化数据分析,目前最佳选择是MPP数据库。
2.Hadoop
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。具有可靠、高效、可伸缩的特点。Hadoop的核心是HDFS和MapReduce。
HDFS(Hadoop分布式文件系统),是Hadoop体系中数据存储管理的基础。 它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。它提供了一次写入多次读取的机制,数据以块的形式,同时分布在集群不同物理机器上。
MapReduce(分布式计算框架)是一种分布式计算模型,用以进行大数据量的计算。 它屏蔽了分布式计算框架细节,将计算抽象成map和reduce两部分,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce非常适合在大量计算机组成的分布式并行环境里进行数据处理。
围绕Hadoop衍生出相关的大数据技术,应对传统关系型数据库较难处理的数据和场景,例如针对非结构化数据的存储和计算等,充分利用Hadoop开源的优势,伴随相关技术的不断进步,其应用场景也将逐步扩大,目前最为典型的应用场景就是通过扩展和封装Hadoop来实现对互联网大数据存储、分析的支撑。这里面有几十种NoSQL技术,也在进一步的细分。对于非结构、半结构化数据处理、复杂的ETL流程、复杂的数据挖掘和计算模型,Hadoop平台更擅长。 目前来说主流的选择就是分布式架构,而在分布式架构系统当中,Hadoop可以说是经过考验的比较成熟且稳定的大数据平台系统, 因此很多企业大数据平台,都是基于Hadoop来搭建的。
大数据分析挖掘
大数据分析需要从纷繁复杂的数据中发现规律提取新的知识,是大数据价值挖掘的关键。数据分析主要有两条技术路线:一是凭借先验知识人工建立数学模型来分析数据;二是通过建立人工智能系统,使用大量样本数据进行训练,让机器代替人工获得从数据中提取知识的能力。** 传统数据挖掘对象多是结构化、单一对象的小数据集,挖掘更侧重根据先验知识预先人工建立模型,然后依据既定模型进行分析。对于非结构化、多源异构的大数据集的分析,往往缺乏先验知识,很难建立显式的数学模型,这就需要发展更加智能的数据挖掘技术。
1.传统分析
数据挖掘的主要过程是从数据库中提取数据,然后通过ETL组织成适合分析挖掘算法的宽表,然后使用数据挖掘软件进行挖掘。 传统的数据挖掘软件一般只支持单机小规模数据处理。由于这种限制,传统的数据分析挖掘通常采用抽样方法来减少数据分析的规模。
数据挖掘的计算复杂性和灵活性远远超过前两类要求。首先,由于数据挖掘问题的开放性,数据挖掘将涉及大量衍生变量计算,导致数据预处理计算的复杂性;其次,许多数据挖掘算法本身更复杂,计算量非常大,特别是大量的机器学习算法,是迭代计算,需要通过多次迭代,如K-means聚类算法、Pagerank算法等。在机器学习中,可细分为归纳学习方法(决策树、规则归纳)等。基于例子学习、遗传算法等。统计方法可细分为回归分析(多回归、自回归)等。判断分析(贝叶斯判断、费歇尔判断、非参数判断)等。聚类分析(系统聚类、动态聚类)等。探索性分析(主要分析、相关分析)等。
2.智能分析
与以前的众多数据分析技术相比,人工智能技术立足于神经网络,同时发展出多层神经网络,从而可以进行深度机器学习。 与以往传统的算法相比,这一算法并无多余的假设前提(比如线性建模需要假设数据之间的线性关系),而是完全利用输入的数据自行模拟和构建相应的模型结构。 这一算法特点决定了它更为灵活的且可以根据不同的训练数据而拥有自优化的能力。
大数据技术将与人工智能技术更紧密地结合,让计算系统具备对数据的理解、推理、发现和决策能力,从而能从数据中获取更准确、更深层次的知识,挖掘数据背后的价值。 随着人工智能的发展,在海量数据中挖掘有用信息并形成知识将成为可能,机器系统将逐步获得认知能力,这推动了认知计算的发展。认知计算是人工智能不断发展的产物,包括自然语言处理、语音识别、计算机视觉、机器学习、深度学习、机器人技术等。只要人们认识到大数据和分析学之间的紧密联系,就会发现认知计算和分析学一样,都是大数据分析不可或缺的,认知计算的重要性将越来越受到人们的认可。
本文部分原载于《中国金融科技运行报告》
-
互联网
+关注
关注
54文章
11153浏览量
103280 -
物联网
+关注
关注
2909文章
44611浏览量
373127 -
人工智能
+关注
关注
1791文章
47249浏览量
238399 -
大数据技术
+关注
关注
0文章
37浏览量
5127
发布评论请先 登录
相关推荐
评论