1 NoSQL
NoSQL 即 Not Only SQL ,可直译 “ 不仅仅是 SQL” ,这项技术正在掀起一场全新的数据库革命性运动。
数据的模式包括多种类型,如层次模型 、 网状模型 、 关系模型等,而在实际应用过程中,几乎都是在用关系模型,主流的数据库系统都是关系型的。但随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。这也就使得 NoSQL 技术进入了人们的视野。
NoSQL 的出现打破了长久以来关系型数据库与 ACID 理论大一统的局面。 NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。
关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
与关系型数据库相比, NoSQL 数据库具有以下几个优点:
(1)易扩展
NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。
(2)大数据量,高性能
NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MySQL 使用 Query Cache ,每次表一更新 Cache 就失效,它是一种大粒度的 Cache ,在针对 web2.0 的交互频繁的应用, Cache 性能不高。而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache ,所以 NoSQL 在这个层面上来说性能就高很多了。
(3)灵活的数据模型
NoSQL 无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的 web2.0 时代尤其明显。
(4)高可用
NoSQL 在不太影响性能的情况,就可以方便地实现高可用的架构。比如 Cassandra , HBase 模型,通过复制模型也能实现高可用。
当然, NoSQL 也存在很多缺点,例如,并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验,缺乏相关专家技术的支持等。
2 大数据
大数据( big data ),指无法在一定时间范围内用常规软件工具进行捕捉 、 管理和处理的数据集合,是需要新处理模式才能具有更强的决策力 、 洞察发现力和流程优化能力的海量 、 高增长率和多样化的信息资产。
2.1 大数据的特点
业界通常用 4 个 V(即 Volume、 Variety、 Value、 Velocity)来概括大数据的特征。
(1)Volume
指的是数据体量巨大,从 TB 级别跃升到 PB 级别(1 PB =1024 TB ) 、 EB 级别(1 EB =1024 PB ),甚至于达到 ZB 级别(1 ZB =1024 EB )。截至目前,人类生产的所有印刷材料的数据量是200 PB ,而历史上全人类说过的所有话的数据量大约是 5 EB 。 当前,典型个人计算机硬盘的容量为 TB 量级,而一些大企业的数据量已经接近 EB 量级。
例如,在交通领域,某市交通智能化分析平台数据来自路网摄像头 / 传感器 、 公交 、 轨道交通 、 出租车以及省际客运 、 旅游 、 化危运输 、 停车 、 租车等运输行业,还有问卷调查和地理信息系统数据。4万辆车每天产生 2000 万条记录,交通卡刷卡记录每天 1900 万条,手机定位数据每天 1800 万条,出租车运营数据每天 100 万条,电子停车收费系统数据每天 50 万条,定期调查复盖8万户家庭等,这些数据在体量上就达到了大数据的规模。
(2)Variety
指的是数据类型繁多。这种类型的多样性也让数据被分为结构化数据和非结构化数据。相对于以往便于存储的以文本为主的结构化数据,非结构化数据越来越多,包括网络日志 、 音频 、 视频 、 图片 、 地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。
(3)Value
指的是价值密度低。价值密度的高低与数据总量的大小成反比。以视频为例,一部1小时的视频,在连续不间断的监控中,有用数据可能仅有 1-2 秒。如何通过强大的机器算法更迅速地完成数据的价值 “ 提纯 ” 成为目前大数据背景下亟待解决的难题。当然把数据集成在一起,并完成 “ 提纯 ” 是能达到 1+1 大于2的效果的,这也正是大数据技术的核心价值之一。
(4)Velocity
指的是处理速度快。这是大数据区分于传统数据挖掘的最显着特征。根据 IDC 的 “ 数字宇宙 ” 的报告,预计到 2020 年,全球数据使用量将达到 35.2ZB。 在如此海量的数据面前,处理数据的效率就是企业的生命。
2.2 传统数据与大数据的比较
比较维度 | 传统数据 | 大数据 |
---|---|---|
数据量 | GB 或 TB | PB(1 PB =1024 TB) |
结构化程度 | 结构化或半结构化数据 | 所有类型的数据 |
数据分析需求 | 现有数据的分析与监测 | 深度分析(关联分析、回归分析) |
硬件平台 | 高端服务器 | 集群平台 |
2.3 大数据处理关键技术
大数据处理关键技术一般包括:大数据采集 、 大数据预处理 、 大数据存储及管理 、 大数据分析及挖掘 、 大数据展现和应用(大数据检索 、 大数据可视化 、 大数据应用 、 大数据安全等)。
2.4 大数据应用
大数据可以在各行各业得以应用,如金融服务 、 医疗保健 、 零售业 、 制造业 、 政府机构等。