询问企业申请的任何开发人员,您将知道他们对关系数据库的局限感到沮丧的程度。在2009年的范围内,在旧金山举行了会议,与他的同行讨论了关于开源,分布式,非关系数据库的同行。
最初选择为那个会议做好的Twitter HashTag,NoSQL像野火一样蔓延,但直到现在没有普遍接受的定义。快进至2021年,企业在数据存储解决方案中具有丰富的选择,包括关系和非关系。
然而,有一件事保持不变:能够轻松收集,存储,分析数据和提取洞察力从您选择的数据库开始。所以这里有7个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以突出显示用于在其他非关系对等体上选择关系数据库的权衡。此外,可以发布新功能以解决我们的说法,以解决一些潜在的权衡,因此最好检查最新的更新。
> Image by Author
总结
NoSQL意味着“不仅是SQL”,它并不简单地代表块上的新小孩,以帮助组织存储和管理数据。“不仅仅是”概念描述了关系数据库(使用SQL)的运动,这里是保持但不再是数据存储的唯一选择。这是我们还有其他替代方案来解决超出传统关系数据库所能提供的新要求的其他选择。
由于没有返回数据存储的单一选项,因此组织现在具有采用不同数据库的混合来解决不同问题的自由度(A.a.Polyglot持久性)。每个人都会发挥他们的优势,但它们将在同一生态系统中共存(希望并在一起)。
这为我们带来了这篇文章中最重要的外卖。各种选择都有结果。因此,重要的是,致力于了解我们对数据存储技术决定的影响,潜在权衡和最终责任的时间和努力。毕竟,无论您喜欢它们,您都无法逃避您选择的后果。
如果您正在阅读这一点,请谢谢您的时间,我真的希望您从这篇文章中获得一些价值。在LinkedIn和Twitter上随时与我联系。祝你有个好的一天!
最初在2021年3月8日在http://thedigitalskye.com上发布。
原文链接:https://towardsdatascience.com/7-must-know-ideas-about-nosql-5b00a760d368