全网最细最全OLAP之clickhouse笔记|clickhouse文档|clickhouse揭秘文档(二)--clickhouse核心概念

免费视频教程 https://www.51doit.com/ 或者联系博主微信 17710299606

1 架构设计

1.1 单节点架构

 

在单节点上安装好CH以后,启动CH的服务以后,可以使用CH提供的客户端交互窗口进行操作,可以操作数据库,表 , 表中的数据....

同时CH也支持和其他数据源的对接!CH可以将整个表中的数据缓存在内存中,方便快速查询,分析计算结果,也可将数据存储在本地磁盘的执行目录中, 不同引擎的表存储的位置和结构不同!!

1.2 集群架构

ClickHouse集群模式中依赖ZooKeeper工作 ,ZK的作用主要分为两大类:分布式DDL执行、ReplicatedMergeTree表主备节点之间的状态同步。

2 基本概念

2.1 列式存储

 

相比于行式存储,列式存储在分析场景下有着许多优良的特性。

1)如前所述,分析场景中往往需要读大量行但是少数几个列。在行存模式下,数据按行连续存储,所有列的数据都存储在一个bloCK中,不参与计算的列在IO时也要全部读出,读取操作被严重放大。而列存模式下,只需要读取参与计算的列即可,极大的减低了IO cost,加速了查询。

2)同一列中的数据属于同一类型,压缩效果显著。列存往往有着高达十倍甚至更高的压缩比,节省了大量的存储空间,降低了存储成本。

3)更高的压缩比意味着更小的data size,从磁盘中读取相应数据耗时更短。

4)自由的压缩算法选择。不同列的数据具有不同的数据类型,适用的压缩算法也就不尽相同。可以针对不同列类型,选择最合适的压缩算法。

5)高压缩比,意味着同等大小的内存能够存放更多数据,系统cache效果更好。

官方数据显示,通过使用列存,在某些分析场景下,能够获得100倍甚至更高的加速效应。

2.2 向量化(算法)

ClickHouse不仅将数据按列存储,而且按列进行计算。传统OLTP数据库通常采用按行计算,原因是事务处理中以点查为主,SQL计算量小,实现这些技术的收益不够明显。但是在分析场景下,单个SQL所涉及计算量可能极大,将每行作为一个基本单元进行处理会带来严重的性能损耗:

1)对每一行数据都要调用相应的函数,函数调用开销占比高;

2)存储层按列存储数据,在内存中也按列组织,但是计算层按行处理,无法充分利用CPU cache的预读能力,造成CPU Cache miss严重;

3)按行处理,无法利用高效的SIMD指令;

ClickHouse实现了向量执行引擎(Vectorized execution engine),对内存中的列式数据,一个batch调用一次SIMD指令(而非每一行调用一次),不仅减少了函数调用次数、降低了cache miss,而且可以充分发挥SIMD指令的并行能力,大幅缩短了计算耗时。向量执行引擎,通常能够带来数倍的性能提升。

(SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集以同步方式,在同一时间内执行同一条指令。)

2.3 

联想以前学习的表 , 有表名和表结构

2.4 分片

ClickHouse的集群由分片 ( Shard ) 组成,而每个分片又通过副本 ( Replica ) 组成。这种分层的概念,在一些流行的分布式系统中十分普遍。例如,在Elasticsearch的概念中,一个索引由分片和副本组成,副本可以看作一种特殊的分片。如果一个索引由5个分片组成,副本的基数是1,那么这个索引一共会拥有10个分片 ( 每1个分片对应1个副本 )。

如果你用同样的思路来理解ClickHouse的分片,那么很可能会在这里栽个跟头。ClickHouse的某些设计总是显得独树一帜,而集群与分片就是其中之一。这里有几个与众不同的特性。

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

分片只是一个逻辑概念(类似于Hbase中的region的概念,表的范围数据),其物理承载还是由副本承担的。

 

2.5 分区

ClickHouse支持PARTITION BY子句,在建表时可以指定按照任意合法表达式进行数据分区操作,比如通过toYYYYMM()将数据按月进行分区、toMonday()将数据按照周几进行分区、对Enum类型的列直接每种取值作为一个分区等。

类似于hive中的分区表

 

​​​​​​​2.6 副本

数据存储副本,在集群模式下实现高可用!!

​​​​​​​2.7引擎

就是表的类型,不同的表有不同的特点,不同引擎决定表的数据存储位置和数据存储特点!!

猜你喜欢

转载自blog.csdn.net/qq_37933018/article/details/108020062