ClickHouse高级学习(一)架构概述(待更新)

文章目录

  • Clickhouse的核心特性
    • 列式存储和数据压缩
    • 向量化执行引擎
    • 关系模型与SQL查询
    • 多样化的表引擎
    • 多线程与分布式
    • 多主架构
    • 数据分片与分布式查询
  • Clickhouse架构设计
    • Column与Field
    • DataType
    • Block与Block流
    • Table
    • Parser与Inter preter
    • Functions与Aggregate Functions
    • Cluster与Replication

Clickhouse的核心特性

列式存储和数据压缩

  • clickhouse是列式存储,列式存储跟行式存储相比,可以减少一些不必要列的扫描,因为我们都是大数据量查询,数据分析有时候只需要使用到一些列的数据,所以行式存储对于我们来说并不适用,因为每次扫描数据都需要一行一行的扫描,多列的记录会造成不必要的资源浪费。
  • clickhouse也是支持数据压缩,行式存储相比于列式存储更加不适合压缩,所以这就是为什么clickhouse更加快速的原因

向量化执行引擎

  • 简单来说就是,本来是通过单条指令操纵多条数据,通过数据并行以提高性能的一种实现方式,原理是通过CPU寄存器层面实现数据的并行操作。

关系模型与SQL查询

  • clickhouse沿用了关系模型描述数据并且提供了传统的数据库,表,视图和函数等,最主要的是延用最传统的sql查询,值得注意的是clickhouse是有大小写的分别的

多样化的表引擎

  • 针对不同的需求,click house有不同的表引擎,到目前为止一共有20多种表引擎

多线程与分布式

  • clickhouse支持分布式,将利用多台服务器的资源协同处理。
  • 为了实现这个目标首先要在数据层面完成分布式,因为在分布式中,计算传输比数据传输消耗的更少,所以相比于移动数据,更好的方法是将数据事先划分好,分不到不同的服务器上,查询的时候将数据推到下面的服务器上
  • clickhouse支持分区也支持分片

多主架构

  • 跟寻常的分布式系统相比,click house是多主框架,以往的是主从框架,有一个leader但是clickhouse不是,click house是每个点都可以是主控点,每个节点的功能都一样,所以避免了单点故障的问题。

数据分片与分布式查询

Clickhouse架构设计

Column与Field

  • Column 是内存中的一列数据的基本对象,有接口和实现两个部分,各种关系运算都跟她有关
  • Field 是代表一个单值

DataType

  • 完成序列化和反序列化的工作

Block与Block流

Table

Parser与Inter preter

Functions与Aggregate Functions

Cluster与Replication

你可能感兴趣的:(ClickHouse,数据库)