ClickHouse表引擎简单介绍
1. ClickHouse表引擎的概述
ClickHouse表引擎可分为四个系列,分别是Log、MergeTree、Integration、Special,其中包含了两种特殊的引擎Replicated、Distributed。可以根据自己的业务场景组合使用。MergeTree系列是官方主推的存储引擎,在本文章暂不研究,其他三种主要用于特殊用途,为本文主要介绍对象

2. 表引擎特点介绍
-  
Log系列
 
Log系列表引擎主要用于快速写入小表(1百万行左右),然后全读出来的场景。当需要快速写入和整体读的时候,最有效。
Log系列表引擎的共性是:
- 数据顺序append写到磁盘
 - 不支持delete和update
 - 不支持索引
 - 不支持原子写
 - Insert的操作会阻塞select操作
 
主要的特点是:
- 数据存储磁盘
 - 写入时追加数据到文件末尾
 - 不支持突变的操作
 - 不支持索引,所以select效率比较低
 - 非原子性写入数据
 
该类型的引擎主要有三种:TinyLog、StripeLog、Log
TinyLog:不支持并发读取数据文件,查询性能较差,格式简单,属于存储中间数据
Striplog:支持并发读取数据文件,查询性能比TinyLog好;将多有列存储在用一个文件中,减少了文件个数
Log:支持并发读取数据文件,查询性能比TinyLog好;每个列会单独存储在一个独立的文件中
-  
Integration系列
 
该系统表引擎主要用于对接外部数据源
Kafka:可以将kafka Topic中的数据直接导入到clickhouse
Mysql:将Mysql作为存储引擎,直接可以在Clickhouse中对mysql表进行select等操作
HDFS:直接读取HDFS的特定格式的数据文件
-  
Specal系列
 
Special系列的表引擎,主要是为了特定场景的。
Memory引擎,数据以未压缩的原始形式存在内存中,服务器重启数据就会消失。读写操作不会相互阻塞,不支持索引。简单查询下有非常高的性能表现。一般仅用来测试,适用于非常高的性能,同事数据量不大的场景。
Merge引擎本身不存储数据,但同时从任意多个其他的表中读取数据。读取时自动并行,支持写入。
Distributed引擎,本身不存储数据,但是可以从多个服务器进行分布式查询。读是自动并行的
关于整合:
- Merge引擎:在同一个服务器上的,多个相同结构的物理表,可以被整合成一张大的逻辑表,这张表的数据包含了物理表中的所有数据
 - Distributed:在不同的server上,多个相同结构的物理表,可以被整合成一张大的逻辑表,这张逻辑表的数据,就是包含了物理表的所有数据
 
- 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)