ydb-platform/ydb

GitHub: ydb-platform/ydb

YDB 是一款开源分布式 SQL 数据库,将高可用、水平扩展与 ACID 强一致性事务能力融为一体,适用于大规模在线交易和混合负载场景。

Stars: 4687 | Forks: 753


[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://github.com/ydb-platform/ydb/blob/main/LICENSE) [![Release](https://img.shields.io/github/v/release/ydb-platform/ydb.svg?style=flat-square)](https://github.com/ydb-platform/ydb/releases) [![Discord](https://img.shields.io/discord/1158573985894772827?logo=discord&logoColor=%23fff)](https://discord.gg/R5MvZTESWc) ## YDB [官网](https://ydb.tech) | [文档](https://ydb.tech/docs/en/) | [官方仓库](https://github.com/ydb-platform/ydb) | [博客](https://blog-redirect.ydb.tech) | [YouTube](https://www.youtube.com/c/YDBPlatform) | [Discord](https://discord.gg/R5MvZTESWc) | [Telegram](https://t.me/ydb_en) | [LinkedIn](https://www.linkedin.com/company/ydb-platform) | [X](https://x.com/YDBPlatform) YDB 是一个开源的分布式 SQL 数据库,它将高可用性和可扩展性与严格一致性及 ACID 事务结合在一起。 [![YDB 产品视频](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/7adf2ebd72180202.png)](https://youtu.be/bxZRUtMAlFI) ## YDB 的主要优势 YDB 是从零开始设计的,旨在满足对可扩展交互式 Web 服务日益增长的需求。对于此类 OLTP 类工作负载而言,可扩展性、严格一致性和高效的跨行事务是必不可少的。YDB 由具有深厚数据库和分布式系统背景的专家构建,他们拥有为全球最大的搜索引擎之一开发 NoSQL 数据库和 MapReduce 系统的经验。 YDB 的基本功能: - 同时支持行存和列存[表](https://ydb.tech/docs/en/concepts/datamodel/table),以应对事务性和分析性工作负载。此外,还提供[持久化队列](https://ydb.tech/docs/en/concepts/topic)用于数据流转。 - 容错配置,能够经受磁盘、节点、机架甚至数据中心故障的考验。 - 自动灾难恢复,对应用程序造成的延迟影响最小。 - 存储层和计算层独立的水平可扩展性。 - 跨多节点和多表的 ACID 事务,具备严格一致性。 - 丰富的 [SQL 方言](https://ydb.tech/docs/en/yql/reference/),用于数据操作和模式定义。 - 面向表操作的 [PostgreSQL 兼容模式](https://ydb.tech/docs/en/postgresql/intro)以及面向 Topic 的 [Kafka 兼容模式](https://ydb.tech/docs/en/reference/kafka-api/)。 - YDB 集群可以通过 [Ansible](https://ydb.tech/docs/en/devops/ansible/)、[Kubernetes](https://ydb.tech/docs/en/devops/kubernetes/) 或[手动方式](https://ydb.tech/docs/en/devops/manual/)进行部署。 ### 容错配置 YDB 可以部署在三个可用区(数据中心)中。即使某个可用区完全瘫痪,集群依然可以处理读写请求。有关可用区和区域的更多详情,请参阅[文档](https://ydb.tech/en/docs/concepts/databases#regions-az)。 ### 水平可扩展性 与传统关系型数据库不同,YDB 支持[横向扩展](https://en.wikipedia.org/wiki/Scalability#Horizontal_or_scale_out),使开发者能够通过简单地扩展集群的计算或存储资源来应对不断增长的负载。YDB 采用了存储计算分离的架构,允许您独立地扩展存储和计算资源。 当前的生产环境安装已拥有超过 10000 个节点,存储了 PB 级数据,并每秒处理数百万个分布式事务。 ### 自动灾难恢复 YDB 内置的自动恢复支持使其能够无缝地应对硬件故障。在发生不可预测的磁盘、节点、机架甚至数据中心故障后,YDB 依然完全支持读写操作,并自动恢复所需的数据冗余。 ### 多租户与 Serverless 数据库 YDB 支持多租户和 Serverless 设置。用户可以运行一个 YDB 集群,并创建多个共享同一存储池但拥有不同计算节点的数据库。或者,用户可以运行多个共享同一计算资源池的 Serverless 数据库,以实现资源的有效利用。 ## 支持的平台 ### 最低系统要求 YDB 可在内存至少为 8 GB 的 x86 64 位平台上运行。 ### 操作系统 在大多数生产环境中,YDB 运行在 Ubuntu Linux 下的 64 位 x86 机器上。 出于开发目的,我们定期测试以确保 YDB 可以在最新版本的 MacOS 和 Microsoft Windows 下编译和运行。 ## 入门指南 如果您想体验 YDB,请从[快速入门指南](https://ydb.tech/docs/en/quickstart)开始。它将帮您搭建一个适用于功能测试、应用开发及类似任务的单节点集群。 假设您想深入体验更严肃的场景,例如测试 YDB 的容错能力、运行性能基准测试,甚至运行生产或预发布工作负载。在这种情况下,您需要一个成熟的多节点 YDB 集群,可以通过适用于裸金属或虚拟机的 [Ansible](https://ydb.tech/docs/en/devops/ansible/initial-deployment) 或适用于容器的 [Kubernetes](https://ydb.tech/docs/en/devops/kubernetes/initial-deployment) 来部署。 ## 如何从源代码构建 关于如何构建 YDB 服务器和客户端二进制文件的说明在 [BUILD.md](BUILD.md) 中提供。此外,请参阅关于 [Ya Make 构建系统](https://ydb.tech/docs/en/contributor/build-ya)的文档。 ## 如何贡献 我们热忱欢迎新的贡献者![贡献者指南](CONTRIBUTING.md)提供了有关如何开始成为贡献者的更多详细信息。 还有单独的 [YDB 贡献者文档](https://ydb.tech/docs/en/contributor/)章节,主要包含更多技术内容。 ## 成功案例 请访问 YDB [官网](https://ydb.tech/)查看最新的成功案例和用户场景。
标签:ACID事务, DBMS, HTAP, HTTP工具, OLTP, Python工具, SQL, YDB, 分布式SQL数据库, 分布式存储, 列式存储, 可扩展性, 多线程, 大数据, 子域名突变, 容灾恢复, 开源数据库, 强一致性, 数据库管理系统, 消息队列, 混合事务分析处理, 目录扫描, 系统审计, 系统提示词, 行式存储