OLAP数据库选型对比:
AnalyticDB(阿里)、Hologres(阿里)、Doris、StarRocks、ClickHouse、Hbase
AnalyticDB MySQL 技术架构
Adb是融合数据库、大数据技术于一体的云原生企业级数据仓库服务、支持高吞吐的数据实时增删改查低延时的实时分析和复杂ETL、兼容上下游生态工具、可用于构建企业级报表系统、数据仓库和数据服务引擎等,java 开发的,兼容MySQL协议
接入层:负责和用户侧进行交互,接受查询请求解析SQL查询语句,生成并优化查询计划及任务调度
计算层:负责具体的任务计算逻辑执行
存储层:负责数据存储及扫描数据
产品形态:
弹性模式:存储计算分离,支持分别扩展、计算时弹性功能、计算资源组隔离功能
资源组
在弹性模式中
支持资源组隔离,资源池功能可以对计算资源进行弹性划分,不同资源池之间的计算资源在物理上完全隔离,通过ADB mysql数据库账号绑定到不同的资源池,sql查询根据绑定关系路由至对应的资源池进行执行,从而满足实例内部多租户、混合负载的需求
默认资源池
默认资源池 user_default 是实例创建时存在的,不可删除
自定义资源池
用户自定义创建的资源池,可以针对资源的计算、查询执行模式、ADB mysql账号与资源池的绑定关系修改
查询流程
1、用户下发sql
2、前端节点负责解析SQL、生成分布式执行计划、下发到计算节点和存储节点执行
3、执行完成后、将结果返回费前端节点
常见概念
1、Stage:代表了整个SQL分布式执行计划树中的一颗树,每一stage会对应多个tast并发
2、Tast:是stage在某一个worer或者excutor上的实例负责具体的计算执行
3、Oprator:具有计算能力的运算单位,表示一个计算逻辑
参考官网:https://help.aliyun.com/zh/analyticdb-for-mysql/product-overview/overall-architecture
hologres(实时数仓)技术架构
官网参考:https://help.aliyun.com/zh/hologres/product-overview/architecture
Doris技术架构
Doris整体架构如下图所示,Doris 架构非常简单,只有两类进程
Frontend(FE),主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。
Backend(BE),主要负责数据存储、查询计划的执行。
参考官网:https://doris.apache.org/zh-CN/docs/get-starting/what-is-apache-doris/
StarRocks技术架构
参考官网:https://docs.mirrorship.cn/zh/docs/3.0/introduction/Architecture/
ClickHouse技术架构
Shard:集群内划分为多个分片或分组(Shard 0 … Shard N),通过 Shard 的线性扩展能力,支持海量数据的分布式存储计算。
Node: 每个 Shard 内包含一定数量的节点(Node,即进程),同一 Shard 内的节点互为副本,保障数据可靠。ClickHouse 中副本数可按需建设,且逻辑上不同 Shard 内的副本数可不同。
ZooKeeper Service: 集群所有节点对等,节点间通过 ZooKeeper 服务进行分布式协调。
参考:
https://developer.aliyun.com/article/1212409
https://developer.aliyun.com/article/1316795
https://developer.aliyun.com/live/43846
官网:
ClickHouse官网地址,请参见https://clickhouse.yandex/。
ClickHouse中文文档链接,请参见https://clickhouse.yandex/docs/zh/。
Hbase 技术架构
参考文档:
https://developer.aliyun.com/article/1172165
https://developer.aliyun.com/article/891048
特点及适用场景: