大数据才是重点,Oracle、SQL Server成昨日黄花?

引子

有人在某个专注SQL的公众号留言如下:

这个留言触碰到一个非常敏感的问题:搞关系型数据库还有前途吗?现在都2020年了,区块链正火热,AI人才已经“过剩”,大数据都成了稀松平常的萝卜白菜,你却还在搞SQL Server? 你还在搞SQL?

原因

最近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等等很多内存或者分布式内存数据库。

那么现在云计算跟云存储到底有多便宜呢? 看看今天刚从某网站截取的广告吧:

大数据才是重点,Oracle、SQL Server成昨日黄花?
某网站的云主机广告

这种面向市场大规模销售的产品,因为可以采用廉价的PC Server,可以做到真正的白菜价,这在10年前是根本无法想象的。

第三
另外MySQL代码跟文档都是公开的,这样对数据库开发维护人员的要求相应的也就大大降低了。

最后
从SQL 发展到NoSQL,支持半结构化数据,非结构数据的数据库大放异彩,之前这类无法处理的非结构化数据难题得到了解决,非结构化数据处理成为标准配置,似乎占据了市场热点。而NewSQL尚在发展中。

发展

数据库的发展方向大致包括以下几个方面:

  • 由单机、集群向彻底分布式发展,目前Oracle等数据库已经实现
  • OLTP跟OLAP的融合,这个特性很早就已经实现了
  • 结构化非结构化的融合,目前Oracle, MS SQL Server等也已经实现
  • 磁盘跟内存数据库的融合,目前Oracle, MS SQL Server等也已经实现
  • 行、列、图、对象、文档、内容、时序、搜索引擎、导航类等等不同类型的数据库的融合,笔者初步研究发现已经小部分实现
  • 初略分析来看,数据建模工具对以上特性的支持也在跟进中,但离完美支持还有很大距离

综上来看,今后纵向上数据库个人认为对图片、音视频的存储会继续成为热点,横向上也会进一步融合发展,比如音视频存储跟结构化数据的融合等等。

结论
那么是不是传统的关系型数据库彻底成了昨日黄花呢?如果你这么想,那就大错特错了!让我们看看权威的数据排名:

近年数据流行度趋势

2019年12月份数据库流行度排名

由此可见非结构化数据虽然火热,但是关系型数据库仍然稳坐钓鱼台!

原因在哪里呢?数据库发展绚丽多彩,但最终关键还在其擅长的业务场景。不同类型的数据库适配不同的业务场景。在现实世界大量存在的结构化数据,关系型数据库处理起它们来相对成熟,经过几十年的发展和各种严苛的考验,各方面优势得天独厚。现在大火的大数据重点在于其有效解决了之前一直无法处理的半结构化、非结构化数据这个老大难问题。让非结构化数据库担当关系型数据库的重任,无异于让挖掘机去跟大货车比赛拉货。

之前关系型数据库确实占据了绝对的主流。只是近几年随着3G、4G的发展,图片、音视频内容略有增加。后面随着5G、AR\VR、物联网等等新技术的发展,存储又会变贵,区块链跟量子计算也会给世界带来新的变化……但不管怎么发展,我认为关系型数据库未来十年仍将是主流,再远的将来也会有它重要的地位。因为在可预见的将来,结构化数据仍是人类最重要的数字资产。

关注我,每周原创数据相关干货。

原文地址:https://blog.51cto.com/14658150/2464104

时间: 2024-11-07 04:08:17

大数据才是重点,Oracle、SQL Server成昨日黄花?的相关文章

大数据才是未来,Oracle、SQL Server成昨日黄花?

1. 引子**** 有人在某个专注SQL的公众号留言如下: 这个留言触碰到一个非常敏感的问题:搞关系型数据库还有前途吗?现在都2020年了,区块链正火热,AI人才已经"过剩",大数据都成了稀松平常的萝卜白菜,你却还在搞SQL Server? 你还在搞SQL? 你就是那个被时代淘汰的人! 2. 原因 最近10年,数据管理领域的变化可谓精彩纷呈.什么Hadoop, Spark,MemcacheDB, Redis, Vertica, HANA, Cassandra, MongoDB, Inf

触发器实现对插入数据的字段更改 Oracle+SQL Server

最近有个使用触发器实现对插入数据的某个列做更改的需求,因此整理了Oracle和SQL Server对于此类需求的触发器写法,本文仅提到了Insert触发器. 首先我们创建一张表: --创建Test表 Create table test(id int primary key,name varchar(20),sex varchar(1),status int) 我们的目的是实现新插入的数据满足sex字段为null时就把status设为1的需求,可根据实际需要更改条件. 因此SQL Server的写

介绍几种大型的Oracle/SQL Server数据库免费版

介绍几种大型的Oracle/SQL Server数据库免费版 我们知道,Oracle和SQL Server等大型数据库也都存在一些免费的版本,这些免费的版本已经能够满足许多中小项目的需求.对于在校大学生来说,从学习的目标上来讲,安装免费版的大型数据库也就足够用了,而且还不会花费个人计算机过多的资源,可谓一举两得.本文我们介绍了几种免费的大型数据库,接下来我们就开始介绍. 一.Oracle Database 10g Express Edition 简称Oracle 10g迅捷版(XE版),是一款基

传统咨询业必死,拥抱大数据才是未来

移动互联网时代,产品服务都在快速迭代,对颠覆式创新有着极高的要求.更重要的是,咨询业的竞争优势也在逐渐消失,很难再满足快速发展的企业.而基于大数据的解决方案,不仅能够快速找到"发力点",还蕴藏着无限的商机. "新.平.快"三招虐死传统咨询业 移动互联网时代炮制了"新.平.快"三招,对传统咨询业进行花式虐打. XIN 新 在互联网的冲击下 传统咨询业同样自身难保 移动互联时代,大数据.物联网.云计算等技术应用的日新月异,对传统咨询业服务方式也提出了

mysql,oracle,sql server中的默认事务隔离级别查看,更改

未提交读(隔离事务的最低级别,只能保证不读取物理上损坏的数据) 已提交读(数据库引擎的默认级别) 可重复读 可序列化(隔离事务的最高级别,事务之间完全隔离) 可串行化比较严谨,级别高; MySQL mysql默认的事务处理级别是'REPEATABLE-READ',也就是可重复读 1.查看当前会话隔离级别 select @@tx_isolation; 2.查看系统当前隔离级别 select @@global.tx_isolation; 3.设置当前会话隔离级别 set session transa

使用sql查询mysql/oracle/sql server/gp数据库中指定表的字段信息(字段名/字段类型/字段长度/是否是主键/是否为空)

1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip * @param port * @param databaseName * @return*/ public static String getTestDbUrl(int dbType, String ip, String port, String databaseName){ String ur

教你怎么从一台sql server服务器拷贝数据到另外一台sql server服务器

平台说明:两台sql server2005服务器,上面装了两个相同的数据库 最近由于项目需要,需要将其中一台服务器上的数据库的数据拷贝到另外一台服务器上的数据库上,经过了很多google后终于完成了,在此做个详细的记录,希望能够帮到大家及自己. 一.第一步:sql添加服务器 首先,我们需要用sql 脚本连接上另外一个服务器, use master go /*添加服务器*/ EXEC sp_addlinkedserver @server = 'hang', /*此名字可以随便取*/ @srvpro

mysql数据库数据能不能导入到sql server中

当然可以了. 一.为 MySQL安装ODBC驱动 下载MySQL ODBC Connector,下载:http://dev.mysql.com/downloads/connector 从控制面板-管理工具,打开你的 数据源(ODBC),选 系统DNS ,点添加.   在 创建新数据源对话框中,选择MySQL ODBC 5.1 Driver ,点完成. 完成后会出现MySQL 链接对话框,添加你的 MySQL 数据库账号信息,并确认"root"账号是否有全部的权限,如果你安装MySQL

大数据量分页问题优化sql代码

以下分享一点我的经验 一般刚开始学SQL语句的时候,会这样写 代码如下: SELECT * FROM table ORDER BY id LIMIT 1000, 10; 但在数据达到百万级的时候,这样写会慢死 代码如下: SELECT * FROM table ORDER BY id LIMIT 1000000, 10; 也许耗费几十秒 网上很多优化的方法是这样的 代码如下: SELECT * FROM table WHERE id >= (SELECT id FROM table LIMIT