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事务
3.全球数据一致性
4. Cloud Native
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作为查询的灵活性需要根据业务变化进行更改。
- 强大的一致性,零数据丢失写入。
- 强大的一致性和时间线一致性读取,而不依赖于终的一致性相关惩罚,如读取修复和反熵。
权衡
- 在选举期间,所有分片在节点故障或网络分区期间丢失的时间极短。