第二节 数据和大数据
一、数据
(一)数据的概念
“数据科学”这门学科研究的核心内容就是数据,那究竟什么是数据呢?一提到数据,我们首先想到的会是数字。但数据并不局限于数字,文本、音频、图像、视频都可以是数据。在这本书里,我们对数据进行如下的定义:
数据是指以定性或者定量的方式来描述事物的符号记录,是可定义为有意义的实体,它涉及事物的存在形式。数据的含义很广,不仅指1011、8084这样一些传统意义上的数据,还指“dataology”“上海市数据科学重点实验室”“2020/02/14”等符号、字符、日期形式的数据,也包括文本、声音、图像、照片和视频等类型的数据,而微博、微信、购物记录、住宿记录、乘飞机记录、银行消费记录、政府文件等也都是数据。
在这里,我们需要注意的是数据与信息、知识等概念之间存在一定的区别和联系。这三者之间最主要的区别是所考虑的抽象层次不同。数据是最低层次的抽象,信息次之,知识则是最高层次的抽象。数据是用来记录客观事物状态的原始符号;信息是经过解释和理解,能够消除人们某种不确定性的东西;而知识则是可指导行动的信息。
我们对数据进行解释和理解之后,才可以从数据中提取出有用的信息。对信息进行整合和呈现,则能够获得知识。例如,世界第一高峰珠穆朗玛峰的高度8848.86m,可以认为是“数据”;一本关于珠穆朗玛峰地质特性的书籍,则是“信息”;而一份包含了攀上珠穆朗玛峰最佳路径信息的报告,就是“知识”了。所以,我们说数据是信息的载体,是形成知识的源泉,是智慧、决策以及价值创造的基石。
近年来,数据规模与利用率之间的矛盾日益凸显。一方面,数据规模的“存量”和“增量”在快速增长。根据国际权威机构Statista的统计和预测,全球数据量在2019年约达到41ZB,预计到2025年,全球数据量将是2016年的16.1ZB的十倍,达到163ZB。在人们的生活与生产中,正在生成、捕获和积累着海量数据。例如,纽约证券交易所(NYSE)每天生成4~5TB的数据;Illumina的HiSeq2000测序仪(Illumina HiSeq 2000 Sequencer)每天可以产生1TB的数据;大型实验室拥有几十台类似LSST望远镜(Large Synoptic Survey Telescope)的机器,每天可以生成40TB的数据;Facebook每个月数据增长达到7PB;瑞士日内瓦附近的大型强子对撞机(Large Hadron Collider)每年产生约30PB的数据;Internet Archive项目已存储了大约18.5PB的数据等。
另一方面,我们缺乏对“大数据”的开发利用能力。虽然我们经常提到或听到“数据是一种重要资源”,但我们并不深入了解数据,尤其是大数据的本质及其演化规律,更没有具备将数据资源转换为业务、决策和核心竞争力的能力。因此,我们急需包括理念、理论、方法、技术、工具、应用在内的一整套科学知识体系——大数据管理与应用。
(二)数据模型
数据建模是人们理解数据的重要途径之一。按照应用层次和建模目的,可以把数据模型分为三种基本类型:概念数据模型﹑逻辑数据模型和物理数据模型。因此,在实际工作中,需要注意数据模型的层次性,不同类型的人员所说的数据模型可能不在同一个层次之上。当然,不同层次的数据模型之间也存在一定的对应关系,可以进行相互转换,如图1-1所示。
概念数据模型(Conceptual Data Model)是以现实世界为基础,从普通用户(如业务员﹑决策人员)的视角对数据构建的模型,主要用来描述世界的概念化结构,与具体的数据管理技术无关,即同一个概念数据模型可以转换为不同的逻辑数据模型。常用概念数据模型有:ER图(Entity Relationship Diagram),面向对象模型和谓词模型等。
逻辑数据模型(Logical Data Model)是在概念数据模型的基础上,从数据科学家视角对数据进一步抽象的模型,主要用于数据科学家之间的沟通和数据科学家与数据工程师之间的沟通。常用的逻辑模型有:关系模型、层次模型、网状模型、key-value、key-document、key-column和图模型等。
图1-1 数据模型的层次
物理数据模型(Physical Data Model)是在逻辑数据模型的基础上,从计算机视角对数据进行建模后得出的模型﹐主要用于描述数据在存储介质上的组织结构,与具体的平台(包括软硬件)直接相关。常用的物理模型有:索引、分区、复制、分片、物化视图、事务、版本戳等。
通常,数据科学中数据的捕获、存储、传递、计算、显示处理的难点源自“数据的异构性”——涉及多种数据模型或同一类模型的不同结构。为此,数据科学家经常采用跨平台(应用)性较强的通用数据格式,即用与特定应用程序(及其开发语言)无关的数据格式的方法来实现在不同应用程序之间进行数据传递和数据共享。常见的通用数据格式有:关系(二维表/矩阵)、CSV(Comma Separated Value)、JSON(JavaScript Object Notation)、XML(Extensible Markup Language)、RDF(Resource Description Framework)和OWL(Web Ontology Language)等。
(三)数据维度
数据分类是帮助人们理解数据的另一个重要途径。为了深入理解数据的常用分类方法,我们可以从三个不同维度分析数据类型及其特征。
从数据的结构化程度看,可以分为:结构化数据、半结构化数据和非结构化数据,如表1-1所示。在数据科学中,数据的结构化程度对于数据处理方法的选择具有重要影响。例如,结构化数据的管理可以采用传统关系数据库技术,而非结构化数据的管理往往采用NoSQL、NewSQL或关系云技术。
表1-1 结构化数据、半结构化数据和非结构化数据
结构化数据:以“先有结构,后有数据”的方式生成的数据。通常,人们所说的“结构化数据”主要指的是在传统关系数据库中捕获、存储、计算和管理的数据。在关系数据库中,需要先定义数据结构(如表结构、字段的定义、完整性约束条件等),然后严格按照预定义的结构进行捕获、存储、计算和管理数据。当数据与数据结构不一致时,需要按照数据结构对数据进行转换处理。
非结构化数据:没有(或难以发现)统一结构的数据,即在未定义结构的情况下或并不按照预定义的结构捕获、存储、计算和管理的数据。通常主要指无法在传统关系数据库中直接存储、管理和处理的数据,包括所有格式的办公文档、文本、图片、图像和音频、视频信息。
半结构化数据:介于结构化数据(如关系型数据库、面向对象数据库中的数据)和非结构化数据(如语音、图像文件等)之间的数据。例如,HTML、XML,其数据的结构与内容耦合度高,需要进行转换处理后才可发现其结构。目前,非结构化数据占比最大,绝大部分数据或数据中的绝大部分属于非结构化数据。因此,非结构化数据是数据科学中重要研究对象之一,也是当下的数据管理区别于传统数据管理的主要区别之一。
从数据的加工程度看,可以分为:零次数据、一次数据、二次数据和三次数据,如图1-2所示。数据的加工程度对数据科学中的流程设计和活动选择具有重要影响。例如,数据科学项目可以根据数据的加工程度来判断是否需要进行数据预处理。
图1-2 数据的加工程度
零次数据:数据的原始内容及其备份数据。零次数据中往往存在缺失值、噪声、错误或虚假数据等质量问题。
一次数据:对零次数据进行初步预处理(包括清洗、变换、集成等)后得到的“干净数据”。
二次数据:对一次数据进行深度处理或分析(包括脱敏﹑规约、标注)后得到的“增值数据”。
三次数据:对一次或二次数据进行洞察分析(包括统计分析﹑数据挖掘、机器学习可视化分析等)后得到的,可以直接用于决策支持的“洞见数据”。
从数据的抽象或封装程度看,可分为:数据、元数据和数据对象三个层次,如图1-3所示。在数据科学中,数据的抽象或封装程度对于数据处理方法的选择具有重要影响。例如,是否需要重新定义数据对象(类型)或将已有数据封装成数据对象。
图1-3 数据的封装
数据:对客观事物或现象直接记录下来后产生的数据,例如介绍数据科学知识的教材《数据科学》的内容。
元数据:数据的数据,可以是数据内容的描述信息等。教材《大数据管理与应用》的元数据有作者、出版社、出版地、出版年、页数、印数、字数等。通常,元数据可以分为5大类:管理、描述、保存、技术和应用类元数据。
数据对象:对数据内容与其元数据进行封装或关联后得到的更高层次的数据集。例如,可以把教材《大数据管理与应用》的内容、元数据、参考资料、与相关课程的关联数据以及课程相关的行为封装成一个数据对象。
(四)数据特征
人类社会的进步发展是人类不断探索自然(宇宙和生命)的过程,当人们将探索自然界的成果存储在网络空间中的时候,却不知不觉地在网络空间中创造了一个数据界。虽然是人生产了数据,并且人还在不断生产数据,但当前的数据已经表现出不为人控制、未知性、多样性和复杂性等自然界特征。
首先,数据不为人类所控制。数据出现爆炸式增长,人类很难加以控制,此外无法控制的还有计算机病毒的大量出现和传播、垃圾邮件的泛滥、网络的攻击、数据阻塞信息高速公路等。人们在不断生产数据,不但使用计算机产生数据,而且使用各种电子设备生产数据,例如照相、拍电影、出版报纸等都已经数字化了,这些工作都在生产数据;拍X线片、做CT检查、做各种检验等也都在生产数据;人们出行坐车、上班考勤、购物刷卡等也都在生产数据。不仅如此,像计算机病毒这类数据还能不断快速大规模地产生新数据。这种大规模的随时随地生产数据的情形是任何政府和组织所不能控制的。虽然从个体上来看,其生产数据是有目的的、可以控制的,但是总体上来看,数据的生产是不以人的意志为转移的,是以自然的方式增长的。因此,数据增长、流动已经不为人类所控制。
其次,数据具有未知性。在网络空间中出现大量未知的数据、未知的数据现象和规律,这是数据科学出现的原因。未知性包括:不知道从互联网上获得的数据是不是正确的和真实的;在两个网站对相同的目标进行搜索访问时得到的结果可能不一样,不知道哪个是正确的;也许网络空间中某个数据库早就显示人类将面临能源危机,我们却无法得到这样的知识;我们还不知道数据界有多大,数据界以什么样的速率在增长?
早期使用计算机是将已知的事情交给计算机去完成,将已知的数据存储到计算机中,将已知的算法写成计算机程序。数据、程序和程序执行的结果都是已知的或可预期的。事实上,这期间计算机主要用于帮助人们工作、生活,提高人们的工作效率和生活质量。因此,计算机所做的事情和生产的数据都是清楚的。
随着设备和仪器的数字化进程,各种设备都在生产数据,于是大量人们并不清楚的数据被生产出来并存入网络空间。例如:自从人类基因组计划(Human Genome Project,HGP)开始后,巨量的DNA数据被存储到网络空间中,这些数据是通过DNA测序仪器检测出来的,是各种生命的DNA序列数据。虽然将DNA序列存入网络空间,但在存入网络空间时并不了解DNA序列数据表达了什么?有什么规律?是什么基因片段使得人之间相同或不同?物种进化的基因如何变化?是否有进化或突变……
虽然每个人是将个人已知的事物和事情存储到网络空间中,但是当一个组织、一个城市或一个国家的公民都将他个人工作、生活的事物和事情存储到网络空间中时,数据就将反映这个组织﹑城市或国家整体的状况,包括国民经济和社会发展的各种规律和问题。这些由各种数据的综合所反映出的社会经济规律是人类事先不知道的,即信息化工作将社会经济规律这些未知的东西也存储到了网络空间中。
网络空间自有非现实数据更是未知的。例如,电子游戏创造了一个全新的活动区域,这个区域的所有场景、角色都是虚拟的。这些虚拟区域的事物又通过游戏玩家与现实世界联系在一起。因此,游戏世界表现和内在的东西在现实世界中没有,是未知的。
最后,数据具有多样性和复杂性。随着技术的进步,存储到网络空间中的数据的类别和形式也越来越多。所谓数据的多样性是指数据有各种类别,如各种语言的、各种行业的,也有在互联网中或不在互联网中的、公开或非公开的、企业的、政府的数据等。数据的复杂性有两个方面:一是指数据具有各种各样的格式,包括各种专用格式和通用格式;二是指数据之间存在着复杂的关联。
二、大数据
(一)大数据概念
权威研究机构Gartner对大数据给出了这样的定义:大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在这个定义里,主要强调的是大数据的出现所带来的挑战和机遇,即数据处理的难度加大了,而从中所能获取的价值也增加了。
同样地,维基百科也给出了一个大数据的定义:“大数据,或称巨量资料,指的是所涉及的数据量规模巨大到无法通过人工在合理时间内截取、管理、处理,并整理成为人类所能解读的信息。”可见,维基百科的定义更加强调大数据的数据规模之庞大。
IBM用四个特征来描述大数据,即规模性(Volume)、高速性(Velocity)、多样性(Variety)和真实性(Veracity),这些特征相结合,定义了IBM所称的“大数据”。这个定义显然也是把大数据定义为一种数据集合,而且集合中的数据具有规模性、高速性、多样性和真实性。所以,大数据研究所关心的应该是对结构多样性的大数据能够进行高速存储和高速处理的技术。
从管理的角度看大数据,大数据是一类能够反映物质世界和精神世界的运动状态和状态变化的信息资源,它具有决策有用性、安全危害性以及海量性、异构性、增长性、复杂性和可重复开采性,一般都具有多种潜在价值。这个定义把大数据看作一类资源,它具有决策有用性,对经济社会发展具有重要的潜在价值。按照大数据的资源观,大数据研究的关键科学问题应该包括大数据的获取方法、加工技术、应用模式以及大数据的产权问题、相关的产业发展问题和相应的法律法规建设问题。
(二)大数据特征
从不同的角度看待大数据,对大数据的侧重点理解也各有不同。然而,无论从怎样的角度看待大数据,都离不开对大数据主要特征的把握和总结。本章将大数据的主要特征定义为以下四个方面。
Volume(规模性):“数据量大”是一个相对于计算和存储能力的说法,就目前而言,当数据量达到PB级以上时,一般称为“大”的数据。但是,我们应该注意到,大数据的时间分布往往不均匀,近几年生成数据的占比最高。
Variety(多样性):数据多样性是指大数据存在多种类型的数据,不仅包括结构化数据,还包括非结构化数据和半结构化数据。有统计显示,在未来,非结构化数据的占比将达到90%以上。非结构化数据所包括的数据类型很多,例如网络日志、音频、视频、图片、地理位置信息等。数据类型的多样性往往导致数据的异构性,进而加大了数据处理的复杂性,对数据处理能力提出了更高要求。
Value(价值密度低):在大数据中,价值密度的高低与数据总量的大小之间并不存在线性关系,有价值的数据往往会被淹没在海量无用数据之中,也就是人们常说的“我们淹没在数据的海洋,却又在忍受着知识的饥渴”。例如,一段长达120分钟连续不间断的监控视频中,有用数据可能仅有几秒。因此,如何在海量数据中洞见有价值的数据成为数据科学的重要课题。
Velocity(高速性):大数据中所说的“速度”包括两种——增长速度和处理速度。一方面,大数据增长速度快。另一方面,我们对大数据处理的时间(计算速度)要求也越来越高,这让“大数据的实时分析”成为热门话题。
(三)大数据的来源和产生方式
大数据的来源非常多,如信息管理系统、网络信息系统、物联网系统、科学实验系统等。
信息管理系统:企业内部使用的信息系统,包括办公自动化系统、业务管理系统等。信息管理系统主要通过用户输入和系统二次加工的方式产生数据,其产生的大数据大多数为结构化数据,通常存储在数据库中,一般为关系型数据。
网络信息系统:基于网络运行的信息系统即网络信息系统是大数据产生的重要来源,如电子商务系统、社交网络、社会媒体、搜索引擎等都是常见的网络信息系统。网络信息系统产生的大数据多为半结构化或非结构化的数据,在本质上,网络信息系统是信息管理系统的延伸,专属于某个领域的应用,具备某个特定的目的。因此,网络信息系统有着更独特的应用。
物联网系统:物联网是新一代信息技术,其核心和基础仍然是互联网,是在互联网基础上延伸和扩展的网络,其用户端延伸和扩展到了任何物品与物品之间,来进行信息交换和通信,而其具体实现是通过传感技术获取外界的物理、化学、生物等数据信息。
科学实验系统:主要用于科学技术研究,可以由真实的实验产生数据,也可以通过模拟方式获取仿真数据。
从数据库技术诞生以来,产生大数据的方式主要有以下3种。
被动式生成数据:数据库技术使得数据的保存和管理变得简单,业务系统在运行时产生的数据可以直接保存到数据库中,由于数据是随业务系统运行而产生的,因此该阶段所产生的数据是被动的。
主动式生成数据:物联网的诞生,使得移动互联网的发展大大提升了数据的产生速度。例如,人们可以通过手机等移动终端,随时随地产生数据。大量移动终端设备的出现,使用户不仅主动提交自己的行为,还和自己的社交圈进行了实时互动,因此数据被大量地生产出来,且具有极其强烈的传播性。显然如此生成的数据是主动的。
感知式生成数据:物联网的发展使得数据生成方式得到彻底的改变。例如遍布在城市各个角落的摄像头等数据采集设备源源不断地自动采集并生成数据。