zjuwangleicn 2013-06-24
从1970年IBM的埃德加·弗兰克·科德发表“大型共享数据库的关系模型”论文至今,关系数据库发展已有40年有余,已经发展到了高度成熟的阶段,而且是经住了时间考验的。但是近几年来,随着数据大爆发时代的来临,数据量已经不是GB级,而是往TB级、PB级发展,同时互联网应用的大数据量和高并发的要求越来越高,传统的关系数据库已经难以满足发展的需要。于是非关系型数据库(也即NoSQL)理论便应运而生,各种NoSQL产品也相应产生。
但是与高度成熟的关系型数据库不同,NoSQL毕竟属于新生事物,不管是理论还是产品都还不够成熟,选择性很多,而且NoSQL还分多个种类,不像关系型数据库只有几个产品,只要选择一个合适的产品便万事无忧了。所以如何应用NoSQL技术便成为一件难度很高的事情,而《大数据挑战与NoSQL数据库技术》正可以解决这个问题。这本书是绝佳的NoSQL入门书籍加选型手册,通过这本书可以快速地一窥NoSQL技术全貌,进而全面掌握NoSQL技术,懂得实践当中什么时候应该选择什么样的解决方案。
全书结构分布非常合理,总共三部分,第一部分讲理论,包括大数据产生背景以及NoSQL技术的核心理论知识和各方面的实现技术,读完这部分便对大数据和NoSQL有了全盘的了解;第二部分带领我们领略了几种典型的NoSQL数据库种类和最成功的产品,理论和实践结合,方便读者进行技术选型;第三部分则结合实践,介绍部分企业如何使用NoSQL解决自身遇到的问题,使读者对NoSQL如何应用更有了明晰的认识。
之前只久闻大数据和NoSQL其名,却从未看到相关的东西,一直觉得这应该是一个多么高端多么艰深的技术,是可望而不可及的,所以始终没有花时间研究一番。正好这是一个刚刚跨入梅雨季节的周末,时而细雨纷飞时而大雨磅礴,正好在家好好拜读这本新书,没想到越看越想看,一口气读完了试读的全部章节,很快便对大数据和NoSQL技术有了一定的认知,因为这本书行文流畅自然、深入浅出,把高深的理论和技术写得通俗易懂,所以让人爱不释手。一口气读完这么多,学习到这么多的知识,有一种久违的快感,这实在是一个无比充实的周末。
虽然看得很快,但还是颇有些收获的。
为什么会产生NoSQL?
一个系统中,随着访问量和数据量的增大,有很多种方案来应对,最初是缓存,然后是分库分表、读写分离,实现分布式并且进行负载均衡,但是面对大数据量和高并发要求非常高的情况下,使尽浑身解数,有时依然无法解决数据库的访问瓶颈。于是人们开始质疑是否是数据库本身的问题呢?CAP理论的产生使人豁然开朗,原来强一致性、可用性、分区容错性三者是不能同时满足的,所以为了高度的可用性,只能牺牲强一致性,以最终一致性取而代之。于是颠覆了关系数据库的理论基础,也就是关系模型,已经ACID特性,废除了对SQL的支持,这便产生了非关系型数据库NoSQL。
NoSQL数据库有各种不同种类,主要有键值数据库、列存储数据库、文档数据库、图存数据库等等。他们各有自己擅长的地方和局限性,只有用对地方才能发挥出其功效,所以实际当中如何选择如何扬长避短才是最难把握的。
NoSQL技术如何应用于实际中?
我想一般很难完全抛弃关系型数据库,因为关系型数据库擅长的关系查询是目前的NoSQL所无法取代的,所以可以将一些性能第一、高并发的地方交由NoSQL去做。还有需要高度可扩展性和灵活性的地方,比如本人曾经做过的一个监控应用服务器的项目,采集应用服务器的监控数据,使用的是MySQL,采集的字段一旦增加,修改起来就会很麻烦,而且这确实经常发生,这种情况如何采用文档数据库,采用json的格式保存监控数据,就会高效多了。
由于接触的时间还很短,对NoSQL的认识还很肤浅,但是在这本书的带领下已经对NoSQL有了整体上的粗略认识,我迫不及待地想要读完这整本书,相信读完这本书,一定能从宏观上对NoSQL有较好的把握,再结合实践,一定能为将来使用NoSQL技术打下坚实的基础,会在使用NoSQL时的技术选型上得心应手。