自计算诞生之日起,我们就一直在收集呈指数增长的数据量,不断地从我们的数据存储、处理和分析技术中提出更多要求。在过去的十年中,这导致软件开发人员抛弃了 SQL,认为它无法随着这些不断增长的数据量而扩展,从而导致 NoSQL 的兴起:MapReduce 和 Bigtable、Cassandra、MongoDB 等等。
然而今天 SQL 正在复苏。现在所有主要的云提供商都提供流行的托管关系数据库服务:例如,Amazon RDS、Google Cloud SQL、Azure Database for PostgreSQL(Azure 刚刚在今年推出)。用亚马逊自己的话说,其兼容 PostgreSQL 和 MySQL 的数据库 Aurora 数据库产品一直是“ AWS 历史上增长最快的服务”。基于 Hadoop 和 Spark 的 SQL 接口继续蓬勃发展。而就在上个月,Kafka 推出了 SQL 支持。您谦逊的作者本身就是完全包含 SQL的新时间序列数据库的开发人员。
在这篇文章中,我们将探讨为什么今天的钟摆会回到 SQL,以及这对数据工程和分析社区的未来意味着什么。
要了解 SQL 为何卷土重来,让我们先从最初设计它的原因开始。
我们的故事始于 1970 年代初期的 IBM 研究院,当时关系数据库诞生了。当时,查询语言依赖于复杂的数学逻辑和符号。两位新晋的博士 Donald Chamberlin 和 Raymond Boyce 对关系数据模型印象深刻,但他们认为查询语言将成为采用该模型的主要瓶颈。他们着手设计一种新的查询语言(用他们自己的话来说):“未经数学或计算机编程方面的正规培训的用户更易于使用。”