表引擎

一、TinyLog

1.1 最简单的表引擎,用于将数据存储在磁盘上。每列都存储在单独的压缩文件中。写入时,数据将附加到文件末尾。
特点:
1)、用于处理小表,
2)、不支持索引
3)、一次写,多次读

1.2 简单使用

hadoop4 :) create table t1(name String,age Int8) engine=TinyLog
:-] ;

CREATE TABLE t1
(
    `name` String,
    `age` Int8
)
ENGINE = TinyLog

Ok.

二、Memory引擎

Memory 引擎以未压缩的形式将数据存储在 RAM 中。数据完全以读取时获得的形式存储。换句话说,从这张表中读取是很轻松的。并发数据访问是同步的。锁范围小:读写操作不会相互阻塞。不支持索引。查询是并行化的。在简单查询上达到最大速率(超过10 GB /秒),因为没有磁盘读取,不需要解压缩或反序列化数据。(值得注意的是,在许多情况下,与 MergeTree 引擎的性能几乎一样高)。重新启动服务器时,表中的数据消失,表将变为空。通常,使用此表引擎是不合理的。但是,它可用于测试,以及在相对较少的行(最多约100,000,000)上需要最高性能的查询。

Memory 引擎是由系统用于临时表进行外部数据的查询

三、Merge

Merge 引擎 (不要跟 MergeTree 引擎混淆) 本身不存储数据,但可用于同时从任意多个其他的表中读取数据。
读是自动并行的,不支持写入。读取时,那些被真正读取到数据的表的索引(如果有的话)会被使用。
Merge 引擎的参数:一个数据库名和一个用于匹配表名的正则表达式
3.1测试:

  1. 创建三张表
create table t2(id UInt16,name String) engine=TinyLog;
create table t3(id UInt16,name String) engine=TinyLog;
create table t4(id UInt16,name String) engine=TinyLog;

  1. 插入数据
insert into t2 values(1,'first');
insert into t3 values(2,'second');
insert into t4 values(3,'three');
  1. 创建Merge表
hadoop4 :) create table mt(id UInt16,name String)engine=Merge(currentDatabase(),'^t');

CREATE TABLE mt
(
    `id` UInt16,
    `name` String
)
ENGINE = Merge(currentDatabase(), '^t')

Ok.

  1. 查询数据
hadoop4 :) select * from mt;

SELECT *
FROM mt

┌─id─┬─name──┐
│  1 │ first │
└────┴───────┘
┌─id─┬─name───┐
│  2 │ second │
└────┴────────┘
┌─id─┬─name──┐
│  3 │ three │
└────┴───────┘

四,MergeTree

Clickhouse 中最强大的表引擎当属 MergeTree (合并树)引擎及该系列(*MergeTree)中的其他引擎。

1、建表语句

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]
(
    name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1] [TTL expr1],
    name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2] [TTL expr2],
    ...
    INDEX index_name1 expr1 TYPE type1(...) GRANULARITY value1,
    INDEX index_name2 expr2 TYPE type2(...) GRANULARITY value2
) ENGINE = MergeTree()
ORDER BY expr
[PARTITION BY expr]
[PRIMARY KEY expr]
[SAMPLE BY expr]
[TTL expr [DELETE|TO DISK 'xxx'|TO VOLUME 'xxx'], ...]
[SETTINGS name=value, ...]
posted @ 2021-03-12 13:21  北漂-boy  阅读(117)  评论(0编辑  收藏  举报