作者 | 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:

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

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

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

历史

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

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

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

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

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

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

战争一直打到现在。

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

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

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

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

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

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

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

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

现实

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

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

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

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

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

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

王者归来

第一次小弟们像大佬妥协,就是推出自己的 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】

给IT届的小白们准备的一套python爬虫路线+学习教程

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

今晚8点直播,扫码报名!

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

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

热 文 推 荐 

☞ofo 退押金出新招;快手回应“弃拼多多联手阿里”;Julia 1.3 发布 | 极客头条

☞信号问题可根除,苹果新款 iPhone 将搭载高通基带?

☞快速用 Haskell 构建超级简单的 Web 技术栈!

☞拒绝成为比尔·盖茨的“万维网之父”,又要干大事!

☞倪光南:中国 5G 有望成为世界第一

☞微信几亿人在线的点赞、取消点赞系统,用Redis如何实现?

☞量子算命,在线掷筊:一个IBM量子云计算机的应用实践,代码都有了

☞从黑客文化看区块链开源社区的自我组织与成功之道

 点击阅读原文,参加中国开发者现状调查!

你点的每个“在看”,我都认真当成了喜欢

SQL 已死,NoSQL 才是王道?|原力计划相关推荐

  1. 原力计划S5上榜博主名单公布(第四期已更新)

    原力计划S5第一周期上榜博主名单已出炉.还请原力计划博主到此查看获奖名单,往后每期上榜名单都将在此文章更新. 第一期上榜名单(3月14日-3月26日) 顺序并非排名,活动无具体排名 用户昵称 博客文章 ...

  2. 盘一盘 Spring 核心技术之依赖注入 | 原力计划

    作者 | 麦洛_ 责编 | 夕颜 头图  | CSDN付费下载自视觉中国 出品 | CSDN博客 前言 提起Spring,大家肯定不陌生,它是每一个Java开发者绕不过去的坎.Spring 框架为基于 ...

  3. SQL 已死,但 SQL 将永存!

    在 SQL 被引入的 45 年中,它经历了许多数据库的诞生和消亡,也经历了许多数据处理方式的诞生和消亡. 作者 | Jennifer Ouellette 译者 | 弯月 责编 | 屠敏 出品 | CS ...

  4. 【捡米通】网络赚钱,钱死磕才是王道!

    这两天忙于做项目上的事情,疏于写文章了,人到中年,时间和精力越来越分散,因为生活中需要应付的琐事太多,不像年轻的时候,有的是时间和精力,可以随便折腾. 每个人的时间和精力都是有限的,以前经验少,意识不 ...

  5. sql三张表的搜索要满足5种搜索条件的模糊搜索_面试三轮我倒在了一道 SQL 题上……| 原力计划...

    作者 | 牧小农的夏天 责编 | 王晓曼 出品 | CSDN博客 前言 最近小农在找工作,因为今年疫情的特殊原因,导致工作不是特别好找,所以一旦有面试电话,如果可以,都会去试一试,刚好接到一个面试邀请 ...

  6. 原力计划第一周榜单揭晓!

    10月24日,CSDN发布了"原力计划"活动,CSDN博主可报名参与"CSDN原力计划英雄榜",每周会公布"CSDN'原力计划'英雄榜"结果 ...

  7. 我和面试官之间关于操作系统的一场对弈 | 原力计划

    作者 | Guide哥 责编 | 伍杏玲 出品 | CSDN博客 大家好,我是 Guide 哥!很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到.所以,我带 ...

  8. 全面分析阿里数据中台,小白也能看懂 | CSDN原力计划

    扫码参与CSDN"原力计划" 作者 | yuanziok 来源 | CSDN原力计划获奖作品 数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出&qu ...

  9. 超详解读:垃圾回收机制 | 原力计划

    作者 | zycxnanwang 责编 | 王晓曼 出品 | CSDN博客 判断对象是否存活的方法 1.引用计数法 每个对象上都有一个引用计数,对象每被引用一次,引用计数器就+1,对象引用被释放,引用 ...

  10. 教你一招用 Python Turtle 库画出“精美碎花小清新风格树”,速取代码! | 原力计划...

    作者 | 1_bit 责编 | 王晓曼 出品 | CSDN博客 开始 使用Turtle画树,看了一下网上的代码,基本上核心的方法是使用递归:其次通过递归传参更笔的粗细从而改变绘制时的线段,更改树的躯干 ...

最新文章

  1. Github中文项目排行榜,你永远想不到开发者都用它干了什么
  2. Jdbc创建表 利用循环添加数据 ,更新数据
  3. PWM信号作用示例——调节台灯亮度
  4. 我的linux学习之旅:(4)搭建mysql数据库
  5. 【原创】不用封装jar包 直接引入工程使用的方法(类似android的 is Library功能)...
  6. Python源码深度解析—Python提供的C API
  7. 犀牛书学习笔记(3):函数
  8. 前端js如何生成一个对象,并转化为json字符串
  9. 拼多多商家券和平台优惠券的相互叠加
  10. C语言中终端一直有光标闪烁,word里光标一直闪
  11. Windows Server 2008 R2 C盘空间不足解决方法
  12. Delphi Math单元函数
  13. 店宝宝:巨头PK精品电商
  14. matlab 不显示图中坐标轴(不显示x、y、z轴)
  15. ObjectARX中反应器的使用
  16. uvc camera MTK平台调试总结
  17. Vuex-状态管理(24)
  18. NetWorkx Python API
  19. 【SAP Hana】X档案:SAP HANA 数据库基础知识
  20. 用FLASH制作RPG

热门文章

  1. Oracle命令--表空间管理
  2. Usaco_1_3_Calf Flac
  3. 虚拟机中CentOS 7 网络服务启动失败
  4. XX银行 机器学习平台使用情况访谈总结
  5. [git] gnutls_handshake() failed
  6. 论文阅读:Semantic Human Matting
  7. 目标检测算法 2020_One-stage目标检测算法综述
  8. cve-2020-0796_微软SMBv3 Client/Server远程代码执行漏洞简单分析(CVE20200796)
  9. rust笔记4 slice类型
  10. epoll和poll的C++11多线程练习