NewSQL----常用NewSQL数据库梳理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
NewSQL----常⽤NewSQL数据库梳理
很多企业都需要处理来⾃多个数据源的复杂数据,因此需要利⽤数据库管理系统来存储和管理数据。
现在,有很多不同类型的数据库系统,⽽找到⼀个正确的数据库不是⼀件容易的事。
这需要考虑业务需求,以便选择正确的数据库管理系统。
企业使⽤关系数据库管理系统(RDBMS)来存储和管理他们的数据。
然⽽,这些系统⽆法处理海量的复杂数据,⽆法满⾜当今数据库⽤户的需求。
因此,很多企业都在寻找能够在保持传统数据库系统重要特性的同时,也能提供可伸缩性、可⽤性和⾼性能的数据库系统。
数据库软件供应商也已经确定了这⼀需求,并开发了NewSQL数据库来弥补传统数据库系统的缺陷。
NewSQL数据库在不放弃传统数据库优势的前提下解决了问题。
NewSQL关系数据库管理系统为OLTP提供了与NoSQL系统相同的可伸缩性能,在保证传统数据库系统的ACID的同时,也能处理在线事务的读写⼯作负载。
NoSQL数据库使⽤的数据结构与关系数据库中使⽤的数据结构不同,这使得NoSQL数据库中的某些操作更快。
什么是 NewSQL 数据库
NewSQL数据库是现代SQL数据库,它解决了与传统联机事务处理(OLTP)RDBMS相关的⼀些主要问题。
它们在保持传统数据库管理系统优点的同时,⼒求实现NoSQL数据库的可伸缩性和⾼性能。
换句话说,NewSQL数据库是⼀种特殊的关系数据库系统,它结合了传统数据库OLTP 和NoSQL的⾼性能和可伸缩性。
它们保持了传统DBMS的ACID(原⼦性、⼀致性、隔离性和持久性)。
ACID事务特性确保了完整的业务流程、并发事务、系统故障或错误时的数据完整性,以及事务前后的⼀致性。
NewSQL数据库在内部设计⽅⾯有所不同,但它们都是运⾏在SQL上的rdbms。
它们使⽤SQL来接收新信息,同时执⾏许多事务,并修改数据库的内容。
NewSQL系统的主要包括新的技术架构、透明的数据分⽚中间件、SQL引擎和数据库即服务(DBaaS)。
分区/分⽚:⼏乎所有的NewSQL数据库管理系统都是通过将数据库划分为不同的⼦集(称为分区或分⽚)来扩展的。
数据库中的表被⽔平地分割成⼏个分⽚,这些分⽚的边界基于列值来划分,来⾃不同表的相关⽚段被连接以创建分区。
副本: 此功能允许数据库⽤户创建和维护数据库以及副本。
数据库的副本存储在与主站相连接的远程站点或距离很远的站点。
⽤户可以同时更新副本,也可以更新⼀个节点并将结果状态转移到其他副本
辅助索引(⼆级索引): 辅助索引允许数据库⽤户通过使⽤主键以外的其他值有效地访问数据库记录。
并发控制: 此功能可解决多⽤户系统中当多个⽤户同时访问或修改数据时可能出现的问题。
NewSQL系统使⽤此功能来确保同步事务,同时保持数据完整性。
故障恢复:NewSQL数据库有⼀种故障恢复的机制,使它们能够在系统崩溃时恢复数据到⼀致的状态。
其中⼀些好处包括:
数据库分区减少了系统的通信开销,从⽽可以轻松地访问数据。
即使出现系统故障或错误,ACID事务也可以确保数据的完整性。
NewSQL数据库可以处理复杂的数据。
NewSQL系统具有⾼度可伸缩性。
常⽤的NewSql
Vitess 是⼀个分布式 MySQL ⼯具集,它可以⾃动分⽚存储 MySQL 数据表,将单个 SQL 查询改写为分布式发送到多个 MySQL Server 上,⽀持⾏缓存(⽐ MySQL 本⾝缓存效率⾼)与复制容错等。
Vitess 4.0 中有许多改进,可以使新⽤户更容易使⽤,可以很容易的在k8s 上部署Vitess,从单⼀的 MySQL 或 MariaDB 迁移到Vitess 成为可能,⽽应⽤对此有所感知。
CockroachDB (蟑螂数据库)是⼀个可伸缩的、⽀持地理位置处理、⽀持事务处理的数据存储系统。
CockroachDB 提供两种不同的的事务特性,包括快照隔离(snapshot isolation,简称SI)和顺序的快照隔离(SSI)语义,后者是默认的隔离级别。
蟑螂是⼀个分布式的K/V数据仓库,⽀持ACID事务,多版本值存储是其⾸要特性。
主要的设计⽬标是全球⼀致性和可靠性,从蟑螂的命名上是就能看出这点。
蟑螂数据库能处理磁盘、物理机器、机架甚⾄数据中⼼失效情况下最⼩延迟的服务中断;整个失效过程⽆需⼈⼯⼲预。
蟑螂的节点是均衡的,其设计⽬标是同质部署(只有⼀个⼆进制包)且最⼩配置。
CockroachDB ⽆需重新配置,也⽆需进⾏⼤规模的架构⼤修 就可以⽔平扩展,只需在集群中添加⼀个新节点就可以了,CockroachDB就会处理底层的复杂性。
1. 只需向集群添加新节点即可进⾏扩展
2. ⾃动平衡和分配分段的范围,不是分⽚
3. 在所有节点上均匀地优化,以提升服务器利⽤率
TiDB (企业版收费)
TiDB 是⼀款定位于在线事务处理/在线分析处理( HTAP: Hybrid Transactional/Analytical Processing)的融合型数据库产品,实现了⼀键⽔平伸缩,强⼀致性的多副本数据安全,分布式事务,实时 OLAP 等重要特性。
同时兼容 MySQL 协议和⽣态,迁移便捷,运维成本极低。
但是从使⽤情况来看,它对硬件要求较⾼。
⽬前也分社区版和企业版。
MariaDB 2018年收购了ClustrixDB,它⽬前是⼀个类MYSQL的关系数据库, 可以很容易的从MySQL迁移 到ClustrixDB。
ClustrixDB 与MySQL客户机兼容,但与mazon Aurora不同,它是分布式的,可以扩展写操作,并且不会产⽣单独的IO和存储费⽤,它从底层就⽀持web、移动和物联⽹(IoT)等具有最极端的可扩展性要求的应⽤程序,并且是在不损害关键特性的情况下做到这⼀点,数据库需要为带有关键型任务应⽤程序提供对可靠数据访问服务:事务和SQL。
MemSQL最⼤的卖点就是性能,同时兼容兼容MySQL。
MemSQL,2012年12⽉14⽇发布,是世界上最快的关系数据库,能实现每秒150万次事务。
MemSQL是⼀个分布式的、⾼度可伸缩的SQL数据库,可以在任何地⽅运⾏。
我们使⽤熟悉的关系模型为事务性和分析性⼯作负载提供最⾼性能.MemSQL是⼀个可扩展的SQL数据库,它不断地吸收数据,为您的业务⼀线执⾏操作分析。
使⽤ACID事务每秒接收数百万个事件,同时以关系SQL、JSON、地理空间和全⽂搜索格式分析数⼗亿⾏数据。
NuoDB(商⽤需要授权)
NuoDB 是世界上⾸个也是唯⼀⼀个具有的、弹性可伸缩的SQL关系数据库,主要⽤于去集中化的计算资源。
我们完全从头开始设计这么⼀个全新的数据库,100% ACID 保证以及兼容 SQL 标准规范。
⽀持复杂数据库管理任务如分区、缓存集群和性能调优等等。
ALTIBASE 数据库完美结合了,并提出了⼀个新概念---Hybrid DBMS。
ALTIBASE 提供⾼性能、容错能⼒和事务管理的⽅便性,特别是在通信、⽹上银⾏、证券交易、实时应⽤和嵌⼊式系统领域。
VoltDB是⼀个内存中的开源OLTP ,能够保证事务的完整性(ACID)。
它是Postgres和联合创始⼈Mike Stonebraker领导开发的下⼀代开源。
它能在现有的廉价上实现每秒数百万次数据处理。
VoltDB⼤幅降低了服务器资源 开销,单节点每秒数据处理远远⾼于其它。
不同于的储存,VoltDB能使⽤SQL存取,⽀持的 ACID模型。
VoltDB代码采⽤GPLv3授权,⽀持订阅费⽤从15,000美元起步。
Citus⾯向⾼速简单的事务,⾼吞吐量批量加载以及⾼速亚秒级分析查询。
它还集成了cstore/hll等很多插件。
⼀个限制是在某些情况下它不⽀持所有SQL查询或复杂事务。
CitusDB采⽤PostgreSQL的插件形式(not a fork),即享受PostgreSQL的强⼤⽀持,⼜同时拥有分布式数据库能⼒。
Citus的企业版是要收费的。