1. 引子****
有人在某个专注SQL的公众号留言如下:
这个留言触碰到一个非常敏感的问题:搞关系型数据库还有前途吗?现在都2020年了,区块链正火热,AI人才已经“过剩”,大数据都成了稀松平常的萝卜白菜,你却还在搞SQL Server? 你还在搞SQL? 你就是那个被时代淘汰的人!
2. 原因
最近10年,数据管理领域的变化可谓精彩纷呈。什么Hadoop, Spark,MemcacheDB, Redis, Vertica, HANA, Cassandra, MongoDB, InfluxDB,TiDB等等,不一而足。各类高端峰会、论坛确实只见AI, 大数据,确实很少见传统关系型数据库的身影了。
初步分析下来原因有四:
- 其一
云计算的兴起跟开源数据库的大规模应用,大大降低了算力以及数据存储的成本。
以传统关系型数据的龙头老大Oracle为例,随着互联网的兴起,海量用户产生了海量数据,但当Oracle大规模部署的时候,不仅Oracle软件本身贵,与之配套的IBM小型机 EMC的存储开支也相当庞大。比如Oracle的数据集群从一个房间搬到另外一个房间,收费都要十几万。软硬件维护成本包括对管理员的要求也非常高。
另外Oracle本身也有性能的上限,其次是闭源的黑盒子。对于没碰到过的场景,无论再怎么努力,也是无法预测可能出现的问题的。”
中国的互联网公司大部分都草莽出身,对于性价比极为看重。当年的互联网老大美国的雅虎公司开始率先使用MySQL数据库,中国的互联网公司随之跟进。
最典型的例子是阿里巴巴。阿里巴巴曾经被称为Oracle的“明星客户“,”黄埔军校“。但随着注册用户数激增,用户产生的数据也越来越多,淘宝启用了全亚洲最大的Oracle RAC集群,阿里巴巴B2B中文站的数据量也因数据量大和业务要求,每年早上08:00—09:30之间CPU保持98%的使用率,服务器负载也超高,即使采用冷热隔离的方式也解决不了大容量数据且大并发的难题,更换存储设备不久也会再次出现这样的状况。
阿里巴巴*“攒出”一条去IOE的技术路线:“低成本、线性可控、去中心化(分布式):去IBM,PC Sever替代小型机;去Oracle,用MySQL替代;去EMC,用中低端存储”。
在之后的爆发式增长中,包括以2014,15,16年双十一为代表的业务高峰,阿里基于开源版本搞出来的MySQL分支很好地支撑了极其严苛的业务要求,最终很方便云化同时又开源的MySQL在国内的互联网公司逐步开始取代Oracle的江湖地位,成为诸多中国互联网企业的首选。
- 第二
就是通用硬件成本的降低。随着摩尔定律的作用随着时间的发展性价比大大的提高。甚至出现了HANA,, Vertica,InfluxDB等等很多内存或者分布式内存数据库。
那么现在云计算跟云存储到底有多便宜呢? 看看今天我刚从某网站截取的广告吧:
这种面向市场大规模销售的产品,因为采用可以采用廉价的PC Server,可以做到真正的白菜价,这在10年前根本无法想象。
- 第三
另外MySQL代码跟文档都是公开的,这样对数据库开发维护人员的要求相应的也就大大降低了。
- 最后
从SQL 发展到NoSQL,支持半结构化数据,非结构数据的数据库大放异彩,之前这类无法处理的非结构化数据难题得到了解决,非结构化数据处理成为标准配置,似乎占据了市场热点。
3. 现状
那么是不是传统的关系型数据库彻底成了昨日黄花呢?如果你这么想,那就大错特错了!让我们看看权威数据:
我们可以看到2013年到2019年,排名前三的基本上是Oracle, MySQL, Microsoft SQL Server,而且是常年大幅度领先。
由此可见非结构化数据虽然火热,但是关系型数据库仍然稳坐钓鱼台!
原因在哪里呢?数据库发展绚丽多彩,但最终关键还在其擅长的业务场景。不同类型的数据库适配不同的业务场景。在现实世界大量存在的结构化数据,关系型数据库处理起它们来相对成熟,而且各方面优势得天独厚。现在大火的大数据重点在于其有效解决了之前一直无法处理的半结构化、非结构化数据这个老大难问题。让非结构化数据库担当关系型数据库的重任,无异于让大卡车去跑小轿车拉力赛。
之前关系型数据库确实占据了绝对的主流。只是近几年随着3G、4G的发展,图片、音视频内容略有增加。后面随着5G、ARVR、物联网等等新技术的发展,存储又会变贵,区块链跟量子计算也会给世界带来新的变化……
4. 发展
- 由单机、集群向彻底分布式发展,目前Oracle等数据库已经实现
- OLTP跟OLAP的融合,这个特性很早就已经实现了
- 结构化非结构化的融合,目前Oracle, MS SQL Server等也已经实现
- 磁盘跟内存数据库的融合,目前Oracle, MS SQL Server等也已经实现
- 行、列、图、对象、文档、内容、时序、搜索引擎、导航类等等不同类型的数据库的融合,笔者初步研究发现已经小部分实现
- 初略分析来看,数据建模工具对以上特性的支持也在跟进中,但离完美支持还有很大距离
综上来看,今后纵向上关系型数据库发展相对成熟,目前其主要在往横向上发展;非关系型数据库主要在纵向上进一步做深做透。
5. 结论
不管世界怎么发展,我认为关系型数据库未来十年仍将是主流,再远的将来也会有它重要的地位。因为在可预见的将来,结构化数据仍是人类最重要的数字资产,关系型数据库也就会占据最重要的位置。
所以实质就是:不是关系型数据库不重要,而是没有太多新东西可以讲;非结构化数据还有很大发展空间,所以大家比较关注。
光看什么热闹学什么,什么火学什么,浮躁的心态会让人技术很难学得深入。相关从业者得搞清楚这个世界到底发生了什么,以后会发生什么。另外关键是得选准方向,坐得下来,钻得进去。
关注我,每周一篇文章学习数据相关的知识。