文档介绍:互联网海量数据存储及处理调研综述
摘要
本文主要针对互联网应用中出现的新兴的海量数据存储和处理系统展开讨论,对比新兴系统与传统数据技术的差异,以及这些系统之间实现技术的不同特点,并总结出相应的关键技术问题。
近些年来,blog、wiki、spaces的兴起导致互联网内容的提供方式出现转变;,带动着视频应用、网络游戏、搜索引擎等互联网衍生业务迅速发展。互联网正处于一个信息爆炸的时代。面对信息爆炸的互联网,如何去存储和处理这些海量数据,对诸如Facebook、YouTube等大规模互联网企业提出了巨大的技术挑战,同时也开启了开阔的研究空间。本文将综述互联网数据存储以及处理技术的发展、研究状况,指出这方面研究的技术挑战和研究问题。
互联网应用种类繁多,包括Facebook、MySpace为代表的社会关系网络、Flickr为代表的图片共享应用、Youtube为代表的视频共享应用以及以Google、Yahoo为代表的搜索引擎应用等。这些互联网应用因为自己的应用特性不同,面对不断增长的互联网用户带来的不断增长的数据(视频、图片、blog等)所采用的技术路线不尽相似。但是,这些技术路线从本质上可以分为两个方面:海量数据的存储管理技术以及针对海量数据的处理技术(日志分析、搜索引擎应用等)。
本文剩下的部分主要从这三个部分展开论述。第1部分介绍互联网应用的特点,阐述海量数据带来的新特性;第2部分主要分析传统数据库在互联网应用中的局限性,并对比新兴系统与传统数据库系统的差异,讨论海量数据管理的关键技术;第3部分则介绍一些用于海量数据处理的系统,讨论它们的技术特点;最后,总结全文。
背景
随着互联网的快速发展,Blog、RSS、视频共享、、管理和处理已经成为当今互联网公司面临的严峻问题。以c2c网站淘宝为例,2007年度淘宝的注册用户已经超过了4500万,商品总数也多达9000万,每天的页面点击率可达2亿多次;并且每天都有大量新用户注册,交易也在无时无刻进行中[1]。这些信息保存在存储设备上,便是高速膨胀的海量数据。同样的问题也出现在Google、Facebook、Flickr等互联网应用上,如表1所示。
应用类型
应用名称
规模
搜索引擎
Google
总量:10KB / doc * 20B docs = 200TB
每30天做一次索引:200TB / 30 days = 6TB / day
SNS
Facebook
(2008)
Page View: / page view events * 3B page view events / day = / day
Relationship:100M users * 5 events * 100 feed/event * = 5TB / day
图片共享
Facebook
(2007)
65亿张原始图片,每张图片保存为4~5个不同尺寸
图片总量达300亿张,共540TB
请求数:(读) 1亿张/周(上传)
Flickr
(2007)
原始图片存储总量达2PB
请求数:40亿张/天(读) 40万张/天(上传)
视频共享
Youtube
(2007)
视频总量达600万个,共45TB
观看率超过一亿次/天,上传率达65000次/天
电子商务
淘宝
(2007)
4500万注册用户,9000万件商品,2亿次/天页面点击率
eBay
(2007)
,10亿张图片,,2PB数据
页面点击率10亿次/天, 并且从1999年至2006年页面点击率增长因子为35
表1 不同互联网应用的规模[1, 11, 39, 40, 41, 42]
这些互联网应用由于不同的应用特性在用户规模、存储数据规模等方面表现不尽相同。但是,从表1中我们依然可以看到这些互联网应用在面对海量数据时的一些共性,归纳如下:
用户群体大,增长速度快。
以电子商务领域为例,,并且用户数量在不断增长。在过去将近10年内,eBay的页面点击率增长到日均10亿次,并且增长因子为35。虽然页面点击量不能直接等同于用户数,但是高页面点击率以及增长率也从一定程度反应了该应用的用户群体规模和增长规模。同样,拥有上亿次上十亿次日均页面点击率的图片视频共享、SNS等互联网应用,也具有上述特点。
数据总量大,增长速度快。
不论是存储大量静态数据的图片视频共享服务,还是存在大量用户交互消息的SNS、电子商务服务,它们存储的数