1.6 NewSQL数据库
NoSQL数据库系统不具备高度结构化查询等特性,也不能提供ACID的操作。此外,由于不同的NoSQL数据库都有各自的查询语言,这使它很难规范应用程序接口。为了解决NoSQL存在的这些问题,NewSQL数据库逐渐被提出来,这个概念是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统关系数据库的ACID和SQL等特性。
2011年,451研究所的Matthew Aslett在其论文中首次提出了NewSQL概念。从2011年后,一些商业公司和研究项目人员开始使用NewSQL来描述他们的系统。2012年谷歌在OSDI(USENIX Symposium on Operating Systems Design and Implementation)上发表了Spanner系统的论文,2013年在SIGMOD(Special Interest Group on Management of Data)发表了F1系统的论文,这两篇论文让业界第一次看到了关系模型和NoSQL的扩展性在超庞大集群规模上融合的可能性。Spanner/F1论文引起了广泛关注,Cockroach Labs开发了CockroachDB分布式数据库,部署简单,具有很好的易用性;PingCAP开发了TiDB,结合了关系数据库和NoSQL数据库的特性,具备强一致性和高可用性。
NewSQL数据库正在持续发展,在NewSQL概念下提出的多种数据库设计为开发人员提供了针对不同用例的多种选项,极大地推动了创新和专业数据库设计的发展。但是,没有任何NewSQL系统像传统的SQL系统那样具有通用性,目前大多数NewSQL数据库都是专有软件或仅适用于特定场景,这极大地限制了新技术的普及和采用,而且NewSQL对传统SQL系统的丰富工具仅仅提供部分访问,因此亟待开发具有通用能力的NewSQL系统。