NewSQL一词的提出
NewSQL一词是由451 Group的分析师Matthew Aslett在研究论文中提出的。它代指对老牌数据库厂商做出挑战的一类新型数据库系统。
发展趋势
NoSQL谢幕,NewSQL登场 [1]
NoSQL将改变数据的定义范围。它不再是原始的数据类型,如整数、浮点。数据可能是整个文件。NoSQL可能会吓到DBA,因为他们担心失去他们自己的领域。
NoSQL数据库是非关系的、水平可扩展、分布式并且是开源的。MongoDB的创始人Dwight Merriman表示NoSQL可作为一个Web应用服务器、内容管理器、结构化的事件日志、移动应用程序的服务器端和文件存储的后备存储。
分布式数据库公司VoltDB的首席技术官Michael Stonebraker表示NoSQL数据库可提供良好的扩展性和灵活性,但他们也有自己的不足。由于不使用SQL,NoSQL数据库系统不具备高度结构化查询等特性。NoSQL其他的问题还包括不能提供ACID(原子性、一致性、隔离性和持久性)的操作。另外不同的NoSQL数据库都有自己的查询语言,这使得很难规范应用程序接口。Stonebraker表示数据库系统的滞后通常可归结于多项因素。诸如以恢复日志为目的的数据库系统维持的缓冲区池,以及管理锁定和锁定的数据字段。在VoltDB的测试中发现以上这些行为消耗系统96%的资源。 [2]
现有NewSQL系统厂商举例
包括(顺序随机)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、带有 NDB的 MySQL 集群和带有HandlerSocket的MySQL。后者包括Tokutek和JustOne DB。相关的“NewSQL作为一种服务”类别包括亚马逊关系数据库服务,微软SQLAzure,Xeround和FathomDB。 [3]
、定义
NewSQL 是一类新型的关系型数据库管理系统。它融合了传统关系型数据库(如 MySQL、Oracle 等)的 ACID(原子性、一致性、隔离性、持久性)事务处理能力和 NoSQL 数据库(如 MongoDB、Cassandra 等)的可扩展性优势。
二、产生背景
传统关系型数据库的局限
随着互联网应用和大数据的发展,传统关系型数据库在处理大规模数据和高并发读写请求时遇到瓶颈。例如,在大型电商促销活动期间,海量的订单处理和用户查询可能会使传统关系型数据库的性能下降。因为它们的架构设计主要侧重于事务处理的一致性和完整性,在扩展性方面相对较弱。
NoSQL 数据库的不足
NoSQL 数据库虽然在扩展性和读写性能上有优势,能够很好地处理非结构化和半结构化数据,但它们缺乏对复杂事务的有效支持。对于一些需要严格事务控制的金融等领域,如银行转账等操作,NoSQL 数据库很难保证数据的一致性。
三、特点
高性能
NewSQL 数据库通过采用分布式架构和优化的存储引擎等技术,能够实现高性能的数据读写。例如,CockroachDB 采用分布式事务协议和高效的索引结构,在处理大量并发读写请求时,其性能要比传统关系型数据库有显著提升。
可扩展性
可以方便地进行水平扩展,即通过增加服务器节点来提高系统的处理能力。以 TiDB 为例,它可以自动地将数据分布在多个节点上,并且在添加新节点时,能够自动地重新平衡数据,从而支持海量数据的存储和处理。
支持 ACID 事务
继承了传统关系型数据库的事务处理优势,能够保证数据的一致性和完整性。在金融交易系统等对数据准确性要求极高的场景中,NewSQL 数据库可以确保每一笔交易的原子性,即要么全部成功,要么全部失败,不会出现数据不一致的情况。
四、应用场景
金融行业
银行的核心业务系统,如账户管理、转账汇款等。NewSQL 数据库可以在保证数据准确性的前提下,处理大量的交易请求。例如,在处理跨地区、跨国的银行转账业务时,能够确保转账金额的准确记录和账户余额的一致性。
电商行业
订单处理和库存管理。在电商促销活动中,会产生海量的订单,NewSQL 数据库可以高效地处理这些订单,同时实时更新库存信息。而且,在复杂的促销规则下,如满减、赠品等活动,能够保证数据的一致性。
物联网领域
对大量设备产生的数据进行存储和分析。例如,在一个城市的智能交通系统中,需要收集和处理来自无数个交通传感器的数据,NewSQL 数据库可以很好地应对这种大规模数据的存储和查询需求,并且在设备状态更新等事务处理方面提供可靠的支持。
NewSQL 是一类现代的关系型数据库管理系统,旨在结合传统关系型数据库(如 MySQL、PostgreSQL 等)的 ACID 特性(原子性 Atomicity、一致性 Consistency、隔离性 Isolation 和持久性 Durability)与 NoSQL 数据库的可扩展性和性能优势。简而言之,NewSQL 数据库尝试提供一种既能保证事务处理的一致性和可靠性又能支持大规模数据集和高并发访问的技术方案。
NewSQL 数据库通常具有以下几个特点:
水平可扩展性:能够通过添加更多的服务器来线性提高处理能力,而不需要对应用进行重大修改。
强一致性和高可用性:保持了ACID特性,确保在分布式环境下也能有良好的一致性保证。
高性能:即使面对大量并发请求时也能够保持较高的响应速度。
SQL兼容性:支持标准的SQL语言或其变种,使得开发者可以利用熟悉的查询语言来操作数据。
自动化管理:包括自动化的分片、复制以及故障恢复等机制,简化运维工作。
一些知名的 NewSQL 数据库系统包括 Google 的 Spanner、CockroachDB、TiDB 以及 Amazon Aurora 等。这些系统各有特色,在特定场景下提供了超越传统数据库解决方案的能力。例如,Google Spanner 强调全球分布式的强一致性;CockroachDB 则是基于开源项目构建的,专注于实现跨地域的数据复制;TiDB 结合了HBase与MySQL的优点,适用于需要处理海量在线事务处理(OLTP)的应用场合;Amazon Aurora 提供了一个完全托管的服务,它兼容MySQL和PostgreSQL,并且承诺比标准版本更高的性能和耐用性。
总之,NewSQL 技术的发展为解决大数据时代下的复杂存储需求提供了新的思路和技术手段,尤其是在云计算环境下,这类系统越来越受到企业和开发者的关注。