跳到主要内容

Databend Cloud 架构

Alt text

元数据服务层

元数据服务是一个多租户服务,它将 Databend Cloud 中每个租户的元数据存储在一个高可用的 Raft 集群中。这些元数据包括:

  • 表结构:包括每个表的字段结构和存储位置信息,为查询计划提供优化信息,并为存储层写入提供事务原子性保证;
  • 集群管理:当每个租户的集群启动时,集群内的多个实例将被注册为元数据,并为实例提供健康检查,以确保集群的整体健康;
  • 安全管理:保存用户、角色和权限授予信息,以确保数据访问认证和授权过程的安全性和可靠性。

计算层

存储和计算的完全分离架构赋予了 Databend Cloud 独特的计算弹性。

Databend Cloud 中的每个租户可以拥有多个计算集群(Warehouse),每个集群拥有专属的计算资源,并且在不活跃超过 1 分钟时可以自动释放,以降低使用成本。

在计算集群中,查询通过高性能的 Databend 引擎执行。每个查询将经过多个不同的子模块:

  • 计划器:解析 SQL 语句后,它将根据不同的查询类型将不同的操作符(如 Projection、Filter、Limit 等)组合成一个查询计划。
  • 优化器:Databend 引擎提供了一个基于规则和基于成本的优化器框架,实现了谓词下推、连接重排序、扫描剪枝等一系列优化机制,大大加速了查询。
  • 处理器:Databend 实现了一个推拉结合的流水线执行引擎。它将查询的物理执行组成一系列流水线在处理器中,并可以根据查询任务的运行时信息动态调整流水线配置,结合向量化表达式计算框架,最大化 CPU 的计算能力。

此外,Databend Cloud 可以根据查询工作负载的变化动态增加或减少集群中的节点,使计算更快、更具成本效益。

存储层

Databend Cloud 的存储层基于 FuseEngine,该引擎专为廉价的对象存储设计和优化。FuseEngine 根据对象存储的特性高效地组织数据,允许高吞吐量的数据摄取和检索。

FuseEngine 以列式格式压缩数据并存储在对象存储中,显著减少了数据量和存储成本。

除了存储数据文件外,FuseEngine 还生成索引信息,包括 MinMax 索引、Bloomfilter 索引等。这些索引在查询执行期间减少了 IO 和 CPU 消耗,大大提高了查询性能。

开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册