尽管关系数据库用于存储数据已经有几十年的历史,而且对很多用例而言,这仍然代表着一类可行的方案,但NoSQL正在成为人们当前的选择,尤其是考虑可伸缩性和性能的时候。本文是对Couchbase的产品管理主管Dipti Borkar的采访,主要谈到了从关系数据库向NoSQL迁移的挑战、收益和过程。
Dipti Borkar:这个问题可能有些尖锐——事实上,大多数情况下并不是放弃SQL转而寻求NoSQL解决方案,而是为了让应用和用例满足需求的变化,从一种方案转向另一种方案。一般而言,在构建现代Web和移动应用时,不管是伸缩模型还是数据模型,对灵活性都有特定的需求,而这种需求正是从SQL向NoSQL迁移的推动因素。
典型的Web应用程序是采用三层架构构建的。应用程序要向外扩展时,一般是简单地在负载均衡器之后添加更多的商品化Web服务器来支持更多用户。而对于越来越重要的云计算模型而言,向外扩展能力是其核心原则。在云计算模型中,虚拟机实例很容易根据需求进行相应地添加或删除。
然而,当涉及到数据层时,关系数据库(RDBMS)不但无法向外扩展,也没有提供灵活的数据模型,这方面有很多挑战。要处理更多的用户,这意味着要加入一台更为大型的服务器,而大型的服务器复杂度很高,一般是专有的而且非常昂贵,不像基于Web或云的架构中所使用的商品化硬件那样廉价。因此,当公司开始发现现有应用或新应用所用的关系数据库存在性能问题时,特别是这一切与用户数目的增长有关时,他们意识到需要一个更快的、有弹性的数据库层。现在是时候评估NoSQL技术并将其作为交互式Web应用的数据库层了。
InfoQ:在从SQL向NoSQL迁移时,需要哪些主要步骤?
Dipti Borkar:在使用NoSQL数据库时,不同的组织或项目追求的目标是五花八门的。所以很多迁移还是取决于具体的使用情况。下面是迁移时的一些通用指导原则:
#1 理解应用的关键需求:
某些与NoSQL匹配的需求如下:
快速应用开发
— 变化的市场需求
— 变化的数据需求
可伸缩性
– 未知的用户需求
– 访问、添加和更新数据使吞吐量持续增长而带来的需求
一致的性能
– 低响应时间,以便支持更好地用户体验
– 高吞吐量,以便处理快速地增长
运行可靠性
– 高可用性,能够优雅地处理失效并尽量减小对应用的影响
– 内置监控API,便于运行时维护
Dipti Borkar:这个问题可能有些尖锐——事实上,大多数情况下并不是放弃SQL转而寻求NoSQL解决方案,而是为了让应用和用例满足需求的变化,从一种方案转向另一种方案。一般而言,在构建现代Web和移动应用时,不管是伸缩模型还是数据模型,对灵活性都有特定的需求,而这种需求正是从SQL向NoSQL迁移的推动因素。
典型的Web应用程序是采用三层架构构建的。应用程序要向外扩展时,一般是简单地在负载均衡器之后添加更多的商品化Web服务器来支持更多用户。而对于越来越重要的云计算模型而言,向外扩展能力是其核心原则。在云计算模型中,虚拟机实例很容易根据需求进行相应地添加或删除。
然而,当涉及到数据层时,关系数据库(RDBMS)不但无法向外扩展,也没有提供灵活的数据模型,这方面有很多挑战。要处理更多的用户,这意味着要加入一台更为大型的服务器,而大型的服务器复杂度很高,一般是专有的而且非常昂贵,不像基于Web或云的架构中所使用的商品化硬件那样廉价。因此,当公司开始发现现有应用或新应用所用的关系数据库存在性能问题时,特别是这一切与用户数目的增长有关时,他们意识到需要一个更快的、有弹性的数据库层。现在是时候评估NoSQL技术并将其作为交互式Web应用的数据库层了。
InfoQ:在从SQL向NoSQL迁移时,需要哪些主要步骤?
Dipti Borkar:在使用NoSQL数据库时,不同的组织或项目追求的目标是五花八门的。所以很多迁移还是取决于具体的使用情况。下面是迁移时的一些通用指导原则:
#1 理解应用的关键需求:
某些与NoSQL匹配的需求如下:
快速应用开发
— 变化的市场需求
— 变化的数据需求
可伸缩性
– 未知的用户需求
– 访问、添加和更新数据使吞吐量持续增长而带来的需求
一致的性能
– 低响应时间,以便支持更好地用户体验
– 高吞吐量,以便处理快速地增长
运行可靠性
– 高可用性,能够优雅地处理失效并尽量减小对应用的影响
– 内置监控API,便于运行时维护
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/301743/viewspace-750262/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/301743/viewspace-750262/