No-SQL正淘汰SQL?
No-SQL正淘汰SQL?
上周,朋友给我转发了某成功企业家的邮件,里面宣称“SQL已经过时了”。
该企业家声称,MongoDB和Redis 这样受欢迎的 No-SQL 数据库,会慢慢地将基于SQL的数据库淘汰。因此,身为数据科学家,学习SQL是“抱残守缺”
看到他的邮件我非常震惊,他是怎么得出这么离谱的结论的?但这也令我好奇......别人会不会也这样误解了呢?该企业家有大量拥趸,他本人也直言不讳:新的数据科学家收到建议别再学习SQL了吗?
可能其他人也认为SQL正在被淘汰,在此,我想公开向该企业家作出回应。
在从事数据科学的职业生涯里,学习SQL非常有必要。No-SQL无法撼动学习SQL的意义。
基本上,有两个理由可以保证SQL在未来几十年都不会过时。
理由1:No-SQL数据库不会取代Presto、Redshift、BigQuery等分析数据库
不论应用程序使用的是MySQL这样的SQL后端,还是像MongoDB那样的No-SQL后端,该后端中的数据最终都会被加载到专门的分析数据库中,比如Redshift、Snowflake、BigQuery或 Presto。
分析数据库平台的示例体系结构:SQL和NoSQL
公司为什么把数据转移到Redshift这样的专栏存储中?因为专栏存储能更快地运行分析查询,不论是NoSQL还是像MySQL这样的行存储数据库。事实上,我敢打赌,专栏存储数据库的普及速度与NoSQL数据库一样快。
因此,像NoSQL以及其他数据库还有匹配的应用程序,它们的技术通常与数据科学家无关,因为他们不使用数据库应用程序。当然也有一些例外,将在后文讨论。
理由2:NOSQL数据库的优势并非不支持SQL语言
事实证明,如果支持基于SQL的查询引擎是有意义的,那么No-SQL存储可以实现它。类似地,SQL数据库也可以支持NoSQL查询语言,但是它们选择不支持。
那么,为什么专栏存储数据库有意选择提供SQL接口呢?
他们做出这样的选择,是因为SQL语言在表达数据操作指令上非常强大。
以一个简单的查询为例,它是NoSQL数据库下MongoDB的计算集合中的文档数量。
注意:MongoDB中的文档类似于行,而集合则类似于表。
- db.sales.aggregate( [
- {
- $group: {
- _id: null,
- count: { $sum: 1 }
- }
- }
- ] )
将其与等效SQL进行比较。
- select count(1) from sales
显而易见,对于想要提取数据的人来说,SQL语言是更好的选择。NoSQL数据库支持不同的语言,因为在数据库接口的应用程序库方面,正确构造SQL比较困难。
前文提到过,应用程序数据库的技术与数据科学家无关,但是这一规则有一些例外。我的第一家公司实际上没有像Redshift那样的分析数据库,所以必须直接查询应用程序的数据库。更准确地说,是在查询应用程序数据库的读副本。
该公司的应用程序还使用了No-SQL数据库Redis,而且不止一次我需要直接从Redis提取数据,所以确实需要学习Redis的NoSQL API的一些组件。
因此,在主要应用程序专门使用NoSQL数据库的环境中,学习哪种SQL可能都无关紧要。但在非常罕见情况下,随着公司的成长,他们几乎肯定会投资建立一个支持SQL的分栏存储分析数据库。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
NoSQL 已死:我们不需要他了
作者:Rick Negrin是MemSQL的产品管理团队负责人,他在微软工作过12年,曾是SQL Server团队的成员。 是时候承认我们早就知道的一个事实了:NoSQL 是并不适合许多现代应用使用场景的工具,是我们该翻篇的时候了。 由于当时的数据库无力处理所需的规模,NoSQL 技术应运而生。这种新一代数据服务的兴起解决了十多年前它问世时互联网规模和数据迅速增加带来的许多问题。NoSQL 还为冷存储/偶尔批量访问PB级数据提供了一条经济高效的新途径。然而,因急于解决大数据和大量并发用户带来的难题,NoSQL 丢弃了数据库的一些核心功能,而这些功能使得数据库拥有高性能和易于使用的优点。 进行这番取舍也许是NoSQL为数据库领域做出的最大贡献。NoSQL掀起了一场变革,集最佳的大数据功能与成熟关系模型的结构和灵活性于一体,推出了一种易于扩展的关系数据库。 关系数据库不断发展,打造了全新一代的系统,可处理几乎所有的工作负载,满足现代应用所需要的可扩展性、可靠性和可用性等要求。传统的工作负载(比如事务应用和业务分析)转向比较新的工作负载(比如多租户服务和操作分析)。Google Spanne...
- 下一篇
轻松构建基于 Serverless 架构的小程序
前言 自 2017 年第一批小程序上线以来,越来越多的移动端应用以小程序的形式呈现。小程序拥有触手可及、用完即走的优点,这大大降低了用户的使用负担,使小程序得到了广泛的传播。在阿里巴巴,小程序也被广泛地应用在淘宝/支付宝/钉钉/高德等平台上。 为了支撑大量的小程序,服务端面临的挑战有: 大量的小程序是不活跃的,传统的至少一台服务器的方式会造成资源浪费; 在活动高峰期小程序的调用量激增,要求服务端能够快速进行弹性伸缩。 而小程序开发者往往是客户端/前端的开发者,更多的精力在开发业务代码与应用的快速上线上,而无心顾暇服务端的运维操作。 阿里云 函数计算 是一个全托管 Serverless 计算服务,让开发者无需管理服务器等基础设施,只需编写和上传代码,就能够构建可靠、弹性、安全的服务。 函数计算弹性、免运维、高效、安全的特性十分适合作为小程序的服务端。 解决方案 函数计算封装了一套小程序服务端模板,帮助小程序开发者快速搭建基于函数计算的小程序。 使用这个模板搭建小程序应用具有以下特点: 运维效率高: 无需管理服务器,部署函数即可上线 开发效率高: 基于封装好的数据接口,直接开发业务代码 零...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS关闭SELinux安全模块