第14章 大数据管理
复习笔记
一、大数据概述
01大数据
(1)定义
大数据是指无法在可容忍的时间内用现有IT技术和软硬件工具对其进行感知、获取、管理、处理和服务的数据集合。
专家给出的定义:大数据通常被认为是PB(103TB)或EB(1EB=106TB)或更高数量级的数据,包括结构化的、半结构化的和非结构化的数据。其规模或复杂程度超出了传统数据库和软件技术所能管理和处理的数据集范围。
(2)分类
①海量交易数据(企业OLTP应用)
海量交易数据的应用特点是数据海量、读写操作比较简单、访问和更新频繁、一次交易的数据量大大,但要求支持事务ACID特性。对数据的完整性及安全性要求高,必须保证强一致性。
②海量交互数据(社交网、传感器、全球定位系统、Web信息)
海量交互数据的应用特点是实时交互性强,但不要求支持事务特性。其数据的典型特点是类型多样异构、不完备、噪音大、数据增长快,不要求具有强一致性。
③海量处理数据(企业OLAP应用)
海量处理数据的应用特点是面向海量数据分析,计算复杂,往往涉及多次迭代完成,追求数据分析的高效率,但不要求支持事务特性。
02大数据的特征
(1)巨量
大数据的首要特征是数据量巨大,而且在持续、急剧地膨胀。
大规模数据的几个主要来源如下:
①科学研究(天文学、生物学、高能物理等)、计算机仿真领域;
②互联网应用、电子商务领域;
③传感器数据(sensor data);
④网站点击流数据(click stream data);
⑤移动设备数据(mobile device data);
⑥无线射频识别数据(RFIDData);
⑦传统的数据库和数据仓库所管理的结构化数据也在急速增大。
(2)多样
大数据的多样性通常是指异构的数据类型、不同的数据表示和语义解释。
(3)快变
大数据的快变性也称为实时性,一方面指数据到达的速度很快,另一方而指能够进行处理的时间很短,或者要求响应速度很快,即实时响应。
(4)价值
大数据的价值是潜在的、巨大的。大数据不仅具有经济价值和产业价值,还具有科学价值。这是大数据最重要的特点,也是大数据的魅力所在。
二、大数据的应用
01感知现在预测未来一互联网文本大数据管理与挖掘
互联网文本大数据管理的特点如下:
(1)互联网文本大数据蕴含着丰富的社会信息,可以看作是对真实社会的网络映射。
(2)实时、深入分析互联网文本大数据,帮助人们在海量数据中获取有价值的信息,发现蕴含的规律,可以更好地感知现在、预测未来,体现了第四范式数据密集型科学发现的研究方式和思维方式。
(3)互联网文本大数据管理对大数据系统和技术的挑战是全面的、跨学科跨领域的,需要创新,也要继承传统数据管理技术和数据仓库分析技术的精华。
02数据服务实时推荐—基于大数据分析的用户建模
这一类大数据应用的特点如下:
(1)模型的建立来自对大数据的分析结果,通俗地讲是“用数据说话”。建模的过程是动态的,随着实际对象的变化,模型也在变化。
(2)数据处理既有对历史数据的离线分析和挖掘,又有对实时流数据的在线采集和分析,体现了大数据上不同层次的分析:流分析、SQL分析、深度分析的需求。
(3)用户模型本身也是大数据,维度高,信息稀疏,用户模型的存储、管理是数据服务的重要任务,要满足大规模应用需要的高并发数据更新与读取。
三、大数据管理系统
01NoSQL数据管理系统
NoSQL 是以互联网大数据应用为背景发展起来的分布式数据管理系统,它有两种解释:一种是Non-Relational,即非关系数据库:另一种是Not Only SOL,即数据管理技术不仅仅是SOL。NoSOL系统支持的数据模型通常分为:Key-Value模型、BigTable模型、文档(document)。
NoSQL 系统为了提高存储能力和并发读写能力采用了极其简单的数据模型,支持简单的查询操作,而将复杂操作留给应用层实现。该系统对数据进行划分,对各个数据分区进行备份,以应对结点可能的失败,提高系统可用性;通过大量结点的并行处理获得高性能,采用的是横向扩展的方式(scale out)。
02NewSQL数据库系统
NewSQL 系统是融合了 NoSQL 系统和传统数据库事务管理功能的新型数据库系统。NewSQL 将 SQL 和NoSQL的优势结合起来,充分利用计算机硬件的新技术、新结构,研究与开发了若干创新的实现技术。表14-1 给出了SQL系统、NoSQL系统与NewSQL系统的比较。
表14-1 SQL系统、NoSQL系统与NewSQL系统的比较
系统名称 |
易用性 |
对事务的支持 |
扩展性 |
数据量 |
成本 |
代表系统 |
操作方式 |
一致件,并发控制等 |
|||||
经典关系数据库系统SQL系统 |
易用SQL |
ACID 强一致性 |
<1000结点 |
TB |
高 |
Oracle,DB2,Greenplum等 |
NoSQL系统 |
Get/Put等存取原语 |
弱一致性最终一致性 |
>10000结点 |
PB |
低 |
BigTable,PNUTS, Cloudera等 |
NewSQL系统 |
SQL |
ACID |
>10000结点 |
PB |
低 |
VoltDB,Spanner等 |
03MapReduce技术
MapReduce技术主要应用于大规模廉价集群上的大数据并行处理,是以key/value的分布式存储系统为基础,通过元数据集中存储、数据以chunk为单位分布存储和数据chunk冗余复制来保证其高可用性。MapReduce是一种并行编程模型。其处理模式以离线式批量处理为主。
MapReduce存在如下不足:
(1)基于MapReduce的应用软件较少,许多数据分析功能需要用户自行开发,从而导致使用成本增加;
(2)程序与数据缺乏独立性;
(3)在同等硬件条件下,MapReduce的性能远低于并行数据库;
(4)MapReduce处理连接的性能尤其不尽如人意。
因此,近年来大量研究着手将并行数据库和MapReduce两者结合起来,设计兼具两者优点的大数据分析平台。这种架构又可以分为并行数据库主导型、MapReduce主导型、并行数据库和MapReduce集成型,表14-2对三种架构进行了对比。
表14-2 数据库与MapReduce的借鉴融合
解决方案 |
着眼点 |
代表系统 |
缺陷 |
并行数据库主导型 |
利用MapReduce技术来增强开放性,以实现存储和处理能力的可扩展性 |
Greenplum, Aster Data |
规模扩展性有待提高 |
MapReduce主导型 |
学习关系数据库的SQL接口及模式支持等,改善易用性 |
Hive, Pig Latin |
性能需要优化 |
并行数据库和ManReduce集成型 |
集成两者,使两者各自做自己擅长的工作 |
HadoopDB, Vertica,Teradata |
各自的某些优点在集成后有所损耗 |
04大数据管理系统的新格局
关系数据管理技术针对自身的局限性,不断借鉴 MapRecluce 的优秀思想加以改造和创新,提高管理海量数据的能力。而以 MapReduce 为代表的非关系数据管理技术阵营,从关系数据管理技术所积累的宝贵财富中挖掘可以借鉴的技术和方法,不断解决其性能问题、易用性问题,并提供事务管理能力。
(1)面向操作型应用的关系数据库技术
基于行存储的关系数据库系统、并行数据库系统、面向实时计算的内存数据库系统等,它们具有高度的数据一致性、高精确度、系统的可恢复性等关键特性,同时扩展性和性能也在不断提高,仍然是众多事务处理系统的核心引擎。
(2)面向分析型应用的关系数据库技术
在数据仓库领域,面向OLAP分析的关系数据库系统采用了Shared Nothing的并行体系架构,支持较高的扩展性。同时,数据库工作者研究了面向分析型应用的列存储数据库和内存数据库。列存储数据库以其高效的压缩、更高的UO效率等特点,在分析型应用领域获得了比行存储数据库高得多的性能。
(3)面向操作型应用的NoSQL技术
NoSQL数据库系统相对于关系数据库系统具有两个明显的优势:
①数据模型灵活,支持多样的数据类型(包括图数据);
②高度的扩展性,很少有一个关系数据库系统部署到超过1000个结点的集群上,而 NoSQL 在大规模集群上获得了极高的性能。
(4)面向分析型应用的MapReduce技术
系统的高扩展性是大数据分析最重要的需求。MapReduce并行计算模型框架简单,具有高度的扩展性和容错性,适合于海量数据的聚集计算,成为面向分析型应用的NoSQL技术的代表。但是MapReduce支持的分析功能有限,具有一定的局限性。