YugaByte DB是一个高性能的分布式SQL数据库,用于为全球互联网规模的应用程序提供支持。YugaByte DB使用高性能文档存储,自动分片,每分片分布式共识复制和多分片ACID事务(受Google Spanner启发)的独特组合构建,提供横向扩展RDBMS和低规模的Internet规模OLTP工作负载查询延迟,对故障的极端弹性和全局数据分布。作为云原生数据库,它可以轻松地跨公共云和私有云以及Kubernetes环境进行部署。
YugaByte DB是作为Apache 2.0开源项目开发和分发的。
YugaByte DB是一个事务性数据库,它汇集了云本机微服务的三个必备需求,即SQL作为灵活的查询语言,低延迟读取性能和全局分布式写入可伸缩性。单片SQL数据库提供SQL和低延迟读取,但无法跨多个节点和/或区域扩展写入。分布式NoSQL数据库提供性能和写入可伸缩性,但放弃了SQL语义,如多键访问,ACID事务和强一致性。
YugaByte DB功能亮点如下所示。
全球数据分发,通过多区域和多云部署为用户提供一致的数据。
自动分片和自动重新平衡,以确保所有节点均匀负载,即使是非常大的集群也是如此。
专为容器时代而设计,具有高度弹性扩展和基础架构可移植性,包括Kubernetes驱动的编排。
自我修复数据库,可自动容忍本质上不可靠的现代云基础架构中常见的任何故障。
YugaByte DB支持两种分布式SQL。
YSQL目前处于Beta阶段,是一个完全关系的SQL API,它与PostgreSQL中的SQL语言有线兼容。它最适合需要水平写入可伸缩性和全局数据分布的RDBMS工作负载,同时还使用关系建模功能,如JOIN,分布式事务和参照完整性(如外键)。通过探索YSQL功能开始。
YCQL是一种基于SQL的灵活模式API,最适合需要半关联API的互联网规模的OLTP应用程序,这些API针对写密集型应用程序以及超快速查询进行了高度优化。它支持分布式事务,强一致的二级索引和本机JSON列类型。YCQL源于Cassandra查询语言。通过探索YCQL功能开始。
注意
YugaByte数据库API今天是孤立的,彼此独立。这意味着其他API无法查询由一个API插入或管理的数据。此外,没有通用的方法来访问API(外部框架,如Presto可以帮助处理简单的情况)。
最大的影响是应用程序开发人员必须在进行详细的数据库架构/查询设计和实现之前首先选择API。
DocDB,YugaByte DB在所有API中通用的分布式文档存储,使用Raft复制,分布式ACID事务和RocksDB存储引擎的自定义集成构建。具体来说,DocDB通过将RocksDB从键值存储(仅具有原始数据类型)转换为文档存储(具有复杂数据类型)来增强RocksDB。无论负责管理密钥的API如何,每个密钥都作为单独的文档存储在DocDB中。DocDB的分片,复制/容错和分布式ACID事务架构都基于2012年首次发布的Google Spanner设计。我们如何在RocksDB上构建高性能文档存储? 提供对DocDB的深入了解。
权衡取决于用作比较基线的数据库类型。
示例:PostgreSQL,MySQL,Oracle,Amazon Aurora。
YugaByte DB的好处
权衡
了解更多:Google Spanner架构上的分布式PostgreSQL - 查询层
例子:Vitess,Citus
YugaByte DB的好处
权衡
了解更多:全球分布式SQL数据库的兴起 - 重新定义云本地时代的事务存储
示例:MongoDB,Amazon DynamoDB,FoundationDB,Azure Cosmos DB。
YugaByte DB的好处
权衡
了解更多:为什么NoSQL数据库成为交易?
示例:Apache Cassandra,Couchbase。
YugaByte DB的好处
权衡