大数据技术,就是从各种类型的数据中快速获得有价值信息的技术。大数据领域已经涌现出了大量新的技术,它们成为大数据采集、存储、处理和呈现的有力武器。
讨论大数据技术时,需要首先了解大数据的基本处理流程,主要包括数据采集、存储、分析和结果呈现的环节。数据无处不在,如互联网网站、政务系统、零售系统、办公系统、自动化生产系统、监控摄像头、传感器等,每时每刻都在不断地产生数据。这些分散在各处的数据需要采用相应的设备和软件进行采集。采集到的数据通常无法直接用于后续的数据分析,因为对于来源更多、类型多样的数据而言,数据缺失和语义模糊的问题是不可避免的,因而必须采取相应的有效措施来解决这些问题,这就需要一个被称为“数据预处理”的过程,把数据变成一个可用的状态。数据预处理以后会被存放到文件系统或数据系统中进行存储与管理,然后采用数据挖掘工具对数据进行处理分析,最后采用可视化工具为用户呈现结果。在整个数据处理过程中,还必须注意隐私保护和数据安全问题。
因此,从数据分析全流程的角度,大数据技术主要包括数据采集与预处理、数据存储和管理、数据处理与分析、数据安全和隐私保护等几个层面的内容,具体见表1-1。
表1-1 大数据技术的不同层面及其功能
需要指出的是,大数据技术是许多技术的一个集合体,这些技术也并非全部都是新生事物,诸如关系数据库、数据仓库、数据采集、数据挖掘、ETL、OLAP、数据隐私和安全、数据可视化等技术是已经发展了多年的技术,在大数据时代得到不断的补充、完善、提高后又有了新的升华,也可以视为大数据技术的组成部分。
如今数据量的激增越来越明显,各种各样的数据铺天盖地而来,企业选择相应工具来存储、分析与处理它们。从Excel、BI工具,到现在新的可视化数据分析工具——大数据魔镜,数据分析软件进步越来越快,免费的大数据魔镜已经可以达到500多种可视化效果和实现数据共享。那么在大数据时代中,新出现了哪些数据类型呢?
1)向互联网用户开放的本地数据。过去一些记录是以模拟形式存在的,或者以数据形式存在,但其存储在本地,而不是公开数据资源,没有开放给互联网用户,如音乐、照片、视频、监控录像等影音资料。现在这些数据不但数据量巨大,并且共享到了互联网上,面对所有互联网用户,其数量之大前所未有。例如,Facebook每天有18亿张照片上传或被传播,形成了海量的数据。
2)各种传感器收集的数据。移动互联网出现后,移动设备的很多传感器收集了大量的用户点击行为数据,例如iPhone有3个传感器,三星有6个传感器。它们每天产生了大量的点击数据,这些数据被某些公司所拥有,形成用户大量行为数据。
3)地图数据。电子地图(如高德、百度、Google地图)出现后,其产生了大量的流数据,这些数据不同于传统数据,传统数据代表一个属性或一个度量值,但是这些地图产生的流数据代表着一种行为、一种习惯,这些流数据经频率分析后会产生巨大的商业价值。基于地图产生的数据流是一种新型的数据类型,在过去是不存在的。
4)社交行为数据。进入了社交网络年代,互联网行为主要由用户参与创造,大量互联网用户创造出海量的社交行为数据,这些数据是过去未曾出现的。其揭示了人们的行为特点和生活习惯。
5)电商数据。电商崛起带来了大量网上交易数据,包含支付数据、查询行为、物流运输、购买喜好、点击顺序,评价行为等,其是信息流和资金流数据。
6)搜索行为数据。传统的互联网入口转向搜索引擎之后,用户的搜索行为和提问行为聚集了海量数据。单位存储价格的下降也为存储这些数据提供了经济上的可能。
上面所指的大数据不同于过去传统的数据,其产生方式、存储载体、访问方式、表现形式、来源特点等都与传统数据不同。大数据更接近于某个群体行为数据,它是全面的数据、准确的数据、有价值的数据。这些新类型数据相信大家都很熟悉,它们已经比传统数据类型更深入地走进了我们生活。
数据管理是利用计算机硬件与软件技术对数据进行有效的收集、存储、处理和应用的过程。其目的在于充分有效地发挥数据的作用,实现数据有效管理的关键是数据组织。
随着计算机技术的发展,数据管理经历了人工管理、文件系统、数据库系统三个发展阶段。在数据库系统中所建立的数据结构,更充分地描述了数据间的内在联系,便于数据修改、更新与扩充,同时保证了数据的独立性、可靠性、安全性与完整性,减少了数据冗余,故提高了数据共享程度及数据管理效率。
(1)人工管理阶段
20世纪50年代中期以前,计算机主要用于科学计算,这一阶段数据管理的主要特征如下。
1)不能长期保存数据。在20世纪50年代中期之前,计算机一般在关于信息的研究机构里才能拥有,当时由于存储设备(纸带、磁带)的容量空间有限,都是在做实验的时候暂存实验数据,做完实验就把数据结果打在纸带上或者磁带上带走,所以一般不需要将数据长期保存。
2)数据并不是由专门的应用软件来管理,而是由使用数据的应用程序自己来管理。作为程序员,在编写软件时既要设计程序逻辑结构,又要设计物理结构以及数据的存取方式。
3)数据不能共享。在人工管理阶段,可以说数据是面向应用程序的,由于每一个应用程序都是独立的,一组数据只能对应一个程序,即使要使用的数据已经在其他程序中存在,但是程序间的数据是不能共享的,因此程序与程序之间有大量的数据冗余。
4)数据不具有独立性。应用程序中只要发生改变,数据逻辑结构或物理结构就相应地发生变化,因而程序员要修改程序就必须都要做出相应的修改,这给程序员的工作带来了很多负担。
(2)文件系统阶段
20世纪50年代后期到60年代中期,计算机开始应用于数据管理方面。此时,计算机的存储设备也不再是磁带和卡片了,硬件方面已经有了磁盘、磁鼓等可以直接存取的存储设备。软件方面,操作系统中已经有了专门的数据管理软件,一般称为文件系统,文件系统一般由三部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。文件系统阶段存储数据就是以文件的形式来存储,由操作系统统一管理。文件系统阶段也是数据库发展的初级阶段,使用文件系统存储、管理数据具有以下4个特点。
1)数据可以长期保存。有了大容量的磁盘作为存储设备,计算机开始被用来处理大量的数据并存储数据。
2)有简单的数据管理功能。文件的逻辑结构和物理结构脱钩,程序和数据分离,这使得数据和程序有了一定的独立性,减少了程序员的工作量。
3)数据共享能力差。由于每一个文件都是独立的,当需要用到相同的数据时,必须建立各自的文件,数据还是无法共享,也会造成大量的数据冗余。
4)数据不具有独立性。在此阶段数据仍然不具有独立性,当数据的结构发生变化时,也必须修改应用程序,修改文件的结构定义;而应用程序的改变也将改变数据的结构。
(3)数据库系统阶段
20世纪60年代后期以来,计算机管理的对象规模越来越大,应用范围越来越广泛,数据量急剧增长,同时多种应用、多种语言互相覆盖地共享数据集合的要求越来越强烈,数据库技术便应运而生,出现了统一管理数据的专门软件系统——数据库管理系统。用数据库系统来管理数据比文件系统具有明显的优势,从文件系统到数据库系统,标志着数据库管理技术的飞跃,图1-2所示为数据库管理系统的组成。
图1-2 数据库管理系统的组成
(1)数据仓库的定义
数据仓库之父比尔·恩门(Bill Inmon)在1991年出版的“Building the Data Warehouse”一书中所提出的定义被广泛接受,数据仓库是一个面向主题的(Subject Oriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(Time Variant)的数据集合,用于支持管理决策。
数据仓库是一个过程而不是一个项目;数据仓库是一个环境,而不是一件产品。数据仓库提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效地把操作型数据集成到统一的环境中以提供决策型数据访问的各种技术和模块的总称。所做的一切都是为了让用户更快更方便地查询所需要的信息,为用户提供决策支持。
(2)数据仓库的特点
1)面向主题。操作型数据库的数据组织面向事务处理任务,各个业务系统之间各自分离,而数据仓库中的数据是按照一定的主题域进行组织的。
2)集成的。数据仓库中的数据是在对原有分散的数据库数据抽取、清理的基础上经过系统加工、汇总和整理得到的,必须消除源数据中的不一致性,以保证数据仓库内的信息是关于整个企业的一致的全局信息。
3)相对稳定。数据仓库的数据主要供企业决策分析之用,所涉及的数据操作主要是数据查询,一旦某个数据进入数据仓库以后,一般情况下将被长期保留,也就是数据仓库中一般有大量的查询操作,但修改和删除操作很少,通常只需要定期地加载、刷新。
4)反映历史变化。数据仓库中的数据通常包含历史信息,系统记录了企业从过去某一时点(如开始应用数据仓库的时点)到目前的各个阶段的信息,通过这些信息,可以对企业的发展历程和未来趋势做出定量分析和预测。
(3)数据仓库的组成
1)数据仓库数据库。数据仓库的数据库是整个数据仓库环境的核心,是数据存放的地方,提供对数据检索的支持。相对于操作型数据库来说,其突出的特点是对海量数据的支持和快速的检索技术。
2)数据抽取工具。数据抽取工具把数据从各种各样的存储方式中拿出来,进行必要的转化、整理,再存放到数据仓库内。对各种不同数据存储方式的访问能力是数据抽取工具的关键,应能生成COBOL程序、MVS作业控制语言(JCL)、UNIX脚本、SQL语句等,以访问不同的数据。数据转换包括:删除对决策应用没有意义的数据段;转换到统一的数据名称和定义;计算统计和衍生数据;给缺值数据赋予缺省值;把不同的数据定义方式统一。
3)元数据。元数据是描述数据仓库内数据的结构和建立方法的数据。可将其按用途的不同分为两类:技术元数据和商业元数据。技术元数据是数据仓库的设计和管理人员用于开发与日常管理数据仓库时用的数据,包括数据源信息、数据转换的描述、数据仓库内对象和数据结构的定义、数据清理和数据更新时用的规则、源数据到目的数据的映射、用户访问权限、数据备份历史记录、数据导入历史记录、信息发布历史记录等。商业元数据从商业业务的角度描述了数据仓库中的数据,包括业务主题的描述,包含的数据、查询、报表。
元数据为访问数据仓库提供了一个信息目录,这个目录全面描述了数据仓库中都有什么数据、怎么得到和怎么访问这些数据。元数据是数据仓库运行和维护的中心,数据仓库服务器利用它来存储和更新数据,用户通过它来了解和访问数据。
4)访问工具。为用户访问数据仓库提供手段。包括数据查询和报表工具、应用开发工具、经理信息系统(EIS)工具、联机分析处理(OLAP)工具、数据挖掘工具。
5)数据集市(Data Marts)。为了特定的应用目的或应用范围,而从数据仓库中独立出来的一部分数据,也可称为部门数据或主题数据(Subject Area)。在数据仓库的实施过程中往往可以从一个部门的数据集市着手,以后再用几个数据集市组成一个完整的数据仓库。需要注意是,在实施不同的数据集市时,同一含义的字段定义一定要相容,这样在以后实施数据仓库时才不会造成大麻烦。
6)数据仓库管理。数据仓库管理包括安全和特权管理,跟踪数据的更新,数据质量检查,管理和更新元数据,审计和报告数据仓库的使用和状态,删除数据,复制、分割和分发数据,备份和恢复,存储管理。
7)信息发布系统。把数据仓库中的数据或其他相关的数据发送给不同的地点或用户。基于Web的信息发布系统是应对多用户访问的最有效方法。
随着信息科技的进步和网络的发达、计算机运算能力的增强以及数据存储技术的不断改进,人类社会正迈向信息时代。数据的爆炸式增长、广泛运用和巨大体量使我们的时代成为真正的数据时代。人们迫切需要功能强大和通用的工具,以便从大数据中发现有价值的信息,将这些数据转换成有用的信息和知识,所获取的信息和知识可以广泛用于各种应用,包括商务管理、生产控制、市场分析、工程设计和科学探索等。数据挖掘方法利用了来自许多领域的技术思想,如来自统计学的抽样估计和假设检验,来自人工智能、模式识别和机器学习的搜索方法、建模技术和学习理论,来自包括最优化、进化计算、信息论、信号处理、可视化和信息检索等的重要支撑。随着数据量的越来越大,源于高性能分布式并行计算和存储的技术在大数据挖掘和应用中显得尤为重要。
许多人把数据挖掘视为另一个流行术语——数据中的知识发现(KDD)的同义词,而另一些人只是把数据挖掘视为知识发现过程中的一个基本步骤。一般认为,知识发现由以下步骤的迭代序列组成。
● 数据清理——消除噪声和删除不一致数据。
● 数据集成——多种数据源可以组合在一起,形成数据集市或数据仓库。
● 数据选择——从数据库中提取与分析任务相关的数据。
● 数据变换——通过汇总或聚集操作,把数据经过变换统一成适合挖掘的形式。
● 数据挖掘——使用智能方法提取数据模式。
● 模式评估——根据某种兴趣度量,识别代表知识的真正有趣的模式。
● 知识表示——使用可视化和知识表示技术向用户提供挖掘的知识。
(1)技术上的定义
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。这个定义包括好几层含义:数据源必须是真实的、大量的、含噪声的;发现的是用户感兴趣的知识;发现的知识要可接受、可理解、可运用;并不要求发现放之四海皆准的知识,仅支持特定的发现问题。与数据挖掘相近的名词有数据融合、人工智能、商务智能、模式识别、机器学习、知识发现、数据分析和决策支持等。
何为知识?从广义上理解,数据、信息也是知识的表现形式,但是人们一般把概念、规则、模式、规律和约束等看作知识。人们把数据看作是形成知识的源泉,好像从矿石中采矿或淘金一样。原始数据可以是结构化的,如关系数据库中的数据;也可以是半结构化的,如文本、图形和图像数据;甚至是分布在网络上的异构型数据。发现知识的方法可以是数学的,也可以是非数学的;可以是演绎的,也可以是归纳的。发现的知识可以被用于信息管理、查询优化、决策支持和过程控制等,还可以用于数据自身的维护。因此,数据挖掘是一门交叉学科,它把人们对数据的应用从低层次的简单查询,提升到从数据中挖掘知识、提供决策支持。在这种需求的牵引下,汇聚了不同领域的研究者,尤其是数据库技术、人工智能技术、数理统计、可视化技术、并行计算等方面的学者和工程技术人员,投身到数据挖掘这一新兴的研究领域,形成新的技术热点。
这里所说的知识发现,不是要求发现放之四海而皆准的真理,也不是要去发现崭新的自然科学定理和纯数学公式,更不是什么机器定理证明。实际上,所有发现的知识都是相对的,是有特定前提和约束条件的,是面向特定领域的,同时还要能够易于被用户理解。最好能用自然语言表达所发现的结果。
(2)商业上的定义
数据挖掘是一种新的商业信息处理技术,其主要特点是对商业数据库中的大量业务数据进行抽取、转换、分析和其他模型化处理,从中提取辅助商业决策的关键性数据。
简而言之,数据挖掘其实是一类深层次的数据分析方法。数据分析本身已经有很多年的历史,只不过在过去数据收集和分析的目的是用于科学研究,另外,由于当时计算能力的限制,对大数据量进行分析的复杂数据分析方法受到很大限制。现在,由于各行业业务实现了自动化,商业领域产生了大量的业务数据,这些数据不再是为了分析的目的而收集的,而是由于纯粹的商业运作而产生。分析这些数据也不再是单纯为了研究的需要,更主要是为商业决策提供真正有价值的信息,进而获得利润。但所有企业面临的一个共同问题是:企业数据量非常大,而其中真正有价值的信息却很少,因此从大量的数据中经过深层分析,获得有利于商业运作、提高竞争力的信息,就像从矿石中淘金一样,数据挖掘也因此而得名。
因此,数据挖掘可以描述为:按企业既定业务目标,对大量的企业数据进行探索和分析,揭示隐藏的、未知的或验证已知的规律性,并进一步将其模型化的先进有效的方法。
利用数据挖掘进行数据分析常用的方法主要有分类、回归分析、聚类、关联规则、特征、变化和偏差分析、Web页挖掘等,它们分别从不同的角度对数据进行挖掘。
(1)分类
分类是找出数据库中一组数据对象的共同特点并按照分类模式将其划分为不同的类,其目的是通过分类模型,将数据库中的数据项映射到某个给定的类别。它可以应用到客户的分类、客户的属性和特征分析、客户满意度分析、客户的购买趋势预测等,如一个汽车零售商将客户按照对汽车的喜好划分成不同的类,这样营销人员就可以将新型汽车的广告手册直接邮寄到有这种喜好的客户手中,从而大大增加了商业机会。常用的分类方法为决策树的剪枝分类法。
(2)回归分析
回归分析方法反映的是事务数据库中属性值在时间上的特征,产生一个将数据项映射到一个实值预测变量的函数,发现变量或属性间的依赖关系,其主要研究问题包括数据序列的趋势特征、数据序列的预测以及数据间的相关关系等。它可以应用到市场营销的各个方面,如客户寻求与保持、预防客户流失活动、产品生命周期分析、销售趋势预测及有针对性的促销活动等。常用的回归分析方法为逻辑回归分析、时间序列分析等。
(3)聚类
聚类分析是把一组数据按照相似性和差异性分为几个类别,其目的是使属于同一类别的数据间的相似性尽可能大,不同类别中数据间的相似性尽可能小。它可以应用到客户群体的分类、客户背景分析、客户购买趋势预测、市场的细分等。常用的聚类方法有层次聚类分析、划分聚类分析、以密度为基础的聚类分析、以模式为基础的聚类分析。
(4)关联规则
关联规则是描述数据库中数据项之间所存在的关系的规则,即根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。在客户关系管理中,通过对企业的客户数据库里的大量数据进行挖掘,可以从大量的记录中发现关联关系,找出影响市场营销效果的关键因素,为产品定位、定价与定制客户群,客户寻求、细分与保持,市场营销与推销,营销风险评估和诈骗预测等决策支持提供参考依据。常用的关联规则方法有多维度关联规则、多阶层关联规则等。
(5)特征分析
特征分析是从数据库中的一组数据中提取出关于这些数据的特征式,这些特征式表达了该数据集的总体特征。如营销人员通过对客户流失因素的特征提取,可以得到导致客户流失的一系列原因和主要特征,利用这些特征可以有效地预防客户的流失。
(6)变化和偏差分析
偏差包括很大一类潜在有趣的知识,如分类中的反常实例、模式的例外、观察结果对期望的偏差等,其目的是寻找观察结果与参照量之间有意义的差别。在企业危机管理及其预警中,管理者更感兴趣的是那些意外规则。意外规则的挖掘可以应用到各种异常信息的发现、分析、识别、评价和预警等方面。
(7)Web页挖掘
随着Internet的迅速发展及Web的全球普及,Web上的信息量无比丰富,通过对Web的挖掘,可以利用Web的海量数据进行分析,收集政治、经济、政策、科技、金融、各种市场、竞争对手、供求关系、客户等有关的信息,集中精力分析和处理那些对企业有重大或潜在重大影响的外部环境信息和内部经营信息,并根据分析结果找出企业管理过程中出现的各种问题和可能引起危机的先兆,对这些信息进行分析和处理,以便识别、分析、评价和管理危机。
数据挖掘通过预测未来趋势及行为,做出前摄的、基于知识的决策。数据挖掘的目标是从数据库中发现隐含的、有意义的知识,主要有以下5类功能。
(1)自动预测趋势和行为
数据挖掘自动在大型数据库中寻找预测性信息,以往需要进行大量手工分析的问题如今可以迅速直接由数据本身得出结论。一个典型的例子是市场预测问题,数据挖掘使用过去有关促销的数据来寻找未来投资中回报最大的用户,其他可预测的问题包括预报破产以及认定对指定事件最可能做出反应的群体。
(2)关联分析
数据关联是数据库中存在的一类重要的可被发现的知识。若两个或多个变量的取值之间存在某种规律性,就称为关联。关联可分为简单关联、时序关联、因果关联。关联分析的目的是找出数据库中隐藏的关联网。有时并不知道数据库中数据的关联函数,即使知道也是不确定的,因此关联分析生成的规则带有可信度。
(3)聚类
数据库中的记录可被划分为一系列有意义的子集,即聚类。聚类增强了人们对客观现实的认识,是概念描述和偏差分析的先决条件。聚类技术主要包括传统的模式识别方法和数学分类学。20世纪80年代初,Mchalski提出了概念聚类技术及其要点是,在划分对象时不仅考虑对象之间的距离,还要求划分出的类具有某种内涵描述,从而避免了传统技术的某些片面性。
(4)概念描述
概念描述就是对某类对象的内涵进行描述,并概括这类对象的有关特征。概念描述分为特征性描述和区别性描述,前者描述某类对象的共同特征,后者描述不同类对象之间的区别。生成一个类的特征性描述只涉及该类对象中所有对象的共性。生成区别性描述的方法很多,如决策树方法、遗传算法等。
(5)偏差检测
数据库中的数据常有一些异常记录,从数据库中检测这些偏差很有意义。偏差包括很多潜在的知识,如分类中的反常实例、不满足规则的特例、观测结果与模型预测值的偏差、量值随时间的变化等。偏差检测的基本方法是,寻找观测结果与参照值之间有意义的差别。