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 中,周期性地将数据刷新到另一个表

posted @ 2022-01-18 15:30  渐逝的星光  阅读(566)  评论(0编辑  收藏  举报