【IT168 评论】上下班路上,随手打开各类新闻客户端,就可能在新闻列表中看到推荐广告,打开邮箱阅读电子邮件时,页面上可能就会显示内容相关的广告。近几年,各大网站也热衷于盘点各类数据,从中可以发现不少有趣的现象,比如迅雷的年度下载盘点,可以在一定程度上反映出各地的网速水平。我们在享受大数据分析成果的同时,是否好奇传统关系型数据库的生存状况呢,似乎并不是所有行业都十分顺利并且乐意转型,传统关系型数据库的使用范围怕是NoSQL短期内很难超越。
DB-Engines排行榜与TIOBE排行榜规则类似,权威性可见一斑,10月份各大数据库使用范围排名情况如下所示:
NoSQL数据库主要包括四种类型:键值(Key-Value)存储数据库,列存储数据库,文档型数据库,图形数据库。这样看来,榜单前十名里只有MongoDB、Cassandra、Redis属于NoSQL的范畴,扩充到前33名来看,传统数据库似乎还是略胜一筹。
如果单凭10月份的榜单,就下此结论确是不妥,结合13年到16年各类数据库的使用趋势变化图来看,或许更具说服力。Oracle、MySQL、SQL Server基本变化不大,并处于遥遥领先的位置。大数据的概念虽说13年早已经唱了出来,但一开始可能更多的是对概念的关注,落地实践的并不多。近年来虽说增幅较大,但想要超越传统关系型数据库还是需要时日的。
随着大数据越来越深入人心,作为支撑大数据的基础技术,NoSQL受到越来越多的关注,与传统数据库相比,二者的不同点之一就是数据一致性。在RDBMS中由于存在ACID原则,可以保持严密的数据一致性,而NoSQL并不遵循ACID原则,而是采用Eventual Consistency(结果上的一致性),可能存在临时的数据不一致,这会导致什么情况出现呢?
如果你的微博增加了1个粉丝,从79增长到80人,这时只要结果对就好了,至于过程中有没有几秒钟的延迟是无关紧要的。而在金融行业,尤其是银行这种机构,必须时刻保持严密的数据一致性,交易处理必须立即在数据库中得到体现,这种行业对于转型是十分慎重的,大部分都处于探索中,这或许可以解释为什么NoSQL数据库的增长率不低,但排名依然得不到上升了。
早期的NoSQL数据库市场产品相比根基深厚的传统关系型数据库而言,十分不成熟。很多NoSQL数据库都是一些互联网企业以内部使用为目的而自行开发的,大部分是开源项目,企业很难得到与商用产品一样的支持服务。随着众多巨头的加入,使得企业用户部署NoSQL数据库的门槛大大降低,但要想招募到精通这些技术的人才却可能要付出很高的成本,这也是传统关系型数据库的优势之一。
归根结底,Hadoop和NoSQL数据库等新技术,是在现有关系型数据库和SQL等数据处理技术很难有效处理非结构化数据这一背景下产生的,一些企业由于自身的迫切需求而开发的。一般企业不必非要赶这波潮流,推翻或颠覆现有的技术,对一些结构化数据的存储和处理,还是可以沿用传统的关系型数据库。不过,不难预见,未来的NoSQL数据库将会整体呈现上升趋势,至于是否会有黑马出现,很值得期待。