YugabyteDB 是一个兼容 PostgreSQL 的高性能、云原生、分布式 SQL 数据库。它结合了传统关系数据库的优点和NoSQL系统的可扩展性,使其适合既需要事务一致性又需要处理大量数据的应用程序。它最适合需要绝对数据正确性并至少需要以下其中一项的云原生 OLTP(即实时、关键业务)应用程序:可扩展性、高故障容忍度或全球分布式部署。
核心特点
开始使用
构建应用程序
当前路线图
最近的功能
建筑学
需要帮助吗?
贡献
执照
阅读更多
强大的RDBMS功能Yugabyte SQL(简称YSQL )复用了PostgreSQL查询层(类似于Amazon Aurora PostgreSQL),从而支持其大部分功能(数据类型、查询、表达式、运算符和函数、存储过程、触发器、扩展等) )。
分布式事务事务设计基于Google Spanner架构。通过使用Raft共识进行复制和使用混合逻辑时钟的集群范围内的分布式ACID事务来实现写入的强一致性。支持快照、可序列化和已提交读隔离级别。默认情况下,读取(查询)具有强一致性,但可以动态调整以从关注者和只读副本读取。
持续可用性YugabyteDB 通过本机故障转移和修复对常见中断具有极强的弹性。 YugabyteDB 可以配置为自动容忍磁盘、机架、节点、区域、区域和云故障。对于 YugabyteDB 集群部署在公有云上跨多个可用区的一个区域的典型部署,RPO 为 0(意味着故障时不会丢失数据),RTO 为 3 秒(意味着数据由故障节点提供服务) 3 秒后可用)。
水平可扩展性扩展 YugabyteDB 集群以实现更多 IOPS 或数据存储就像向集群添加节点一样简单。
地理分布式多云YugabyteDB 可以部署在公共云中以及本地 Kubernetes 内。它支持跨越三个或更多故障域的部署,例如多区域、多机架、多区域和多云部署。它还支持在两区域部署中使用单向主从和双向多主配置的 xCluster 异步复制。只读副本还支持以低延迟提供(陈旧)数据。
多 API 设计YugabyteDB 查询层的构建是可扩展的。目前,YugabyteDB 支持两种分布式 SQL API:Yugabyte SQL (YSQL),一种重用 PostgreSQL 查询层的完全关系型 API,以及 Yugabyte Cloud QL (YCQL),一种半关系型 SQL 式 API,支持文档/索引Apache Cassandra QL 根源。
100% 开源YugabyteDB 在 Apache 2.0 许可证下完全开源。开源版本具有强大的企业功能,例如分布式备份、静态数据加密、动态 TLS 加密、更改数据捕获、只读副本等。
YugabyteDB 的创建考虑到了几个关键设计目标,旨在解决现代云原生应用程序所面临的挑战,同时保持传统关系数据库的熟悉性和强大功能。在我们的设计目标中详细了解这些内容。
快速入门
尝试运行一个真实的演示应用程序:
面向微服务的电子商务应用
使用 Kafka 和 Spark Streaming 进行流式传输 IoT 应用程序
找不到您要找的东西?有问题吗?在我们的社区 Slack 或论坛上发布您的问题或评论。
YugabyteDB 支持多种语言和客户端驱动程序,包括 Java、Go、NodeJS、Python 等。有关完整列表(包括示例),请参阅驱动程序和 ORM。
以下是即将发布的版本中正在开发的一些关键功能的列表。
特征 | 细节 |
---|---|
PostgreSQL 15 兼容性 | 了解最新功能、新 PostgreSQL 扩展、性能和社区修复。 |
CDC 中的 PostgreSQL 发布/复制槽 API | PostgreSQL 拥有一个庞大的社区,需要一个与 PG 兼容的 API 来设置和使用数据库更改。 |
位图扫描 | 位图扫描支持使用索引扫描、远程过滤器和增强的成本模型。 |
基于成本的优化器(CBO) | 基于统计信息(例如表大小、行数)和数据分布的高效查询计划。 |
并行查询执行 | 通过拆分单个查询在不同的 CPU 核心上执行来提高查询性能。 |
pg向量扩展 | 支持向量数据类型,实现高维向量的高效存储和查询。 |
连接管理 | 服务器端连接管理,每个节点最多可支持 30K 连接 |
请参阅路线图跟踪器以获取当前路线图中所有项目的列表。
v2.23是当前的预览版本。这包括正在积极开发的功能,建议仅用于开发和测试。有关此版本中的功能和改进的完整列表,请参阅发行说明 - v2.23。以下是一些突出的功能。
快速创建数据库的独立副本以进行数据恢复、开发和测试。
使用 pg_cron 使用熟悉的 cron 语法来调度 YSQL 命令,包括间隔精确到秒的作业。
通过在数据库级别而不是表级别操作,简化了 YSQL 事务 xCluster 复制的管理。
向后扫描性能的改进现在允许此类查询开箱即用,速度提高 10 倍!
v2024.1是当前的稳定版本。稳定版本经过更长时间的严格测试,可供生产使用。有关此版本中的功能和改进的完整列表,请参阅发行说明 - v2024.1。以下是一些突出的功能。
使您能够利用 PostgreSQL 兼容性和性能对等方面的许多新改进,从而更轻松地将应用程序从 PostgreSQL 提升和转移到 YugabyteDB。启用此模式后,YugabyteDB 使用已提交读隔离模式、用于可预测 P99 延迟的等待冲突并发模式以及新的基于成本的优化器。
如果您对升级后的版本不满意,可以无缝回滚到升级前的版本。
一种连接执行策略,通过每批外部表元组向内部表发送一个请求,而不是每个单独的外部表元组发送一次请求,改进了嵌套循环连接。
解释分析与DIST选项一起使用时,还会显示从存储层读取的行,这可以帮助诊断查询性能。
查看我们的文档中的详细架构。
您可以在我们的 Community Slack、论坛、Stack Overflow 以及 Twitter @Yugabyte 上提出问题、寻找答案并帮助其他人。
使用 GitHub issues 报告问题或请求新功能。
要解决 YugabyteDB 和集群/节点级问题,请参阅故障排除文档。
作为一个高度关注用户社区的开源项目,我们欢迎以 GitHub Pull Request 的形式做出贡献。请参阅我们的贡献者指南来开始。功能的讨论和 RFC 发生在我们论坛的设计讨论部分。
此存储库中的源代码根据 Apache License 2.0 和 Polyform 免费试用许可证 1.0.0 获得不同的许可。每个许可证的副本都可以在许可证目录中找到。
构建生成两组二进制文件:
整个数据库及其所有功能(包括企业功能)均根据 Apache License 2.0 获得许可
工件中包含-managed
并帮助运行托管服务的二进制文件根据 Polyform 免费试用许可证 1.0.0 获得许可。
默认情况下,构建选项仅生成 Apache License 2.0 二进制文件。
要查看我们的更新,请访问分布式 SQL 博客。
有关深入的设计和架构详细信息,请参阅我们的设计规范。
技术讲座和视频。
了解 YugabyteDB 与其他数据库的比较。