clickhouse库存储引擎以及表存储引擎
库存储引擎
--1.Atomic
它支持非阻塞 DROP 和 RENAME TABLE 查询以及原子 EXCHANGE TABLES t1 AND t2 查询。默认情况下使用Atomic数据库引擎。
CREATE DATABASE test ENGINE = Atomic;
--2.MySQL
MySQL引擎用于将远程的MySQL服务器中的表映射到ClickHouse中,并允许您对表进行INSERT和SELECT查询,以方便您在ClickHouse与MySQL之间进行数据交换。
MySQL数据库引擎会将对其的查询转换为MySQL语法并发送到MySQL服务器中,因此您可以执行诸如SHOW TABLES或SHOW CREATE TABLE之类的操作。
但您无法对其执行以下操作:
RENAME CREATE TABLE ALTER CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster] ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')
MySQL数据库引擎参数
host:port — 链接的MySQL地址。
database — 链接的MySQL数据库。
user — 链接的MySQL用户。
password — 链接的MySQL用户密码。
支持的类型对应
--3.Lazy
在距最近一次访问间隔expiration_time_in_seconds时间段内,将表保存在内存中,仅适用于 *Log引擎表
由于针对这类表的访问间隔较长,对保存大量小的 *Log引擎表进行了优化。
CREATE DATABASE testlazy ENGINE = Lazy(expiration_time_in_seconds);
表存储引擎
1.MergeTree
MergeTree -- 最强大的表引擎
ReplacingMergeTree - 删除排序键值相同的重复项
SummingMergeTree - 相同主键的数值类型行合并为一行
AggregatingMergeTree - 相同主键的行聚合统计成一行
CollapsingMergeTree - 类似拉链表,通过sign字段标识当前生效行
VersionedCollapsingMergeTree - 类似拉链表,通过sign与version字段标识当前生效行和版本号
GraphiteMergeTree - 对Graphite数据进行瘦身及汇总
2.Log
TinyLog - 最简单表引擎,存储在磁盘中,不支持索引,没有并发控制
StripeLog - 日志引擎,用于小数据量表
Log - "标记" 的小文件与列文件存在一起
3.Integration
Kafka - 与Apache Kafka结合使用
MySQL - 对远程MySQL数据执行SELECT查询
ODBC - 通过ODBC连接到外部数据库
JDBC - 通过JDBC连接到外部数据库
HDFS -通过HDFS连接ClickHouse
S3 - 连接Amazon S3
4.Special
Distributed - 分布式引擎
MaterializedView - 创建物化视图时指定
Dictionary - 将字典数据展示为ClickHouse表
Merge - 本身不存储数据
File - 将本地文件作为数据存储
Null - 写入数据被丢弃、读取数据为空
Set - 始终存在于 RAM 中的数据集
Join - 使用JOIN操作的一种可选的数据结构
URL - 用于管理远程 HTTP/HTTPS 服务器上的数据
View - 用于构建视图
Memory - 数据存储在内存中,重启后数据会丢失
Buffer -缓冲数据写入RAM 中,周期性地将数据刷新到另一个表