ClickHouse表引擎简单介绍

剑指南天 发表于 2021/12/31 13:13:48 2021/12/31
【摘要】 ClickHouse表引擎可分为四个系列,分别是Log、MergeTree、Integration、Special


1. ClickHouse表引擎的概述

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


图片1.png

2. 表引擎特点介绍

  • Log系列

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

Log系列表引擎的共性是:

  1. 数据顺序append写到磁盘
  2. 不支持deleteupdate
  3. 不支持索引
  4. 不支持原子写
  5. Insert的操作会阻塞select操作

主要的特点是:

  1. 数据存储磁盘
  2. 写入时追加数据到文件末尾
  3. 不支持突变的操作
  4. 不支持索引,所以select效率比较低
  5. 非原子性写入数据

该类型的引擎主要有三种:TinyLogStripeLogLog

TinyLog:不支持并发读取数据文件,查询性能较差,格式简单,属于存储中间数据

Striplog:支持并发读取数据文件,查询性能比TinyLog好;将多有列存储在用一个文件中,减少了文件个数

Log:支持并发读取数据文件,查询性能比TinyLog好;每个列会单独存储在一个独立的文件中


  • Integration系列

该系统表引擎主要用于对接外部数据源

Kafka:可以将kafka Topic中的数据直接导入到clickhouse

Mysql:将Mysql作为存储引擎,直接可以在Clickhouse中对mysql表进行select等操作

HDFS:直接读取HDFS的特定格式的数据文件

  • Specal系列


Special系列的表引擎,主要是为了特定场景的。

Memory引擎,数据以未压缩的原始形式存在内存中,服务器重启数据就会消失。读写操作不会相互阻塞,不支持索引。简单查询下有非常高的性能表现。一般仅用来测试,适用于非常高的性能,同事数据量不大的场景。

Merge引擎本身不存储数据,但同时从任意多个其他的表中读取数据。读取时自动并行,支持写入。

Distributed引擎,本身不存储数据,但是可以从多个服务器进行分布式查询。读是自动并行的

关于整合:

  1. Merge引擎:在同一个服务器上的,多个相同结构的物理表,可以被整合成一张大的逻辑表,这张表的数据包含了物理表中的所有数据
  2. Distributed:在不同的server上,多个相同结构的物理表,可以被整合成一张大的逻辑表,这张逻辑表的数据,就是包含了物理表的所有数据
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请发送邮件至:cloudbbs@huaweicloud.com;如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。