21世纪,世界已经进入数据大爆炸的时代,大数据时代已经来临。从商业公司内部的各种管理和运营数据,到个人移动终端与消费电子产品的社会化数据,再到互联网产生的海量信息数据等,每天世界上产生的信息量正在飞速增长。2009年数据信息量达到8 000亿GB,而到2011年达到1.8 ZB。图灵奖获得者Jim Gray提出的“新摩尔定律”:“每18个月全球新增信息量是计算机有史以来全部信息量的总和”,已经得到验证。
大数据的“大”不仅仅体现在数据的海量性,还在于其数据类型的复杂性。随着报表、账单、影像、办公文档等在商业公司中得到普遍使用,互联网上视频、音乐、网络游戏不断发展,越来越多的非结构化数据进一步推动数字宇宙爆炸。数据海量而复杂,这是对大数据的诠释。与传统的数据相比,大数据具有规模性(Volume)、多样性(Variety)、高速性(Velocity)和低价值密度(Value)的4V特点。规模性和高速性是数据处理一直以来研究和探讨的问题,多样性和价值密度低是当前数据处理发展中不断显现出来的问题,而且在可以预见的未来,随着智慧城市、智慧地球等各种新设想的不断成为现实,上面的4中问题将会变得更加凸显,而且是不得不面对的问题。
数据的产生经历了被动、主动和自动3个阶段。大数据的迅猛发展是信息时代数字设备计算能力和部署数量指数增长的必然结果。解决大数据研究中的问题,必须要从大数据的产生背景进行研究。大数据的产生源于规模效应,这种规模效应给数据的存储、管理以及数据的分析带来了极大的挑战,数据管理方式上的变革正在酝酿和发生。大数据的规模效应要求其存储、运算方案也应当从规模效应上进行考虑。传统的单纯依靠单设备处理能力纵向发展的技术早已经不能满足大数据存储和处理需求。以Google等为代表的一些大的数据处理公司通过横向的分布式文件存储、分布式数据处理和分布式的数据分析技术很好的解决了由于数据爆炸所产生的各种问题。
1 大数据关键技术
1.1 大数据系统的架构
大数据处理系统不管结构如何复杂,采用的技术千差万别,但是总体上总可以分为以下的几个重要部分。
从数据处理的一般流程可以看到,在大数据环境下需要的关键技术主要针对海量数据的存储和海量数据的运算。传统的关系数据库经过近40年的发展已经成为了一门成熟同时仍在不断演进的数据管理和分析技术,结构化查询语言(SQL)作为存取关系数据库的语言得到了标准化,其功能和表达能力也得到的不断增强。但是,关系数据管理系统的扩展性在互联网环境下遇到了前所未有的障碍,不能胜任大数据分析的要求。关系数据管理模型追求的是高度的一致性和正确性。纵向扩展系统,通过增加或者更换CPU、内存、硬盘以扩展单个节点的能力,终会遇到“瓶颈”。
大数据的研究主要来源于依靠数据获取商业利益的大公司。Google公司作为全球最大的信息检索公司,其走在了大数据研究的前沿。面对呈