首页  

clickhouse表引擎     所属分类 clickhouse 浏览量 1476
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存储层与计算层