孔 超, 钱卫宁, 周傲英
(华东师范大学 数据科学与工程研究院,上海 200062)
传统的关系型数据管理系统已经不能满足高并发的读写、高可用性和高可扩展性的新兴互联网应用的需求.NoSQL系统在这种背景下应运而生.NoSQL常被认为不同于传统关系型数据管理系统,是具有非关系型、分布式、开源、横向扩展等特性的新型数据管理系统[1].这些系统牺牲了一些已在传统关系型数据库中成为标准的功能,如数据一致性、标准查询语言以及参照完整性等,以换取高可扩展性、高可用性和高可靠性.
随着互联网技术的快速发展,海量数据的存储、管理和处理已经成为全球各大互联网公司不可回避的严峻问题.以业务范围跨越C2C(个人对个人)和B2C(商家对个人)的淘宝网为例:截至2013年,淘宝网拥有近5亿的注册用户数,每天有超过6 000万的固定访客,每天的在线商品数已经超过了8亿件,平均每分钟售出4.8万件商品[2,3];2013年11月11日零时,开场仅1分钟成交的订单数量达到33.9万笔,总成交金额达到1.17亿元,第二分钟,成交数字突破3.7亿元,到了零时6分7秒,成交额直接冲上10亿元,截至11日24时,“双11”天猫及淘宝的总成交额破300亿元,达350.19亿元[4],这些海量交易信息的存储、分析和处理对淘宝网提出了巨大的挑战,类似的问题也出现在Google、Facebook、Yahoo等互联网应用上.例如,2012年Facebook在总部的一次会议中披露了一组Facebook每天要处理的数据:25亿条分享的内容条数,27亿个“赞”的数量,3亿张上传的照片数,超过500 TB新产生的数据,每半小时通过Hive扫描105 TB的数据,单个HDFS集群中的磁盘容量超过100 PB[5].……p>