在本文中,我们将简单介绍什么是NoSQL、NoSQL与关系型数据库的区别、NoSQL数据库的优势以及如何使用NoSQL。
在文末,我们也将分享一些有用的资源,帮助初学者快速开始使用NoSQL。
什么是NoSQL
NoSQL数据库是为满足云计算的需求而设计的,它突破了传统关系型数据库对规模、性能、数据模型和数据分布的限制。
NoSQL (Not-only-SQL,不只是SQL) 数据库采用与关系型数据库不同的方式来存储、分布和获取数据。
最初,Facebook、Google和Amazon这样的互联网巨头希望能够在全球各地读写数据,并向数十亿用户提供高性能和高可用的保障,这就产生了对可伸缩性(scalable) 的数据管理系统的需求。于是他们创造并开始使用NoSQL。
现如今,大多数公司和组织都需要通过大型应用系统来满足用户的个性化需求。而NoSQL正是可以助其一臂之力的数据库技术。
NoSQL与关系型数据库
NoSQL和关系型数据库分别支持不同的应用需求,很多时候企业会同时使用这两种数据库来应对不同的使用场景。从技术的角度来说,区别这两者的主要标准包括:
NoSQL的优势
NoSQL数据库最初是为了支持以云端应用为目标的、去中心化的系统所设计。相比其它数据库管理系统,像Cassandra这样的NoSQL数据库通常有以下优势:
- 持续的可用性:即使遭遇最为严重的基础设施故障,NoSQL数据库仍然能保持在线
- 环球分布:不论身在何方,都能获取数据
- 操作低延迟:满足绝大部分密集操作的云应用的反应时间
- 线性拓展:可预见的扩展和收缩满足了当下及未来的云应用需求
- 功能整体性:混合的工作内容和多种数据模型的紧密集成 (coherent integration) 和互用性 (interoperability)
- 操作成熟性:为企业准备好的云应用数据管理系统
- 低拥有成本:无需特殊硬件或附加软件
如何使用NoSQL
从现实层面来讲,应该如何开始使用NoSQL并且落实你的首个应用呢?大致来说,有三种采用NoSQL数据库的方法。
- 新应用:很多人从零开始使用NoSQL,是从将其应用到一个新的云服务开始的。这种方式避免了应用的重写和数据的迁移。
- 扩编:有些人选择将现有的系统扩充,添加NoSQL的元素进去。通常这种情况发生在关系型数据库管理系统不能再满足应用程序的成长需求时,此时应用程序需要一个能满足更大的规模或是更好的可用性的系统来支持。
- 完全替代:对于一直在烧钱的系统或者是由于并发性、数据速率和数据数量产生重大问题的系统,人们通常会使用NoSQL数据库完全替代原有的系统。
从何处开始
如果你正打算更多地学习了解Apache Cassandra,我们有很多资源帮助你顺利起航。
- DataStax for Developers:学习如何玩转Apache Cassandra?
- DataStax Astra:通过DataStax Astra,一个基于Apache Cassandra的数据库及服务平台,能够帮你快速地建立云原生应用。
References:
https://www.datastax.com/nosql