YugaByte DB 分布式 开源 关系型数据库介绍

2022-05-12 00:00:00 数据库 事务 分布式 节点 权衡

YugaByte DB 分布式 开源 关系型数据库介绍

 

什么是YugaByte DB?

YugaByte DB是一个高性能的分布式SQL数据库,用于为全球互联网规模的应用程序提供支持。YugaByte DB使用高性能文档存储,自动分片,每分片分布式共识复制和多分片ACID事务(受Google Spanner启发)的独特组合构建,提供横向扩展RDBMS和低规模的Internet规模OLTP工作负载查询延迟,对故障的极端弹性和全局数据分布。作为云原生数据库,它可以轻松地跨公共云和私有云以及Kubernetes环境进行部署。

YugaByte DB是作为Apache 2.0开源项目开发和分发的。

 

是什么让YugaByte DB与众不同?

YugaByte DB是一个事务性数据库,它汇集了云本机微服务的三个必备需求,即SQL作为灵活的查询语言,低延迟读取性能和全局分布式写入可伸缩性。单片SQL数据库提供SQL和低延迟读取,但无法跨多个节点和/或区域扩展写入。分布式NoSQL数据库提供性能和写入可伸缩性,但放弃了SQL语义,如多键访问,ACID事务和强一致性。

YugaByte DB功能亮点如下所示。

1. SQL和ACID事务

  • SQL JOIN和分布式事务,允许以任意规模跨任意数量的分片进行多行访问。

  • 事务性文档存储由自我修复,强一致性复制支持。

2.高性能和大规模可扩展性

  • 具有多个读取一致性级别和只读副本的地理分布式应用程序的低延迟。

  • 线性可扩展的吞吐量,用于摄取和服务不断增长的数据集。

3.全球数据一致性

  • 全球数据分发,通过多区域和多云部署为用户提供一致的数据。

  • 自动分片和自动重新平衡,以确保所有节点均匀负载,即使是非常大的集群也是如此。

4. Cloud Native

  • 专为容器时代而设计,具有高度弹性扩展和基础架构可移植性,包括Kubernetes驱动的编排。

  • 自我修复数据库,可自动容忍本质上不可靠的现代云基础架构中常见的任何故障。

5.开源

  • 功能齐全的分布式数据库,可在Apache 2.0开源许可下使用。

6.内置企业功能

  • 从v1.3开始,只有开源分布式SQL数据库具有内置的企业功能,如分布式备份,数据加密和只读副本。开源中还包括诸如Change Data Capture和2 Data Center Deployments等即将推出的功能。

 

YugaByte DB支持哪些客户端API?

YugaByte DB支持两种分布式SQL。

1. YugaByte SQL(YSQL)

YSQL目前处于Beta阶段,是一个完全关系的SQL API,它与PostgreSQL中的SQL语言有线兼容。它适合需要水平写入可伸缩性和全局数据分布的RDBMS工作负载,同时还使用关系建模功能,如JOIN,分布式事务和参照完整性(如外键)。通过探索YSQL功能开始。

2. YugaByte Cloud QL(YCQL)

YCQL是一种基于SQL的灵活模式API,适合需要半关联API的互联网规模的OLTP应用程序,这些API针对写密集型应用程序以及超快速查询进行了高度优化。它支持分布式事务,强一致的二级索引和本机JSON列类型。YCQL源于Cassandra查询语言。通过探索YCQL功能开始。

注意

YugaByte数据库API今天是孤立的,彼此独立。这意味着其他API无法查询由一个API插入或管理的数据。此外,没有通用的方法来访问API(外部框架,如Presto可以帮助处理简单的情况)。

大的影响是应用程序开发人员必须在进行详细的数据库架构/查询设计和实现之前首先选择API。

 

YugaByte DB的常用文档存储如何工作?

DocDB,YugaByte DB在所有API中通用的分布式文档存储,使用Raft复制,分布式ACID事务和RocksDB存储引擎的自定义集成构建。具体来说,DocDB通过将RocksDB从键值存储(仅具有原始数据类型)转换为文档存储(具有复杂数据类型)来增强RocksDB。无论负责管理密钥的API如何,每个密钥都作为单独的文档存储在DocDB中。DocDB的分片,复制/容错和分布式ACID事务架构都基于2012年发布的Google Spanner设计。我们如何在RocksDB上构建高性能文档存储? 提供对DocDB的深入了解。

使用YugaByte DB有哪些权衡取舍?

权衡取决于用作比较基线的数据库类型。

单片SQL

示例:PostgreSQL,MySQL,Oracle,Amazon Aurora。

YugaByte DB的好处

  • 跨多个节点和/或地理区域线性扩展写入吞吐量。
  • 自动故障转移和本机修复。

权衡

  • 事务和JOIN现在可以跨越多个节点,从而增加延迟。

了解更多:Google Spanner架构上的分布式PostgreSQL - 查询层

 

传统的NewSQL

例子:Vitess,Citus

YugaByte DB的好处

  • 跨任意数量的节点的分布式事务。
  • 给定所有节点都没有单点故障。

权衡

  • 没有

了解更多:全球分布式SQL数据库的兴起 - 重新定义云本地时代的事务存储

 

事务性NoSQL

示例:MongoDB,Amazon DynamoDB,FoundationDB,Azure Cosmos DB。

YugaByte DB的好处

  • SQL作为查询的灵活性需要根据业务变化进行更改。
  • 跨任意数量的节点的分布式事务。
  • 考虑到完全避免读取时间的法定人数,低延迟,高度一致的读取。

权衡

  • 没有

了解更多:为什么NoSQL数据库成为交易?

 

终一致的NoSQL

示例:Apache Cassandra,Couchbase。

YugaByte DB的好处

  • SQL作为查询的灵活性需要根据业务变化进行更改。
  • 强大的一致性,零数据丢失写入。
  • 强大的一致性和时间线一致性读取,而不依赖于终的一致性相关惩罚,如读取修复和反熵。

权衡

  • 在选举期间,所有分片在节点故障或网络分区期间丢失的时间极短。

相关文章