ClickHouse表引擎简单介绍

网友投稿 1030 2022-05-28

1. ClickHouse表引擎的概述

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

2. 表引擎特点介绍

Log系列

Log系列表引擎主要用于快速写入小表(1百万行左右),然后全读出来的场景。当需要快速写入和整体读的时候,最有效。

Log系列表引擎的共性是:

ClickHouse表引擎简单介绍

数据顺序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上,多个相同结构的物理表,可以被整合成一张大的逻辑表,这张逻辑表的数据,就是包含了物理表的所有数据

ClickHouse

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【git】github|创建本地上传到github下的项目和克隆远程仓库的指定分支
下一篇:AI Studio中的OpenCV在三种环境下对比
相关文章