前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >OLAP数据库计算层架构分析

OLAP数据库计算层架构分析

原创
作者头像
awakeljw
修改2022-09-22 10:16:41
1.9K0
修改2022-09-22 10:16:41
举报
文章被收录于专栏:数据库性能优化

目前主流的OLAP数据库计算层架构有Master-Slave和Master-Master两种形态,但大多数选择的是Master-Slave架构,Master-Slave有助于控制流和计算流的分离,更简单的部署方式(Master集成元数据)等优势,下面是关于各个数据库或数据仓库产品的调研结果。

Master-Slave

1. Snowflake

snowflake的架构设计

  1. snowflake共分为三层,Cloud Services,Virtual Warehouse,Data Storage。
  • Cloud Services层负责对外接入认证,优化解析,事务管理,元数据存储等工作。
  • Virtual Warehouse是纯计算层。Virtual Warehouse共享分布式Cache
  • Datastorage就是云原生存储。

可以看出来,snowflake实际上是Master-Slave架构,有Cloud Services中Optimize,Authentication and Access Control等组件提供对外连接,等服务,计算层中由Virtual Warehouse负责计算,计算节点不会影响到连接节点,并且更容易做到计算的弹性。数据存储在S3上,元数据由Cloud Services管理。

2. Apache doris

apache doris FE-BE架构

apache doris架构中分为FE和BE两大组件。

  • Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
  • Backend(BE),主要负责数据存储、查询计划的执行。

3. presto

presto的计算组件分为Presto Coordinator和presto Worker,Presto Coordinator负责连接,并通过Hive Connector来访问Hive MetaStore。Coordinators connect with workers and clients via REST.

Presto Coordinator:用于提交查询并管理跨 Presto Worker 的解析、计划和调度查询执行

Presto Worker:处理查询,添加更多的worker可以让您更快地处理查询

从以上的分析中可以看出,Master-Slave架构的优势在于

  1. Master节点不参与计算,负载压力较小,可以承担更大的query连接压力。单个计算节点故障对外部连接服务影响较小。
  2. 只有Master节点与metaserver交互,逻辑更简单。

4. GreenPlum

GreenPlum是share-nothing架构的分布式数据库,计算层架构分为Master Servers和Segment Servers,

Segment Servers是实际的计算节点,每个节点仅查询自己的数据,所得到的结果再经过主节点处理得到最终结果。通过增加节点数目达到系统线性扩展。

Master Servers负责负责相应客户端请求并将请求的SQL语句进行优化器解析生成分布式计划,将分布式计划调度分发到Segment Servers进行查询,并将查询结果返回客户端。

Master-Master

1.Impala

impala是标准的mpp架构,massively-parallel query execution engine,支持在上百台机器的Hadoop集群上执行快速查询。他对底层的存储系统解耦,不像数据库要求那么严格,不同的底层存储都可以联合查询。

上图是impala整体的架构图,可以简单的把impala集群看成三种角色服务。

impalad用于接收查询请求并分解成查询任务、组织并完成集群中的数据查询、汇总完成数据的整合关联。如果Impala用于调度查询请求的时候,一般会把它称为调度者(Coordinator)。在Impala中Impalad是对等的,也就是说每个进程内部的角色都一样,都可以作为调度者接收请求,这样即有助于容错,又可以做到负载均衡。一般每个数据节点都要安装一个imapald进程,这样impala可以查询本机的数据,实现数据本地性,减少网络IO

statestored进程用于维护特定消息的发布订阅服务,用于在集群中广播一些消息。这个服务是单点的。

最后是catalogd,它主要负责维护元数据的读取查询。当执行DDL操作时,会同步到catalog,然后通过statestore广播给其他的节点。

参考文档

  1. https://www.alluxio.io/learn/presto/architecture/
  2. https://zhuanlan.zhihu.com/p/87022094
  3. https://cloud.tencent.com/developer/article/1032986

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Master-Slave
    • 1. Snowflake
      • 2. Apache doris
        • 3. presto
          • 4. GreenPlum
          • Master-Master
            • 1.Impala
            相关产品与服务
            TDSQL MySQL 版
            TDSQL MySQL 版(TDSQL for MySQL)是腾讯打造的一款分布式数据库产品,具备强一致高可用、全球部署架构、分布式水平扩展、高性能、企业级安全等特性,同时提供智能 DBA、自动化运营、监控告警等配套设施,为客户提供完整的分布式数据库解决方案。
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档