Yandex 开放了支持 SQL 的分布式 DBMS YDB 的代码

Yandex 发布了分布式 DBMS YDB 的源代码,它实现了对 SQL 方言和 ACID 事务的支持。 DBMS 是从头开始创建的,最初开发时着眼于确保容错、故障自动恢复和可扩展性。 值得注意的是,Yandex 已经推出了可用的 YDB 集群,包括超过 10 万个节点,存储数百 PB 的数据,每秒服务数百万个分布式事务。 YDB 用于 Market、Cloud、Smart Home、Alice、Metrica 和 Auto.ru 等 Yandex 项目。 该代码是用 C/C++ 编写的,并根据 Apache 2.0 许可证分发。 为了熟悉和快速启动,您可以使用现成的 Docker 容器。

项目特点:

  • 使用带有表的关系数据模型。 对于查询和定义数据模式,使用 YQL 语言(YDB 查询语言),这是一种适用于大型分布式数据库的 SQL 方言。 创建存储模式时,支持树状表分组,让人想起文件系统中的目录。 提供了一个 API 用于处理 JSON 格式的数据。
    Yandex 开放了支持 SQL 的分布式 DBMS YDB 的代码
  • 支持使用扫描查询进行数据访问,该扫描查询旨在对数据库执行分析即席查询,以只读模式执行并返回 grpc 流。
  • 使用命令行界面、内置 Web 界面或 YDB SDK 与 DBMS 进行交互并发送请求,YDB SDK 提供 C++、C# (.NET)、Go、Java、Node.js、PHP 和 Python 库。
  • 能够创建在单个磁盘、节点、机架甚至数据中心发生故障时继续运行的容错配置。 YDB支持在三个可用区中部署和同步复制,在其中一个可用区出现故障时仍能保持集群的功能。
  • 以最短的应用程序延迟自动从故障中恢复,并自动维护指定的数据冗余。
  • 基于主键自动创建索引并能够定义二级索引,提高任意列的访问效率。
  • 水平可扩展性。 随着存储数据的负载和大小的增长,只需​​连接新节点即可扩展集群。 计算层和存储层是分离的,允许您分别扩展计算能力和存储大小。 DBMS 本身会监控数据和负载的均匀分布,同时考虑可用的硬件资源。 可以部署覆盖世界不同地区的多个数据中心的地理分布式配置。
  • 处理跨节点、跨表的查询时,支持强一致性模型和ACID事务。 为了提高性能,您可以有选择地禁用一致性检查。
  • 自动数据复制、大小或负载增加时自动分区(分区、分片)以及节点之间的自动负载和数据平衡。
  • 使用本机 PDisk 组件和 VDisk 层将数据直接存储在块设备上。 DSProxy 运行在 VDisk 之上,VDisk 会分析磁盘的可用性和性能特征,以便在检测到问题时予以消除。
  • 灵活的架构,允许您在 YDB 之上创建各种服务,包括虚拟块设备和持久队列。 适用于不同类型的工作负载、OLTP 和 OLAP(分析查询)。
  • 支持多租户和无服务器配置。 客户端身份验证的可能性。 用户可以在公共共享基础设施中创建虚拟集群和数据库,同时考虑请求数量和数据大小级别的资源消耗,或者通过租用/保留某些计算资源和存储空间。
  • 能够配置记录的生命周期以自动删除过时的数据。

来源: opennet.ru

添加评论