1、表引擎的介绍
Clickhouse的表引擎类似MySQL的表引擎,表引擎决定了如何存储表的数据,主要包含如下特性:
- 数据的存储方式和位置,写到哪里以及从哪里读取数据
- 支持哪些查询以及如何支持。
- 并发数据访问。
- 索引的使用(如果存在)。
- 是否可以执行多线程请求。
- 数据复制参数。
表引擎的使用方式就是必须显式在创建表时定义该表使用的引擎,以及引擎使用的相关参数。
注意:表引擎的名称大小写敏感
2、引擎类型
- Log类型(日志类型)
- MergeTree类型(合并树类型)
- Integration Engines(集成类型)
- Special Engines(其他特定类型)
- Virtual Columns(虚拟列)
3、日志引擎系列
这类引擎是为了需要写入许多小数据量(少于100W)的场景而开发的,Log 家族的引擎可以将数据存储在S3或者HDFS分布式文件系统上,这系列的引擎有:
- Log
- TinyLog
- StripeLog
3.1、存在如下的特点:
- 数据存储在磁盘上
- 写入时将数据追加在文件末尾
- 不支持变更操作
- 不支持索引,这个意味着范围查询效率不高
- 非原子写入数据,如果有些线程影响写操作将会导致表数据损坏,比如在写过程服务器异常停止
- 支持表锁,有写入数据的时候,表是锁的。其他读写查询都需要等待表锁释放,如果没有数据写入,可以执行并发查询。