前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >clickhouse表引擎学习

clickhouse表引擎学习

作者头像
公众号-利志分享
发布2022-04-25 09:08:54
4800
发布2022-04-25 09:08:54
举报
文章被收录于专栏:利志分享利志分享

MergeTree

MergeTree是clickhouse最强大的引擎。其主要特点: 1:存储的数据按主键排序 2:支持数据分区 3:支持数据副本 4:支持数据采样 5:支持ttl 下面我们来建一个表test_mergetree,表数据只保留一个月下面的就是例子

代码语言:javascript
复制
create table test.test_mergetree (

    id Int32 comment 'id',

    name String comment '名称',

    age Int32 comment '年龄',

    create_at DateTime comment '创建时间'

)engine=MergeTree() order by id partition by toYYYYMM(create_at)  primary key id sample by id TTL create_at + INTERVAL 1 MONTH DELETE;
 

建表参照官方文档:

代码语言:javascript
复制
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 = MergeTree(). MergeTree 引擎没有参数。

ORDER BY — 排序键。没有使用 PRIMARY KEY 显式的指定主键,ClickHouse 会使用排序键作为主键。

PARTITION BY — 分区键 。最小支持到天

PRIMARY KEY - 主键,指定一个跟排序键不一样的主键是可以的,此时排序键用于在数据片段中进行排序,主键用于在索引文件中进行标记的写入。这种情况下,主键表达式元组必须是排序键表达式元组的前缀。

SAMPLE BY — 用于抽样的表达式。如果要用抽样表达式,主键中必须包含这个表达式。例如:

SAMPLE BY intHash32(UserID) ORDER BY (CounterID, EventDate, intHash32(UserID)) 。

TTL 指定行存储的持续时间并定义数据片段在硬盘和卷上的移动逻辑的规则列表,可选。可支持列ttl和表ttl。

列ttl样例:TTL time_column + interval
 

MergeTree对应的其家庭树引擎有如下: AggregatingMergeTree ReplacingMergeTree SummingMergeTree

下一讲我们分别讲MergeTree的家庭树引擎,以及数据副本引擎。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 利志分享 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档