随着企业数据的积累和数字化的转型趋势,很多企业认识到数据已成为一种至关重要的企业资产。数据和信息使企业洞察顾客、产品与服务,帮助企业实现创新和战略目标,在竞争市场中取得优势。要利用好企业的数据,就需要将数据作为一种资产进行管理,并从中获得持续性的价值,需要有长期的目标、规划、协作和保障,更需要企业拥有数据管理能力和领导力。
数据管理(Data Management, DM)的概念是伴随20世纪80年代数据随机存储技术和数据库技术的使用,计算机系统中的数据可以方便地存储和访问而提出的。2015年,国际数据管理协会(DAMA)在DBMOK 2.0知识领域将其扩展为11个管理职能:数据架构、数据模型与设计、数据存储与操作、数据安全(Data Security)、数据集成与互操作性、文件和内容、参考数据和主数据(Master Data)、数据仓库(Data Warehouse)、商务智能(Business Intelligence, BI)、元数据(Metadata)、数据质量(Data Quality)等。DAMA和ISO对数据管理的定义见表2.1。
表2.1 DAMA和ISO对数据管理的定义
(续)
数据管理是指利用计算机技术对数据进行有效且高效的存储、处理和应用。传统的数据管理侧重于数据的物理管理,更关注存储的数据结构以及数据之间的相关联系。这一层次的管理仅仅将数据作为信息的表现形式和载体,对于数据之间相关联系的管理也只是对数据体现的浅层信息进行管理。数据管理的目标在于充分有效地发挥数据的作用。
组织数据管理的目标应该是具体的、可衡量的、可实现的(或可执行的)、现实的,就指定的目标时间范围来说是及时的。数据管理的重点是了解机构或用户的数据需求,组织并提供相关数据,使数据价值得到充分利用。具体包括以下几点:
①理解组织和其他利益相关者的数据与信息需求;②获取﹑存储、保护和确认数据资产的完整性;③确保数据和信息的质量,包括数据的准确性﹑完整性﹑集成性、及时性、相关性和有用性以及数据定义的明确性与共识;④确保利益相关者数据的隐私和机密性;⑤防止未经授权和不适当地使用数据与信息;⑥确保可以有效地使用数据来为组织增加价值。
随着信息技术的持续性发展和企业数据量级的增长,对数据管理技术提出了越来越高的要求,数据管理技术经历了从文件系统阶段、数据库系统阶段、数据仓库阶段到大数据管理阶段的发展,在大数据时代,数据管理应用复杂,数据管理技术应用于数据的整个生命周期。数据管理技术是信息应用技术的基础,数据管理也经历了从以软件和平台为中心到以数据为中心的转变,下面主要从数据存储、数据存取和数据应用三个方面来介绍数据管理中用到的主要技术。
1.数据存储技术
(1)文件系统 文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统(简称文件系统),由三部分组成:文件系统的接口、对对象操纵和管理的软件集合、对象及属性。从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件。
Google文件系统是一个大型的分布式文件系统,在Google之前还没有哪个公司拥有如此多的海量数据,因此Google自行开发了GFS(Google File System)技术。GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。GFS系统架构如图2.1所示,整个系统分为三类角色,分别是client客户端、chunk server数据块服务器和master主服务器。master和chunkserver通常是运行用户层服务进程的Linux机器。只要资源和可靠性允许,chunkserver和client可以运行在同一个机器上。master维护文件系统所有的元数据,包括名字空间、访问控制信息、从文件到块的映射以及块的当前位置。它也控制系统范围的活动。chunkserver负责具体的存储工作,数据以文件的形式存储在chunkserver上,chunkserver的个数可以有很多,它的数目直接决定了GFS的规模。与每个应用相连的GFS客户代码实现了文件系统的API,并与master和chunkserver通信以代表应用程序读和写数据。客户与master的交换只限于对元数据的操作,所有数据方面的通信都直接和chunkserver联系。
图2.1 GFS系统架构
(2)层次、网状数据库系统 层次与网状数据库系统是出现最早的数据库系统,在20世纪70年代和80年代初非常流行,称为第一代数据库系统。这两类数据库系统按照树或图来组织数据,解决了文件系统难以满足数据存储需求的问题,在当时的数据库系统产品中占主导地位。层次数据库系统有且仅有一个节点无双亲,这个节点即树的根,可以按照树遍历的顺序来存储数据。网状数据库系统允许节点无父节点,比层次模型更具普遍性。两类系统的本质都是用树来表达和存储数据,这是第一次将数据管理的功能从具体的应用逻辑中分离并独立出来,在数据管理发展历程中是一件里程碑的事情。比如,查询经济管理学院信息管理系的张月同学的信息,就需要先从学校进入学院系统,再从学院系统进入信息管理系的数据系统查找到张月同学的信息,通过父节点的值去检索所有子节点的值,兄弟节点之间使用指针进行连接,因此在层次和网状数据库管理系统中,指针和链表也被大量使用。
(3)关系型数据库系统 20世纪70年代初,IBM的工程师Codd发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的论文,提出了关系型数据库的概念,从此开启了数据管理技术的新时代。关系数据模型基于表格、行、列、属性等基本概念,把现实世界中的各类实体及其关系映射到表格上,使这些概念更易于理解。关系型数据库出现以后,不同的学者对数据模型相关技术进行研究,对存储、索引、并发控制、查询优化和执行优化进行研究,为关系型数据库技术的成熟和在不同领域的应用提供了条件。关系型数据库系统最初主要用于事务处理领域,随着数据的不断积累,人们需要对数据进行分析,包括简单的数据汇总和联机分析处理。事务处理应用的数据处理任务主要包括对数据进行增加、修改、删除和查询以及简单的汇总操作,涉及的数据量较少。联机分析处理则需要扫描大量的数据进行汇总分析操作,主要包括多维分析、统计分析、数据挖掘等。
(4)数据仓库系统 随着数据库技术的普及应用,数据库中存储的数据越来越多,数据仓库系统是关系型数据库系统的一个延伸,存储的数据除了支持日常事务处理之外,还应该让数据发挥更大的价值,因此产生了对数据进行分析,并挖掘隐藏在数据中的知识的需求,因此联机分析处理需要效率更高的数据库管理系统来支持。比如:沃尔玛曾经在大量的消费数据中通过数据挖掘的技术找到了商品“牛奶”和“尿布”之间潜在的关联关系。从数据中发现规律是需要大量数据积累的,因此需要在关系型数据库的基础之上,形成更高效的数据组织方式,数据仓库系统就是这样一种数据管理技术。数据仓库使用关系型数据库来实现,分别用事实表和维度表来存储统计结构和维度结构,星型模型是最常用的数据仓库的数据组织模型,选定一些属性作为分析的维度,另一些属性作为分析的对象,维度属性通常会根据值的包含关系形成一个层次,比如:地区属性可以形成省、市、区、街道这样的层次,这样可以统计不同维度的数据情况,这样的数据管理技术更有利于快速联机分析。
(5)大数据管理系统 随着信息技术的发展和数据库技术的应用,数据库中积累的数据越来越多,数据类型也越来越丰富,传统的数据库系统难以满足工程应用的需求,在这样的背景之下,NOSQL数据库应运而生。“NO SQL”的含义就是处理大量非结构化数据的需求,也就是非关系型数据库,是指数据模型定义不明确的非关系型数据库。各类NOSQL技术考虑到对大数据操作时需要快速读取,对写入的要求也很高,需要对数据进行划分并进行并行处理,同时需要允许数据暂时出现不一致的情况,接受最终的一致性。
依据存储模型,NOSQL数据库可分为基于Key Value(键值)存储模型、基于Column Family(列分组)存储模型、基于文档模型和基于图模型的数据库技术。NOSQL的重点在于如何表达和存储非结构化数据,但从应用程序的继承角度和提高生产率的角度,SQL都是不可或缺的,因此大数据管理系统也必备SQL引擎。
2.数据存取技术
(1)视图 视图(View)也被称作虚表,即虚拟的表,是一组数据的逻辑表示,其本质是对应于一条Select语句,结果集被赋予一个名字,即视图名字。视图本身并不包含任何数据,只包含映射到基表的一个查询语句,当基表数据发生变化时,视图数据也随之变化。使用视图技术可以简化数据操作,简化用户处理数据的方式,也可以着重于特定的数据,不必要的数据或者敏感数据可以不出现在视图之中。因此视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。通常情况下某些数据库表的数据是敏感的,不是每个用户都能进行访问,但某些用户需要读取某些表的部分数据,这时就可以定义指定条件的视图来限制用户只能访问其指定的列,并提供一个视图接口进行访问,基于这样的原理也能大大简化查询语句编写以及复杂条件下的数据筛选;同时延伸出视图中套用视图,因为视图也是一个“表”,所以视图中套用视图可以简化用户更复杂的数据筛选,用户只需要调用视图即可得到经过复杂运算后的数据,提高开发效率的同时提高数据的安全性。
(2)索引 在关系型数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。添加索引的优点有加快数据的检索速度,保证数据库表中每一行数据的唯一性,加速表和表之间的连接,同时在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。索引是提升数据读取效率的关键技术,常用的索引包括Hash索引、B树索引等。Hash索引用于快速执行索引项上的随机查找,B树索引同时支持索引项上的随机查找和区间查找。
(3)查询 查询是数据库管理系统最基本的操作,查询的执行就是查询处理的过程,即数据库按照用户指定的SQL语句中的语义,执行语义所限定的操作。为了提高语句的执行效率,需要对查询语句进行优化。最常用的关系型数据库系统通过称为SQL的语言对数据库进行查询和更新。SQL(Structured Query Language)的含义是结构化查询语言。SQL中最简单的查询就是从某个关系中查找满足某种条件的一些元组。这种查询类似于关系代数中的选择。这种简单的查询使用了具有SQL特性的三个关键字:Select、From以及Where。在面对海量数据时,传统关系型数据库虽然具有支持完整性约束、支持事务等优点,但是在大规模海量数据面前显得力不从心。传统关系型数据库主要存在以下问题:一是在数据格式转化和存储方面无法满足海量数据处理对性能的要求;二是无法满足动态扩展和高可用性的需求;三是传统大型关系型数据库通常运行在大型设备上,成本高昂。大数据对数据的存储和处理方法提出了新的要求。
Hadoop是分布式集群系统架构,它具有高可用性、高容错性和高可扩展性等优点,用户可以在完全不了解底层实现细节的情形下,开发适合自身应用的分布式程序。HDFS(Hadoop Distributed File System)是一个分布式文件系统,具有高容错性的特点,以流式访问模式访问应用程序的数据,大大提高了整个系统的数据吞吐量,因而非常适用于具有超大数据集的应用程序中。Probery是基于Hadoop分布式文件系统和MapReduce编程模型设计的一种大数据概率查询系统,采用了一种基于概率的近似完整性查询技术,其近似性主要体现在数据查全的可能性上,即查询到满足查询条件的所有数据的概率,称之为查全概率。查全概率的定义和传统的近似查询以及模糊查询不同,不度量结果与查询条件的匹配程度,也不度量结果集大小,而度量结果集是完整数据集的可能性。查全概率很小的结果集可能是完整的,也可能包含大部分结果,且查全概率大的查询并不一定比查全概率小的查询包含更多结果。Probery是基于概率的大数据查询系统,系统根据给定的查全概率查询满足查询条件的数据,通过降低查全的可能性来换取性能,并且通过概率计算来保证查询结果的查全概率。为了实现大数据的分布式存储和高效查询,Probery基于Hadoop平台对系统进行架构,通过将数据按概率划分为多个文件并存储在分布式文件系统上,以缩小数据的查询范围,且保证查询的并行性;同时也使得系统具有较强的容错能力和水平伸缩性。
3.数据应用技术
(1)区块链技术 随着区块链在各行各业的不断广泛应用和深度融合,区块链系统的数据管理安全会变得更加重要。现从数据存储安全、隐私安全、数据访问安全和数据共享安全四个方面,分析区块链技术在数据管理中的应用。
第一,数据存储安全。典型的区块链系统与传统中心化系统和传统分布式系统不同,区块链系统中的节点须利用数据冗余来保证数据的不可篡改性,所以区块链网络中的各个节点均须备份所有存储数据。节点除了存储所有历史数据,还需要存储新增数据。此外节点可能存储同一数据的不同版本。随着时间的不断推移,区块链系统上数据的高度冗余给各个节点带来严重的内存负担。当区块链网络中需要存储的数据超过大部分节点的存储容量时,会降低恶意节点作恶的难度,无法保证区块链的不可篡改性和可靠性。这可能会给区块链系统带来安全问题,因为区块链系统链上存储的成本远高于一般数据库,为了减少存储数据的冗余,区块链系统开始将部分数据存储在链下。随着区块链系统的发展,数据存储方式可以分为链上存储和链上链下协同存储两种。
第二,隐私安全。安全、可靠的区块链数据管理系统需要为数据的安全性和隐私性提供保障。在传统的区块链系统中,数据会被打包存储到区块内,区块会按照时间戳顺序,加密形成链式结构,按照既定的共识机制确定的打包节点打包,以确认该区块的合法性。网络内的其他节点负责新区块数据的验证、存储和维护,一旦大部分节点接受并确认新区块数据,在网络上形成共识后,该区块的数据就无法被修改。在公开验证与达成共识的过程中,数据会公开给所有参与验证的节点。这可能会导致安全问题和隐私数据泄露。在典型的区块链系统中,隐私数据可以划分为两类:身份隐私和数据隐私。身份隐私指的是用户身份信息和区块链匿名地址间的关联数据;数据隐私不仅指传统区块链系统中的交易信息,还包括拓展业务内涉及的业务数据。
第三,在区块链上的数据管理中,需要根据用户身份进行资源访问授权,达到数据安全访问的要求。主要有以下两个方面:身份认证,用来鉴定用户的真实身份;权限访问控制,保证用户仅能合法查看享有权限内的数据。
第四,数据管理的一个重要需求是对数据进行共享利用。在信息时代,各机构拥有的数据量呈井喷式增长;数据共享的需求愈加强烈,如何在数据共享过程中保持数据完整性、防止数据泄露成为研究热点问题。一些工作利用区块链的安全特性,建立基于区块链的数据共享系统,实现了区块链上的数据安全查询、多方数据可信交换及可靠数据传输。目前,区块链上的数据安全共享主要包含以下三点:单方数据可信查询、多方数据安全共享和数据隐蔽传输。
基于区块链进行数据管理具有数据可回溯、防篡改、数据可用不可见等优势,但是在保证数据真实性、匿名性等方面存在值得深入探索的问题。为了实现基于区块链技术达到数据安全管理的目标,须在数据源头监管、跨链数据隐私保护和区块链系统同构化问题上深入研究。
(2)知识图谱 知识图谱也称为科学知识图谱,是通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论和方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构,达到多学科融合目的的现代理论,为学科研究提供切实的、有价值的参考。知识图谱描述的对象主要包括科学技术活动中从事知识生产的人,作为知识载体的论文、期刊,显性或者可编码化的知识以及科学研究过程。其基本原理是基于文献单元(科学家、引文、机构、关键词、期刊等)的相似度分析,根据各种数学和统计学的原理来绘制科学知识图谱。知识图谱经历了二维图表、三维构型(3DCN)、多维尺度图谱(MDSM)、社会网络分析图谱(SNAM)、自组织映射图谱(SOM)、寻径网络图谱(PFNET)等发展阶段。
知识图谱作为符号主义发展的最新成果,是人工智能的重要基石。随着知识图谱规模的日益扩大,其数据管理问题愈加重要。一方面,以文件形式保存知识图谱无法满足用户的查询、检索、推理、分析及各种应用需求;另一方面,传统数据库的关系模型与知识图谱的图模型之间存在显著差异,关系型数据库无法有效管理大规模知识图谱数据。为了更好地管理知识图谱,语义Web领域发展出专门存储RDF数据的三元组库;数据库领域发展出用于管理属性图的图数据库,但目前还没有一种数据库系统被公认为是具有主导地位的知识图谱数据库。
(3)机器学习 机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。传统机器学习的研究方向主要包括决策树、随机森林、人工神经网络、贝叶斯学习等方面的研究。随机森林(RF)作为机器学习重要算法之一,是一种利用多个树分类器进行分类和预测的方法。近年来,随机森林算法研究的发展十分迅速,已经在生物信息学、生态学、医学、遗传学、遥感地理学等多领域开展应用性研究。人工神经网络(Artificial Neural Network, ANN)是一种具有非线性的适应性信息处理能力的算法,可克服传统人工智能方法对于直觉,如模式、语音识别、非结构化信息处理等方面的缺陷。
大数据的价值体现主要集中在数据的转向以及数据的信息处理能力等方面。在大数据时代,数据的转换、处理和存储得到了更好的技术支持,产业升级和新产业诞生形成了一种推动力量,让大数据能够针对可发现事物的程序进行自动规划,实现人类用户与计算机信息之间的协调。采用分布式和并行计算的方式进行分治策略的实施,可以规避噪声数据和冗余带来的干扰,降低存储耗费,同时提高学习算法的运行效率。此外,现有的许多机器学习方法是建立在内存理论基础上的,一旦大数据无法装载进计算机内存,就无法进行诸多算法的处理。因此应提出新的机器学习算法,以适应大数据处理的需要。