近年来,大数据来势汹汹,渗透到各行各业,带来了一场翻天覆地的变革。让人们越发认识到,比掌握庞大的数据信息更重要的是掌握对含有意义的数据进行专业化处理的技术。
大数据关键技术涵盖从数据存储、处理、应用等多方面的技术,根据大数据的处理过程,可将其分为大数据采集、大数据预处理、大数据存储及管理、大数据分析及挖掘等环节。
本文针对大数据的关键技术进行梳理,以飨读者。
Part 1.大数据采集
数据采集是大数据生命周期的第一个环节,它通过RFID射频数据、传感器数据、社交网络数据、移动互联网数据等方式获得各种类型的结构化、半结构化及非结构化的海量数据。由于可能有成千上万的用户同时进行并发访问和操作,因此,必须采用专门针对大数据的采集方法,其主要包括以下三种:
A.数据库采集
一些企业会使用传统的关系型数据库MySQL和Oracle等来存储数据。谈到比较多的工具有Sqoop和结构化数据库间的ETL工具,当然当前对于开源的Kettle和Talend本身也集成了大数据集成内容,可以实现和hdfs,hbase和主流Nosq数据库之间的数据同步和集成。
B.网络数据采集
网络数据采集主要是借助网络爬虫或网站公开API等方式,从网站上获取数据信息的过程。通过这种途径可将网络上非结构化数据、半结构化数据从网页中提取出来,并以结构化的方式将其存储为统一的本地数据文件。
C.文件采集
对于文件的采集,谈的比较多的还是flume进行实时的文件采集和处理,当然对于ELK(ElasTIcsearch、Logstash、Kibana三者的组合)虽然是处理日志,但是也有基于模板配置的完整增量实时文件采集实现。如果是仅仅是做日志的采集和分析,那么用ELK解决方案就完全够用的。
Part 2.大数据预处理
数据的世界是庞大而复杂的,也会有残缺的,有虚假的,有过时的。想要获得高质量的分析挖掘结果,就必须在数据准备阶段提高数据的质量。大数据预处理可以对采集到的原始数据进行清洗、填补、平滑、合并、规格化以及检查一致性等,将那些杂乱无章的数据转化为相对单一且便于处理的构型,为后期的数据分析奠定基础。数据预处理主要包括:数据清理、数据集成、数据转换以及数据规约四大部分。
A.数据清理
数据清理主要包含遗漏值处理(缺少感兴趣的属性)、噪音数据处理(数据中存在着错误、或偏离期望值的数据)、不一致数据处理。主要的清洗工具是ETL(ExtracTIon/TransformaTIon/Loading)和Potter’s Wheel。
遗漏数据可用全局常量、属性均值、可能值填充或者直接忽略该数据等方法处理;噪音数据可用分箱(对原始数据进行分组,然后对每一组内的数据进行平滑处理)、聚类、计算机人工检查和回归等方法去除噪音;对于不一致数据则可进行手动更正。
B.数据集成
数据集成是指将多个数据源中的数据合并存放到一个一致的数据存储库中。这一过程着重要解决三个问题:模式匹配、数据冗余、数据值冲突检测与处理。
来自多个数据集合的数据会因为命名的差异导致对应的实体名称不同,通常涉及实体识别需要利用元数据来进行区分,对来源不同的实体进行匹配。数据冗余可能来源于数据属性命名的不一致,在解决过程中对于数值属性可以利用皮尔逊积矩Ra,b来衡量,绝对值越大表明两者之间相关性越强。数据值冲突问题,主要表现为来源不同的统一实体具有不同的数据值。
C.数据变换
数据转换就是处理抽取上来的数据中存在的不一致的过程。数据转换一般包括两类:
第一类,数据名称及格式的统一,即数据粒度转换、商务规则计算以及统一的命名、数据格式、计量单位等;第二类,数据仓库中存在源数据库中可能不存在的数据,因此需要进行字段的组合、分割或计算。数据转换实际上还包含了数据清洗的工作,需要根据业务规则对异常数据进行清洗,保证后续分析结果的准确性。
D. 数据规约
数据归约是指在尽可能保持数据原貌的前提下,最大限度地精简数据量,主要包括:数据方聚集、维规约、数据压缩、数值规约和概念分层等。数据规约技术可以用来得到数据集的规约表示,使得数据集变小,但同时仍然近于保持原数据的完整性。也就是说,在规约后的数据集上进行挖掘,依然能够得到与使用原数据集近乎相同的分析结果。
Part 3.大数据存储
大数据存储与管理要用存储器把采集到的数据存储起来,建立相应的数据库,以便管理和调用。大数据存储技术路线最典型的共有三种:
A. MPP架构的新型数据库集群
采用MPP架构的新型数据库集群,重点面向行业大数据,采用Shared Nothing架构,通过列存储、粗粒度索引等多项大数据处理技术,再结合MPP架构高效的分布式计算模式,完成对分析类应用的支撑,运行环境多为低成本 PC Server,具有高性能和高扩展性的特点,在企业分析类应用领域获得极其广泛的应用。这类MPP产品可以有效支撑PB级别的结构化数据分析,这是传统数据库技术无法胜任的。对于企业新一代的数据仓库和结构化数据分析,目前最佳选择是MPP数据库。
B. 基于Hadoop的技术扩展和封装
基于Hadoop的技术扩展和封装,围绕Hadoop衍生出相关的大数据技术,应对传统关系型数据库较难处理的数据和场景,例如针对非结构化数据的存储和计算等,充分利用Hadoop开源的优势,伴随相关技术的不断进步,其应用场景也将逐步扩大,目前最为典型的应用场景就是通过扩展和封装 Hadoop来实现对互联网大数据存储、分析的支撑。这里面有几十种NoSQL技术,也在进一步的细分。对于非结构、半结构化数据处理、复杂的ETL流程、复杂的数据挖掘和计算模型,Hadoop平台更擅长。
C. 大数据一体机
这是一种专为大数据的分析处理而设计的软、硬件结合的产品,由一组集成的服务器、存储设备、操作系统、数据库管理系统以及为数据查询、处理、分析用途而预先安装及优化的软件组成,高性能大数据一体机具有良好的稳定性和纵向扩展性。
Part 4.大数据分析挖掘
数据的分析与挖掘主要目的是把隐藏在一大批看来杂乱无章的数据中的信息集中起来,进行萃取、提炼,以找出潜在有用的信息和所研究对象的内在规律的过程。主要从可视化分析、数据挖掘算法、预测性分析、语义引擎以及数据质量和数据管理五大方面进行着重分析。
A. 可视化分析
数据可视化主要是借助于图形化手段,清晰有效地传达与沟通信息。主要应用于海量数据关联分析,由于所涉及到的信息比较分散、数据结构有可能不统一,借助功能强大的可视化数据分析平台,可辅助人工操作将数据进行关联分析,并做出完整的分析图表,简单明了、清晰直观,更易于接受。
B. 数据挖掘算法
数据挖掘算法是根据数据创建数据挖掘模型的一组试探法和计算。为了创建该模型,算法将首先分析用户提供的数据,针对特定类型的模式和趋势进行查找。并使用分析结果定义用于创建挖掘模型的最佳参数,将这些参数应用于整个数据集,以便提取可行模式和详细统计信息。
大数据分析的理论核心就是数据挖掘算法,数据挖掘的算法多种多样,不同的算法基于不同的数据类型和格式会呈现出数据所具备的不同特点。各类统计方法都能深入数据内部,挖掘出数据的价值。
C. 预测性分析
大数据分析最重要的应用领域之一就是预测性分析,预测性分析结合了多种高级分析功能,包括特别统计分析、预测建模、数据挖掘、文本分析、实体分析、优化、实时评分、机器学习等,从而对未来,或其他不确定的事件进行预测。
从纷繁的数据中挖掘出其特点,可以帮助我们了解目前状况以及确定下一步的行动方案,从依靠猜测进行决策转变为依靠预测进行决策。它可帮助分析用户的结构化和非结构化数据中的趋势、模式和关系,运用这些指标来洞察预测将来事件,并作出相应的措施。
D. 语义引擎
语义引擎是是把已有的数据加上语义,可以把它想象成在现有结构化或者非结构化的数据库上的一个语义叠加层。它语义技术最直接的应用,可以将人们从繁琐的搜索条目中解放出来,让用户更快、更准确、更全面地获得所需信息,提高用户的互联网体验。
E. 数据质量管理
是指对数据从计划、获取、存储、共享、维护、应用、消亡生命周期的每个阶段里可能引发的各类数据质量问题,进行识别、度量、监控、预警等一系列管理活动,并通过改善和提高组织的管理水平使得数据质量获得进一步提高。
对大数据进行有效分析的前提是必须要保证数据的质量,高质量的数据和有效的数据管理无论是在学术研究还是在商业应用领域都极其重要,各个领域都需要保证分析结果的真实性和价值性。