这篇文章主要讲解了“NoSQL的必须知道的东西有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“NoSQL的必须知道的东西有哪些”吧!
了解为什么NoSQL出生
1. 从持久数据存储到支持现代应用程序
为了了解为什么NoSQL出生,我认为退后并快速查看数据存储解决方案的演变是有用的。
在20世纪50年代至20世纪70年代之间,创建了早期数据管理系统,如平面文件,分层数据库和网络数据库。它是世界持久数据存储避免丢失数据时才足够好。
在20世纪70年代,关系数据库即将解决数据不一致的问题。而且如此强大,他们成为行业标准,使单独的团队和多个应用程序能够在单个逻辑上相干的数据上搜索,查询和操作,从而产生巨大的生产力效益。
但2000年代的Web应用程序,电子商务和社交媒体的指数增长产生了新的挑战。谷歌和亚马逊等技术巨头发现,需要在网络上支持大量的用户,从单一数据库应用程序上支持数千名业务用户。
具体来说,我们现在有一个新的问题:如何一致地存储大型数据集并支持现代应用程序,该应用程序在不连续的情况下连续处理大量用户请求的用户请求?在适当的技术条款,这是以下问题:
支持大量读取和写入
确保低延迟响应时间
保持高可用性。
虽然在某种程度上可以解决与关系数据库的这个问题,但它通常具有增加的复杂性和潜在的高成本。因此,出生的两个高度有影响力的NoSQL数据库示例:来自亚马逊的DynamoDB和谷歌的Bigtable。这标志着NoSQL数据库的爆炸性,从那时起,人们从未回头过。
定义NoSQL特性
> Image by Author
2. 是架构无神论
架构无神论,NoSQL数据库不需要上模式设计。这意味着2对关系数据库的益处。
首先,避免在前面的架构设计工作中花费几个月意味着缩短开发时间,最终转化为更快的网络和移动应用程序的时间。
其次,架构无神论使您可以灵活地通过应用程序开发中途改变数据结构(而不是通过可怕的架构重新设计过程)。
如果您正在处理不同的数据结构,这很重要。例如,电子商务应用程序需要使用不同的产品规格存储不同的项目。时尚产品的规模,颜色,形状和品牌属性,而微波炉可能包括尺寸,容量,瓦数和制造商的保修细节。
3. 非关系
使用NoSQL数据库,没有强制非关系数据到行和列中。由于开发人员可以保持存储的数据结构更接近其原始形式,它们可以最大限度地减少代码的金额和复杂性以存储,管理和搜索信息。这反过来是测试,故障排除和错误修复更可管理。
此外,随着数据以非正式格式存储,NoSQL数据库中的销售订单将与所有相关产品和递送地址一起保存。这转化为简单的数据存储和检索以及更快的查询。
如果您认为Denormalising数据也有其缺点,如冗余和更高的数据存储成本。你是绝对正确的!在一天结束时,这是一个判断你愿意支付更快的应用程序开发和数据查询的问题。
4. 固有地在商业硬件上发布
鉴于任何现代应用程序都必须跨多种商品服务器分发。这不仅要满足大量数据,还要迎合了无缝总是在网站和应用程序的消费者期望。他们必须以毫秒为单位响应,并且每当需要时始终可用于许多并发用户。
Oracle RAC或SQL Server Alwayson是分布式关系数据库的示例。不幸的是,关系数据库必须依靠手动分片,这通常会导致更大的复杂性和运营成本。
相反,许多NoSQL数据库,如HBase,Riak和Cassandra是固有的分布式,内置选项可以控制如何在廉价商品服务器上复制数据和分发数据。即使其中一个服务器崩溃并刻录,您的数据仍然可以访问您的应用程序继续运行和服务用户需求。这使得NoSQL数据库更适合大规模数据存储,以支持网站和面向客户的应用程序。
注意:并非所有NoSQL数据库都设计为分布或必须分发。但是,当可用性和可扩展性是最重要的问题时,选择分布式产品有意义。
选择NoSQL数据库
5. 存在多种类型的NoSQL数据库
NoSQL数据库中使用的四种最广泛类型:键值,文档,列族和图形数据库。每个目的都是非常不同的。
键值数据库将数据保存为一组键值对。关键作为概述关联值的唯一标识符。一些例子包括Memcached,Voldemort,Redis和Riak。
文档数据库存储和查询数据与嵌套结构的类似JSON的文档。两个主要的开源选项是MongoDB和CouchDB。
面向列的数据库是以给定列的数据存储在一起的方式设计的。一些更流行的产品是HBase,Cassandra,Hypertable。
图数据库的实力在于它们的模型网络(即与其他东西连接的东西)。通常在社交网络应用中发现,图形数据库可以快速横向节点和关系来提取相关数据。您可能已经听说过其最着名的示例:Neo4j。
NoSQL数据库具有丰富的选择,但所有选择都没有同等地创建。广泛的NoSQL产品说明一个人可以在管理文档中Excel Excel,而另一个可以提供无与伦比的优势来管理社交网络。以下是每个NoSQL数据库类型的一些现实生活用例。
> Image by Author
6. 最适合您的业务问题
选择哪些NoSQL数据库采用时,您必须要求自己的问题不是“此数据库可以存储我的数据吗?”而是,“它是最适合我的业务问题和应用要求吗?”
但对我来说很清楚,许多其他决定“最适合”可能是艰难的,因为有这么多考虑因素。每次考虑都对不同用例的最终决策进行了不同的重量。
要为您提供一个起点,以下是在决定数据存储解决方案的最佳拟合时必须考虑的6个关键因素。
> Image by Author
7.各种选择都有一定的权衡
随着数据库景观更快地改变我们敢于预测,选择最佳选择是非常复杂的。
例如,虽然图形数据库如Neo4j将适合Facebook这样的社交媒体,但存储的纯粹量存储器将很容易地压倒任何现有的图形数据库。因此,倾向于更大的大规模选项(如HBase或RIAK)是有意义的,这最初与社交网络无关。
这里的那一点是,每个NoSQL数据库应该被评估为单独的技术,而不是基于其分类来刻板透明。潜在的权衡必须仔细考虑,因为它们可能是交易破坏者。
为了说明这一点,以下是七周内从书中所选数据库之间的简化比较。
注意:在表中,我还包括关系PostgreSQL以突出显示用于在其他非关系对等体上选择关系数据库的权衡。此外,可以发布新功能以解决我们的说法,以解决一些潜在的权衡,因此最好检查最新的更新。
感谢各位的阅读,以上就是“NoSQL的必须知道的东西有哪些”的内容了,经过本文的学习后,相信大家对NoSQL的必须知道的东西有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!