Big Data 技术综述 2011-08-10 16:45 baiyuzhong 程序员 我要评论(0) 字号:T | T Big Data 是近来的一个技术热点,但从名字就能判断它并不是什么新词。毕竟,大是一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。被誉为数据仓库之父的Bill Inmon 早在20 世纪90 年代就经常将Big Data 挂在嘴边了。 AD: Big Data 是近来的一个技术热点,但从名字就能判断它并不是什么新词。毕竟,大是一个相对概念。历史上,数据库、数据仓库、数据集市等信息管理领域的技术,很大程度上也是为了解决大规模数据的问题。被誉为数据仓库之父的Bill Inmon 早在20 世纪90 年代就经常将Big Data 挂在嘴边了。 然而,Big Data 作为一个专有名词成为热点,主要应归功于近年来互联网、云计算、移动和物联网的迅猛发展。无所不在的移动设备、RFID、无线传感器每分每秒都在产生数据,数以亿计用户的互联网服务时时刻刻在产生巨量的交互„„要处理的数据量实在是太大、增长太快了,而业务需求和竞争压力对数据处理的实时性、有效性又提出了更高要求,传统的常规技术手段根本无法应付。 在这种情况下,技术人员纷纷研发和采用了一批新技术,主要包括分布式缓存、基于MPP 的分布式数据库、分布式文件系统、各种NoSQL 分布式存储方案等。 10 年前,Eric Brewer 提出著名的CAP 定理,指出:一个分布式系统不可能满足一致性、可用性和分区容忍性这三个需求,最多只能同时满足两个。系统的关注点不同,采用的策略也不一样。只有真正理解了系统的需求,才有可能利用好CAP 定理。 架构师一般有两个方向来利用CAP 理论。 Key-Value 存储,如Amazon Dynamo 等,可以根据CAP 理论灵活选择不同倾向的数据库产品。 领域模型+分布式缓存+存储,可根据CAP 理论结合自己的项目定制灵活的分布式方案,但难度较高。 对大型网站,可用性与分区容忍性优先级要高于数据一致性,一般会尽量朝着A、 P 的方向设计,然后通过其他手段保证对于一致性的商务需求。架构设计师不要将精力浪费在如何设计能满足三者的完美分布式系统,而应该懂得取舍。 不同的数据对一致性的要求是不同的。SNS 网站可以容忍相对较长时间的不一致,而不影响交易和用户体验;而像支付宝这样的交易和账务数据则是非常敏感的,通常不能容忍超过秒级的不一致。 图 1 memcached 构成Cache 篇...