您当前的位置:首页 > 电脑百科 > 数据库 > 百科

SQL 已死,NoSQL 才是王道?

时间:2019-11-28 11:13:52  来源:  作者:
SQL 已死,NoSQL 才是王道?|原力计划

作者 | dbLenis

责编 | 郭芮

出品 | CSDN 博客

当今数据库供应商风头正茂的,要数这三家公司:Amazon、google、Microsoft。没错,他们都是云计算提供者。火热的三款看家产品分别是:Amazon RDS,Google Cloud SQL,Azure Database for PostgreSQL。

A厂CTO说,AWS最火的产品是什么呢?是 Aurora 数据库,它同时兼容 PostgreSQL 与 MySQL。他还指出,Hadoop 也好,Spark、Kafka 也罢,都在极力推动 SQL 接口来让更多的服务 API 暴露给程序员

从 A 厂产品的销量来说,企业比较青睐于这些有标准 SQL 接口的产品,而对于各类只能用编程语言,比如JAVA才能正常取数的产品,显得声音大,却雨点小,少有肯买帐的。

我举个 ElasticSearch 的例子,你感受下为什么 ES 的 DSL 会让人望而却步:

POST crm_comment/_search 
{
"size":0,
“query":{
"term":{"accountName”:"Apple"}
},
"aggs":{
"count_over_time":{
"date_histogram":{
"field":"CREATED",
"interval":"month"
},
"aggs":{
"sum_of_sales":{
"sum":{"field":"salesamount"}
}
}
}
}
}

再比如,我们存日志的 MongoDB,它的官方语言是 JavaScript

SQL 已死,NoSQL 才是王道?|原力计划

看上去,这比 ElasticSearch 好看一些,每个字段都加了一个 $ 符号,请问为什么 total 就不用加呢?

原本这些数据(搜索用的 ElasticSearch, 日志用的 MongoDB)都存在 SQL 数据库中,使用 SQL 一劳永逸的搞定所有查询。但现在要花点时间熟悉 ES 和 MongoDB 的古怪语法了,还要搞清楚,数据在流转过程中是否有丢失——带来的复杂度不仅仅是一点点。

什么,你说程序员不就是应该拼命学的嘛?这是福报。嗯,这样的福报谁爱要,谁拿去,反正我不!

1.历史

让我们一起回忆下SQL关系型数据库的起源。这要追溯到IBM发表关系型数据库论文的那个年代,1970年。1970年时,关系型数据计算已经非常火热了。但这种关系运算的查询,只掌握在少数天才人的手里。普通人只能看着眼馋。

来,一起领略下当时的关系运算:

SQL 已死,NoSQL 才是王道?|原力计划

事实证明,哪里有黑盒,哪里就会产生魔法师,总有天才领袖为劳苦大众着想。Donald Chamberlin 和 Raymond Boyce 就是这样的天才!他们发明了 System R(关系型数据库原型),又在自然语言的研究方向上,发明了结构化英语查询语言(Structured English Query Lanuage, SEQUEL, 这也是为什么大家经常会把SQL读成 see-ku-er的原因)。后因商标之争,SEQUEL更名为 SQL。

那么 SQL 相比上面的数学表达式有啥好处?感受下:

SQL 已死,NoSQL 才是王道?|原力计划

前后两个运算都是在找出薪水比自己经理还高的那些员工。前者是关系数据表达式,只有数学大师才懂的符号;后者是 SQL 表达式,任何人在一星期绝对可以掌握的技术。

后来的事情,相信只要你不是00后,应该都有所耳闻了。IBM DB2、Oracle、SQL Server、MySQL 都如雨后春笋般地出来了。有了 System R 这般的磐石,有了 SQL 这代新型武器,各自造就了兵工厂,开疆扩土。

战争一直打到现在。

如果不是因为 ARPANET 这位默默在墙角自习的好青年,恐怕拉里森这位Oracle家长还要嘚瑟个好多年。经过多年的沉寂修炼,ARPANET终于在我们这个时代成长成一个壮实的大小伙了——也就是今天的互联网!

来,见识下当年那一小撮默默地在加利福尼亚学习的小伙伴:

SQL 已死,NoSQL 才是王道?|原力计划

革命不成功,壮士不歇息。尽管有这么多人兢兢业业的付出,但撼动关系型数据库的江山还远不够实力,也不到时候——直到这位哥们的出现。你看,任何历史性的转折都要依靠一位伟人来带动,说不定下一位就是你,努力吧少年!

SQL 已死,NoSQL 才是王道?|原力计划

这位 Tim 老兄在1989年,发明了万维网,一下子把数据的洪荒世界之门给打开了。数据以前所未有的体量和速度冲了进来,此时的关系型数据库也就慢慢有了吃力和老态的迹象。

历史再一次证明, 不被人胖揍,永远不知道自己几斤几两。

怪兽冲了进来,总要有奥特曼来对付吧。没错,这时候两位英雄人物出场了,一位是 Google,一位是 Amazon。Google 的 MapReduce(2004)和 BigTable(2006)打破了分布式计算和存储的瓶颈。A厂在整个云计算时代都有它的份儿,闪亮的光芒甚是耀眼。它的 Dynamo 数据库,采用了键值对存储,集合了各种眼花缭乱的云计算技术,号称能保障高可用服务。

磐石有了,兵工厂就不会远了。跟 SQL 的发展很像,之后很快各个公司就有了 Hadoop、Hive、Cassandra、MongoDB,也玩起了 MapR。又是一番你追我赶的厮杀,历史是何等的相像。

而这一波厮杀,不仅仅是在堂兄弟、表兄弟之间展开,还要去抢叔叔伯伯们的地盘。这不,蚂蚁金服的OceanBase前两天还动了一下Oracle大叔的地盘,抢掉了它2010年打下的TCP-C排行榜榜首的位置。

2.现实

年轻人始终有着一股子血气方刚,认为凭着自己年富力强,无所畏惧就要去动大人的奶酪。打仗光靠蛮力怎么可以,它还需要致胜的最本质基础,那就是群众的支持。

每个年轻人都有自己的魅力,有自己的武器都很好,很酷。乾坤圈、金箍棒看着都炫酷,但在如来的眼里,他代表的可是天地万物,说一句代替苍生治治你,分分钟就把你给秒了。那可是群众的力量代表。

上面的 ElasticSearch、MongoDB给我们的感觉都很棒,全文搜索极快,日志存储不费劲,但要去拿起来用,你得好好的去顺顺他们的脾气,要不就给你枣子吃。就如现在很多年轻人,做事情是要哄着做,哪像那些无产阶级革命前辈,都是抢着做。

如果说 OLTP 产品,我们摸索一下 redis、MongoDB、Kafka 也就算了,能忍就忍吧,毕竟一次投入,永久使用。但 OLAP 产品,Impala、Hive、Presto、Kylin 等都互不连通,还要整一套 ETL 来打通,这谁的脾气能好咯。我做一个报表,还要用 Spark 去每家每户报信,搞不好哪家那天脾气特别大,不待见,数据都取不出来。典型的就是 JOIN 信使,经常吃闭门羹。

当然,被群众(市场)教训过后,年轻人也开始反思。Cloudera 与 Hortonworks 就是典型代表,他俩选择联起手来一块干点事儿。推出了 SQL 级的方言,用来封装自己复杂的外表,原理就是 SQL ON Hadoop。

Hadoop 负责存储,而 SQL 负责计算,存储引擎与计算引擎分离开来,拉拢了不少 SQL 群众,开始铺设广泛的群众基础。

3.王者归来

第一次小弟们像大佬妥协,就是推出自己的 SQL-On-Hadoop 产品。虽然嘴上说着是 Not Only SQL, 那也不过是年轻人在坚持他们最后的傲娇而已。

接着,历史又再一次重演。只要一个现象被认可,一群现象就跟风而来。H-Store、Spanner、CockroachDB,最出众的还要数 Postgre,在历经关系数据库、NoSQL之后,尽在旁边捡漏,好东西都往自己身上加,像 Json、FullText Search、MPP、JIT 等特性。

当然,整个历史的转变,总要有人总结陈词。NoSQL的运动者是谁?还记得嘛?没错就是 Google 的三驾马车。那么终结它也只能由Google来官宣,搬起石头砸自己的脚,疼不您咧?

G 厂在2017年的 Spanner 论文中怎么说的?精简一下,“我们 Google 要从 Nosql 转到 SQL 阵营来,SQL 即将成为一切数据访问的基础,就酱”!

声明:本文为CSDN博主「dbLenis」的原创文章,版权归作者所有。

【End】

主题:《医疗影像小数据场景中的前沿技术与实践》

介绍:目前腾讯优图涉及眼底、宫颈、脑出血病因分析等多个落地项目,使用的数据格式也不太一样,眼底和宫颈是2D的RGB图像,脑出血是3D CT图像,相比起来,标注 3D 数据的难度比 2D 数据高不少。腾讯优图是如何针对3D CT / MRI 数据提出自监督研究的?研究成果是如何落地于工程中?如何应用在脑出血病因分类和脑肿瘤分割案例中?



Tags:NoSQL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、NoSQL的简介NoSQL比关系型数据库性能高数倍。NoSQL凭借 “易扩展、大数据、高可用、高性能、灵活性”特点强势引领全场。CP型分布式数据库,能够保证数据的强一致性和分区...【详细内容】
2021-02-25  Tags: NoSQL  点击:(448)  评论:(0)  加入收藏
物联网数据很复杂,需要多个用户访问,所以不要犯创建数据孤岛的错误。几乎在每个行业,都有一个由物联网数据驱动的数字化转型正在进行中。重要的是要认识到物联网不是关于事物...【详细内容】
2020-11-27  Tags: NoSQL  点击:(93)  评论:(0)  加入收藏
Couchbase是一个较新的、发展迅速的nosql数据库技术。2014年,viber宣布使用Couchbase替换Mongodb,以适应10亿级的用户量,目前,Couchbase已大量运用于生产环境,国内使用的公司主要...【详细内容】
2020-06-27  Tags: NoSQL  点击:(102)  评论:(0)  加入收藏
SQL / NoSQL,ACID与BASE一致性模型以及CAP定理的高级概述> Photo by fabio on Unsplash 内容概述· SQL与NoSQL数据库概述· ACID与BASE一致性模型· CAP...【详细内容】
2020-05-15  Tags: NoSQL  点击:(118)  评论:(0)  加入收藏
MongoDB、ElasitcSearch、Redis、HBase是现今最火的四款NoSQL数据库产品。在实际的开发中,这四种数据库有什么区别?我到底该选哪个?想必这是很多互联网开发都遇到过的难题。下...【详细内容】
2020-01-08  Tags: NoSQL  点击:(116)  评论:(0)  加入收藏
作者 | dbLenis责编 | 郭芮出品 | CSDN 博客当今数据库供应商风头正茂的,要数这三家公司:Amazon、Google、Microsoft。没错,他们都是云计算提供者。火热的三款看家产品分别是:Am...【详细内容】
2019-11-28  Tags: NoSQL  点击:(78)  评论:(0)  加入收藏
数据分类了解SQL和NoSQL之前,我们先了解下数据有几种分类:结构化数据、非结构化数据、半结构化数据。结构化数据就是由行和列组成的,可以用二维表来存储,非结构化数据比如文本、...【详细内容】
2019-08-30  Tags: NoSQL  点击:(197)  评论:(0)  加入收藏
推荐阅读:吊打面试官!MySQL灵魂100问,你能答出多少?前言文章篇幅较长,建议先收藏再阅读你是否在为系统的数据库来一波大流量就几乎打满CPU,日常CPU居高不下烦恼?你是否在各种NoSql...【详细内容】
2019-08-14  Tags: NoSQL  点击:(222)  评论:(0)  加入收藏
前言NoSQL,泛指非关系型的数据库。随着互联网不断的发展,传统的关系数据库在应付新互联网模式的网站,特别是超大规模和高并发的SNS类型的纯动态网站已经显得力不从心,暴露了很...【详细内容】
2019-06-11  Tags: NoSQL  点击:(389)  评论:(0)  加入收藏
▌简易百科推荐
1增1.1【插入单行】insert [into] <表名> (列名) values (列值)例:insert into Strdents (姓名,性别,出生日期) values (&#39;开心朋朋&#39;,&#39;男&#39;,&#39;1980/6/15&#3...【详细内容】
2021-12-27  快乐火车9d3    Tags:SQL   点击:(2)  评论:(0)  加入收藏
最近发现还有不少做开发的小伙伴,在写存储过程的时候,在参考已有的不同的写法时,往往很迷茫, 不知道各种写法孰优孰劣,该选用哪种写法,以及各种写法的优缺点,本文以一个简单的查询...【详细内容】
2021-12-23  linux上的码农    Tags:sql   点击:(9)  评论:(0)  加入收藏
《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的HasorDB 是一个全功能数据库访问工具,提供对象映射、丰...【详细内容】
2021-12-22  GitHub精选    Tags:HasorDB   点击:(5)  评论:(0)  加入收藏
作者丨Rafal Grzegorczyk译者丨陈骏策划丨孙淑娟【51CTO.com原创稿件】您是否还在手动对数据库执行各种脚本?您是否还在浪费时间去验证数据库脚本的正确性?您是否还需要将...【详细内容】
2021-12-22    51CTO  Tags:Liquibase   点击:(4)  评论:(0)  加入收藏
场景描述:由于生产环境的表比较复杂,字段很多。这里我们做下简化,只为说明今天要聊的问题。有两张表 tab1,tab2: tab1 数据如下: tab2 数据如下: 然后给你看下,我用来统计 name=&#3...【详细内容】
2021-12-20  Bald    Tags:SQL   点击:(7)  评论:(0)  加入收藏
前言知识无底,学海无涯,知识点虽然简单,但是比较多,所以将MySQL的基础写出来,方便自己以后查找,还有就是分享给大家。一、SQL简述1.SQL的概述Structure Query Language(结构化查...【详细内容】
2021-12-16  谣言止于独立思考    Tags:SQL基础   点击:(13)  评论:(0)  加入收藏
前言作为一名测试工程师,工作中在对测试结果进行数据比对的时候,或多或少要和数据库打交道的,要和数据库打交道,那么一些常用的 SQL 查询语法必须要掌握。最近有部分做测试小伙...【详细内容】
2021-12-14  柠檬班软件测试    Tags:SQL   点击:(15)  评论:(0)  加入收藏
话说C是面向内存的编程语言。数据要能存得进去,取得出来,且要考虑效率。不管是顺序存储还是链式存储,其寻址方式总是很重要。顺序存储是连续存储。同质结构的数组通过其索引表...【详细内容】
2021-12-08  小智雅汇    Tags:数据存储   点击:(18)  评论:(0)  加入收藏
概述DBConvert Studio 是一款强大的跨数据库迁移和同步软件,可在不同数据库格式之间转换数据库结构和数据。它将成熟、稳定、久经考验的 DBConvert 和 DBSync 核心与改进的现...【详细内容】
2021-11-17  雪竹聊运维    Tags:数据库   点击:(26)  评论:(0)  加入收藏
一、前言 大家好,我是小诚,《从0到1-全面深刻理解MySQL系列》已经来到第四章,这一章节的主要从一条SQL执行的开始,由浅入深的解析SQL语句由客户端到服务器的完整执行流程,最...【详细内容】
2021-11-09  woaker    Tags:SQL   点击:(35)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条