dbaplus社群 2024年10月21日
比 SQL 强?为什么 NoSQL 在大规模部署下总会失败?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

文章探讨了SQL与NoSQL的发展情况。指出人们曾误以为SQL比NoSQL慢、效率低,实则不然。文中分析了NoSQL在大规模情况下的失败原因,如缺乏事务支持、缺少二级索引等,还提到NoSQL产品逐渐向RDBMS产品靠拢,以及一些企业从NoSQL向分布式SQL的迁移等内容。

🎯NoSQL在大规模情况下会失败,存在缺乏事务支持、数据可能损坏或逻辑不一致,数据越多问题越难解决等问题。

💡NoSQL缺少二级索引,通过强力扫描查找内容,在数据量大时计算成本很高,且存在单点故障和界面不友好的问题。

📈NoSQL产品开始变得与RDBMS产品相似,但本质区别仍在,缺乏模式使分析和交易更困难,阻碍新应用程序开发。

🚀一些企业从NoSQL向分布式SQL迁移,如Pinterest从HBase迁移到TiDB,提高了开发速度并降低了查询延迟。

原创 Sunny Bains 2024-10-21 07:15 广东

多年来,人们一直误以为 SQL 比 NoSQL 速度慢、效率低,但事实并非如此。




之前一篇名为《50年了!为什么我们仍在使用SQL?》的文章,引发了大家的激烈讨论。在技术迭代迅猛的计算机行业,SQL 50年经久不衰,并被大家预判在可预见的未来甚至更远,会一直发挥作用。


最近,小编在The New Stack上看到《为什么 NoSQL 部署在大规模情况下会失败?》这一篇文章,从企业发展的角度,评析了SQL存在的重要意义,希望能给大家带来一些启示。





为什么技术会过时?这个问题没有统一的答案。有时是被某种更先进的技术超越,有时是潜在(新兴市场)的需求不断演变……


这就是许多企业对NoSQL 的认识,也是为什么如今许多 NoSQL 实施都举步维艰。


不久前,在大数据发展的早期,Hadoop 是人们热议的话题,传统的基于 SQL 的数据存储被认为已经过时。每家获得风险投资的初创公司似乎都拥有 NoSQL 键值存储,他们追随谷歌、Facebook 和雅虎等科技巨头的脚步(这些巨头开发了 NoSQL 技术来管理其快速增长),初创公司自然而然地会采用为其前辈在全球取得成功提供支持的工具。


但奇怪的是,成功的创业公司开始抛弃 NoSQL 数据库。


代入一下 Hbase 的发展轨迹。Hbase 是作为标准 Apache Hadoop 软件包的一部分而发布的数据库。HBase 以 Google 著名的 BigTable 为蓝本,其受欢迎程度在几年内飙升,然后逐渐下降。



从上面的图表来看,人们可能会认为 2017 年出现了一种新的数据库来取代 HBase —— 也许是一种可以更快地存储和访问数据,或可以处理更多信息的数据库。但事实并非如此,HBase 仍然存储和检索其中最好的数据,它的受欢迎程度下降与其原始功能无关,而是与其用户试图解决的问题的复杂性有关。


在 SaaS 和大数据发展的早期,初创公司忙于跟上客户的增长。他们需要一种廉价的方式来存储和管理大量高速数据,HBase 等 NoSQL 工具出色地完成了这一任务。但查询这些数据如何保持一致性?这些是后面才要思考的问题。


最终,这一刻到来了。很明显,当它到来时,基于 NoSQL 构建的公司存在巨大的维护问题。他们在编写查询时遇到困难,数据变得不可靠,新应用程序越来越难构建,NoSQL 最初非常具有成本效益,但随着业务变得越来越复杂,维护它开始则产生了成本。


此时,许多运行 HBase 的公司已不再是初创公司,它们已在全球扩张,创建了其他人用来建立业务的平台,并开始招聘数据分析师,同时考虑停机时间和 SLA,不再只是试图保存数据,而是开始使用数据。


正是在那时,NoSQL 的局限性开始显现出来了,并且成为一个真正的问题。


对于 HBase,包括:



随着时间的推移,大规模运行 NoSQL 的这些基本问题变得无法忽视。一些人试图找到一个折衷的解决方案,较新的 NoSQL 数据库试图在 HBase 的键值架构上分层结构,添加具有 SQL 或类似 SQL 功能的事务。


正如麻省理工学院的 Michael Stonebreaker 所说:“尽管有人强烈表示 SQL 很糟糕,但到 2010 年代末,几乎每个 NoSQL DBMS 都添加了 SQL 接口。”他补充道:“许多剩余的 NoSQL DBMS 还添加了强一致性 (ACID) 事务。因此,NoSQL 消息已从‘不要使用 SQL — 它太慢了!’转变为‘不仅仅是 SQL’(即SQL 对于某些事情来说很好)。”


随着时间的推移,NoSQL 产品开始变得与 RDBMS 产品相似,但本质区别仍然存在。根据定义,NoSQL 解决方案缺乏模式,这是它们的优势,也是劣势。缺乏数据模式可以实现快速存储和检索,这也使分析和交易更加困难。如果模式未在数据库中实现,则必须在查询中实例化。


例如,如果需要将数据分片到不同的服务器上,则更改必须反映在应用程序代码中。一些 NoSQL 解决方案允许在外部定义模式,但这种方法在实践中容易出错,模式迁移是脆弱且令人毛骨悚然的操作。


更改数据库的难度阻碍了新应用程序的开发,它使创新变得更加困难,很少有企业能长期容忍这种情况。


HBase 的早期采用者Pinterest,就是一个很好的例子。根据 Pinterest 工程博客文章,它一度在 HBase 上运行“50 个集群、9000 个 AWS EC2 实例和超过 6 PB 的数据”。早期HBase 完成了任务,但随着时间的推移和Pinterest 的发展,他们发现 HBase 的缺点超过了它的好处,它的功能太少,管理成本太高。


随着其他企业也开始得出同样的结论,找到精通 HBase 的工程师也变得越来越难。最终,Pinterest 迁移到了TiDB(与 MySQL 兼容的分布式 SQL 开源数据库)。迁移后,该公司提高了开发速度并降低了查询延迟,同时使性能更可预测。


这可能会让一些人感到意外。多年来,人们一直误以为 SQL 比 NoSQL 速度慢、效率低,但事实并非如此。云计算和水平扩展方面的进步,使最近的 SQL 解决方案更接近与 NoSQL 同类解决方案的原始性能对等,同时仍提供 RDBMS 的所有优势。分布式 SQL 并非专注于数据库功能的一个维度(存储和检索),而是寻求在广泛的事务和分析用例中提供高性能,这使其对具有复杂需求和各种利益相关者的成熟企业具有吸引力。


讽刺的是,在从 NoSQL 转向分布式 SQL 的过程中,Pinterest 和类似的公司正在追随谷歌的脚步,就像他们最初采用 NoSQL 时一样。TiDB 和其他分布式 SQL 解决方案是 Google Spanner 的后代。这是谷歌为解决 BigTable 问题而创建的软件,BigTable 是 HBase 的诞生技术。


某种程度上,SaaS 行业只是重演了谷歌和其他科技巨头过去 20 年走过的历程。现在,一项技术(SQL/RDBMS)本应被另一项技术(NoSQL)淘汰,而后者现在正被更现代的技术所取代。


谁能保证轮子不会再次转动?最后引用 Stonebreaker 的话:“因果报应。另一波开发人员会声称 SQL 和 [关系模型] 不足以满足新兴应用领域的需要,然后人们会提出新的查询语言和数据模型来克服这些问题。”但他指出,没有一种语言和模型能够真正取代基于 SQL 的关系数据库管理系统 (RDBMS)。


这是一个有用的提醒,多年来,传统的关系数据库已经证明其具有吸收创新的卓越能力,从集群到云到矢量搜索。数据库架构的趋势来来去去,但不知何故,当尘埃落定时,SQL 似乎总是屹立不倒



作者丨Sunny Bains   编译丨Rio

来源丨https://thenewstack.io/why-nosql-deployments-are-failing-at-scale/


*本文为dbaplus社群编译整理,如需转载请取得授权并标明出处!欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn




活动推荐


在AI的驱动下,数据库技术实现了更多元化的更迭与创新。这对于企业用户而言,在有了更多选择的同时,也面临着新旧产品和技术替换、迁移、兼容等架构设计和运维管理难题第九届DAMS中国数据智能管理峰会将于2024年11月29日在上海举办,携手一众产学研界技术领跑单位,带来新思路、重实践、可落地的全日干货盛宴。早鸟优惠,码上报名↓


跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

SQL NoSQL 分布式SQL 数据库架构
相关文章