clickhouse 引擎简介-clickhouse mergetreethread

2023-08-07 11:59:18

 

ch 引擎主要分为`数据库引擎` 及 `表引擎`

数据库引擎

延时引擎

表数据存储于内存中,适用于 `*Log表引擎`

MySQL引擎

MySQL引擎用于将远程的Myql服务中的表映射到ClickHouse中,并允许对表进行`insert` 和`select`操作,方便ch与mysql之间进行数据交换。

RENAME / CREATE TABLE / ALTER 无法操作

CREATE DATABASE youi_activity_db ENGINE = MySQL(127.0.0.1:3306, youi_activity_db, root, root) Query id: 4567adc3-3919-4202-9874-00ad29c1d651 Ok. # 查看youi_activity_db中数据表 SHOW TABLES Query id: b10b9a76-2442-4bae-92d9-5ba16afd8634 ┌─name────────────────────────────┐ │ t_activity │ │ t_request_log │ └─────────────────────────────────┘

表引擎

表引擎除自带的合并树家族引擎外,还集成了`jdbc` `odbc` `hdfs` `kafka` `mysql` 引擎,用于执行远程的数据查询

MergeTree

MergeTree `系列`的引擎被设计于用于插入极大量的数据到一张表中。数据可以以数据片段的形式一个接着一个快速写入,数据片段在后台按照一定的规则进行合并。

主要特点:

存储的数据按照主键排序支持数据分区,如果指定了分区键的话。 - 相同数据集 结果集情况下,clickhouse中带分区的操作会比普通操作更快。支持副本支持数据采样

创建表

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, ...]

ENGINE 参数可指定其它表引擎

子句

ENGINE - 引擎名和参数ORDER BY - 排序键

可以由一组列的元组或任意表达式。 `clickhouse 会默认使用排序键作为主键`

PARTITION BY - 分区键

要按月分区,可以使用表达式 toYYYYMM(date_column) ,这里的 date_column 是一个 Date 类型的列。分区名的格式会是 "YYYYMM" 。

PRIMARY KEY - 主键

默认使用排序键

主键无唯一约束

SAMPLE BY - 采样表达式SETTINGS

`index_granularity` - 索引粒度,索引以相信的标记间的数据行数为单位, 默认为8192

`index_granularity_bytes` - 索引粒度, 以字节为单位,默认10M

ENGINE MergeTree() PARTITION BY toYYYYMM(EventDate) ORDER BY (CounterID, EventDate, intHash32(UserID)) SAMPLE BY intHash32(UserID) SETTINGS index_granularity=8192

AggregatingMergeTree

继承MergeTree, 使用AggregatingMergeTree表来做增量数据的聚合统计,包括物化视图的数据聚合。

SummingMergeTree

继承MergeTree, 使用SummingMergeTree时,可以把具有相同主键的行合并为一行,该行包含了被合并的行中具有数值数据类型的列的汇总值。

ReplacingMergeTree

删除排序键相同的重复项。 数据的去重只在数据合并期间进行。合并会在后台一个不确定的时间进行,因此无法预先做出计划。

可以调用optimize 语句发起计划合并,但是optimize 会引发对数据的大量读写


以上就是关于《clickhouse 引擎简介-clickhouse mergetreethread》的全部内容,本文网址:https://www.7ca.cn/baike/59679.shtml,如对您有帮助可以分享给好友,谢谢。
标签:
声明

排行榜