专业的编程技术博客社区

网站首页 > 博客文章 正文

ClickHouse架构概述(二)(clickhouse架构图)

baijin 2024-10-17 07:46:41 博客文章 8 ℃ 0 评论

1 ClickHouse的核心特性

1.1 完备的DBMS功能

DDL

DML

权限控制

数据备份与恢复

分布式管理

1.2 列存储及数据压缩

按列存储:可以减少查询扫描数据量

数据压缩的友好性:压缩的本质是按照一定步长对数据进行匹配扫描,当发现重复部分的时候就进行编码转换;同一列的字段具有相同的数据类型和现实语义,重复项的可能性更高,压缩率要更高

1.3 向量化引擎

利用CPU的SIMD指令,本质是通过数据并行来提高性能

1.4 关系模型及SQL查询

支持sql就使得ClickHouse平易近人

1.5 表引擎多样化

通过特定的表引擎支撑特定的场景,比较灵活,大约有20多种表引擎

1.6 多线程分布式

性能要提升除了向量化引擎可以做到,多线程也是一种提升性能的方式;

ClickHouse在数据存取方面,既支持分区(纵向扩展,利用多线程原理),也支持分片(横向扩展,利用分布式原理)。

1.7 多主架构

ClickHouse则采用Multi-Master多主架构,集群中的每个节点角色对等,客户端访问任意一个节点都能得到相同的效果

1.8 数据分片与分布式查询

ClickHouse不具有自动化的分片能力,它有本地表(Local Table)与分布式表(Distributed Table),本地表等同于数据的分片,分布式表是本地表的访问代理,本身不存储数据

2 ClickHouse的架构设计

2.1 Column与Field

2.2 DataType

2.3 Block与Block流

2.4 Table

2.5 Parser与Interpreter

2.6 Functions与Aggregate Functions

2.7 Cluster与Replication

(1) ClickHouse的1个节点只能拥有1个分片,也就是说如果要实现1分片、1副本,则至少需要部署2个服务节点

(2) 分片只是一个逻辑概念,其物理承载还是由副本承担的。

3 参考

朱凯《ClickHouse原理解析与应用实践》

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表