clickhouse表引擎
所属分类 clickhouse
浏览量 1470
MergeTree 引擎
多版本机制 支持并发读写
处理能力最好的引擎
支持索引,通过主键和日期来构建索引, 同时提供 数据的实时更新能力.
大多数任务,应该使用MergeTree族中的引擎
主键与排序键
稀疏索引 索引常驻内存
不要求主键唯一
主键中列的数量并没有明确的限制
默认情况下主键跟排序键相同
主键表达式元组必须是排序键表达式元组的一个前缀。
数据按主键排序
允许使用分区
支持数据副本
支持数据采样
CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1],
name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2],
...
INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
) ENGINE = MergeTree()
[PARTITION BY expr]
[ORDER BY expr]
[PRIMARY KEY expr]
[SAMPLE BY expr]
[SETTINGS name=value, ...]
ReplacingMergeTree
会删除具有相同主键的重复项
ReplacingMergeTree 适用于在后台清除重复的数据以节省空间,但它不保证唯一。
SummingMergeTree
将所有具有相同主键(具有相同排序键)的行替换为一行,该行包含数字数据类型的列汇总
AggregatingMergeTree
CollapsingMergeTree
VersionedCollapsingMergeTree
GraphiteMergeTree
日志引擎系列
StripeLog Log TinyLog
日志引擎特点
数据存储在磁盘上
写入时将数据追加在文件末尾
不支持索引 SELECT查询效率不高
非原子地写入数据 , 服务器异常关闭,表数据可能损坏
不同点
Log 表中的每一列使用不同的文件,支持并发读,写操作阻塞读和写 ,读写锁。适用于临时数据,write-once 表以及测试或演示目的。
StripeLog 将所有的数据存储在一个文件中。
TingLog 不支持并发数据访问,将每一列存储在不同的文件中。只写入一次数据,然后根据需要多次读取
Merge
Merge 引擎本身不存储数据,但可以同时从多个其他的表中读取数据 , 读是自动并行的,不支持写入
典型应用是可以像使用一张表一样使用大量的 TinyLog 表
Merge(db, 'regex')
Distributed
分布式引擎本身不存储数据, 但可以在多个服务器上进行分布式查询。
Distributed(cluster, db, table[, sharding_key])
Memory
以未压缩的形式将数据存储在内存中
读写操作不会相互阻塞
Intergation engines
与其他数据存储与处理系统集成的引擎
Kafka
MySQL
ODBC
JDBC
HDFS
上一篇
下一篇
arthas 使用 ognl 设置日志级别
ThreadLocal 与 SimpleDateFormat
hashCode和identifyHashCode区别
clickhouse SQL
clickhouse基础
clickhouse存储层与计算层