一个完整的大数据生命周期,应包括如下几个环节:采集、存储、处理、分析。
这恰为我们归纳大数据核心技术,提供了思考角度。借此,我们总结出了大数据的“十五大核心技术”以供借鉴。
一. 大数据采集
大数据采集,即对各种来源(如RFID射频数据、传感器数据、移动互联网数据、社交网络数据等)的结构化和非结构化海量数据,所进行的采集。
之所以称其为“大”,是因为数据采集过程中,常需要处理“成千上万用户并发访问和操作”的难题。这里我们列举出三个大数据采集的常用方法:
A. 数据库采集
关注大数据技术的小伙伴,想必都对Sqoop和ETL工具比较熟悉。实际上,传统的关系型数据库MySQL和Oracle 依然充当着许多企业的数据存储方式。当然了,目前对于开源的Kettle和Talend本身,也集成了大数据集成内容,可实现hdfs,hbase和主流Nosq数据库之间的数据同步和集成。
B. 网络数据采集
一种借助网络爬虫或网站公开API,从网页获取非结构化或半结构化数据,并将其统一结构化为本地数据的,数据采集方式。
C. 文件采集
场被谈起的flume实时文件采集和处理,就是一种典型的文件采集形式。除此之外,基于ELK(Elasticsearch、Logstash、Kibana)的日志采集和增量采集,也涉及到“文件采集”这一数据采集形式。
二. 大数据预处理
数据预处理,指的是在进行数据分析之前,先对采集到的原始数据所进行的诸如“清洗、填补、平滑、合并、规格化、一致性检验”等一系列操作,旨在提高数据质量,为后期分析工作奠定基础。数据预处理主要包括四个部分:数据清理、数据集成、数据转换、数据规约。
A. 数据清理
数据清理,指利用ETL(Extraction/Transformation/Loading)和Potter’s Wheel等清洗工具,对有遗漏数据(缺少感兴趣的属性)、噪音数据(数据中存在着错误、或偏离期望值的数据)、不一致数据进行处理。
遗漏数据处理方法:用全局常量、属性均值、可能值填充;或直接忽略该数据;
噪音数据处理方法:用分箱(分组原始数据,并分别对各组数据平滑处理)、聚类、计算机人工检查、回归等方法,去除噪音处理;
不一致数据处理方法:手动更正。
B.数据集成
数据集成,指将不同数据源中的数据,合并存放到统一数据库的,存储方法。
该过程着重解决三个问题:模式匹配、数据冗余、数据值冲突检测与处理。
实体识别问题处理方法:针对“不同集合来源的数据,因命名差异导致的实体名称不一致”的问题,通过“利用元数据,匹配不同来源实体”的方法,进行实体识别。
数据冗余处理方法:对于因“不同来源数据,属性命名方式不一致”所导致的数据冗余问题,利用皮尔逊积矩Ra,b,结合绝对值比较的方法,确定数据间的相关性。
数据值冲突问题处理方法:对具有不同数值的各来源实体,进行数据值冲突检测与处理。
C.数据转换
数据转换,指对所抽取出来的数据中存在的不一致,进行处理的过程。它同时包含了数据清洗的工作,即根据业务规则对异常数据进行清洗,以保证后续分析结果准确性。
数据名称及格式统一处理:即数据粒度转换、商务规则计算以及统一的命名、数据格式、计量单位等;
数据仓库中较源数据库多出数据的处理:字段的组合、分割、计算。
D. 数据规约
数据归约,指在最大限度保持数据原貌(尽可能保持数据完整性)的基础上,最大限度精简数据量,以得到较小数据集的操作,包括:数据方聚集、维规约、数据压缩、数值规约、概念分层等。
三. 大数据存储
大数据存储,指用存储器,以数据库的形式,存储采集到的数据的过程。大数据存储技术的三种典型路线:
A. 基于MPP架构的新型数据库集群
采用Shared Nothing架构,结合MPP架构的高效分布式计算模式,通过列存储、粗粒度索引等多项大数据处理技术,重点面向行业大数据所展开的数据存储方式。具有低成本、高性能、高扩展性等特点,在企业分析类应用领域有着广泛的应用。
较之传统数据库,其基于MPP产品的PB级数据分析能力,有着显著的优越性。自然,MPP数据库,也成为了企业新一代数据仓库的最佳选择。
B. 基于Hadoop的技术扩展和封装
基于Hadoop的技术扩展和封装,是针对传统关系型数据库难以处理的数据和场景(针对非结构化数据的存储和计算等),利用Hadoop开源优势及相关特性(善于处理非结构、半结构化数据、复杂的ETL流程、复杂的数据挖掘和计算模型等),衍生出相关大数据技术的过程。
伴随着技术进步,其应用场景也将逐步扩大,目前最为典型的应用场景:通过扩展和封装 Hadoop来实现对互联网大数据存储、分析的支撑,其中涉及了几十种NoSQL技术。
C. 大数据一体机
这是一种专为大数据的分析处理而设计的软、硬件结合的产品。它由一组集成的服务器、存储设备、操作系统、数据库管理系统,以及为数据查询、处理、分析而预安装和优化的软件组成,具有良好的稳定性和纵向扩展性。
四. 大数据分析挖掘
从可视化分析、数据挖掘算法、预测性分析、语义引擎、数据质量管理等方面,对杂乱无章的数据,进行萃取、提炼和分析的过程。
A. 可视化分析
可视化分析,指借助图形化手段,清晰并有效传达与沟通信息的分析手段。主要应用于海量数据关联分析,即借助可视化数据分析平台,对分散异构数据进行关联分析,并做出完整分析图表的过程。
具有简单明了、清晰直观、易于接受的特点。
B. 数据挖掘算法
数据挖掘算法,即通过创建数据挖掘模型,而对数据进行试探和计算的,数据分析手段。它是大数据分析的理论核心。
数据挖掘算法多种多样,且不同算法因基于不同的数据类型和格式,会呈现出不同的数据特点。但一般来讲,创建模型的过程却是相似的,即首先分析用户提供的数据,然后针对特定类型的模式和趋势进行查找,并用分析结果定义创建挖掘模型的最佳参数,并将这些参数应用于整个数据集,以提取可行模式和详细统计信息。
C. 预测性分析
预测性分析,是大数据分析最重要的应用领域之一,通过结合多种高级分析功能(特别统计分析、预测建模、数据挖掘、文本分析、实体分析、优化、实时评分、机器学习等),达到预测不确定事件的目的。
它帮助分用户析结构化和非结构化数据中的趋势、模式和关系,并运用这些指标来预测将来事件,为采取措施提供依据。
D. 语义引擎
语义引擎,指通过为已有数据添加语义的操作,提高用户互联网搜索体验。
E. 数据质量管理
指对数据全生命周期的每个阶段(计划、获取、存储、共享、维护、应用、消亡等)中可能引发的各类数据质量问题,进行识别、度量、监控、预警等操作,以提高数据质量的一系列管理活动。
高质量的数据和有效的数据管理,是获得准确分析结果的保障。