clickhouse语句_ClickHouse之ReplacingMergeTree引擎

本文介绍了ClickHouse的ReplacingMergeTree引擎,它在数据合并时删除重复主键记录,选择保留一行。讨论了建表语句中的关键参数,如ENGINE、ver列、PARTITION BY、ORDER BY、SAMPLE BY及SETTINGS,并强调了ver列在去重中的作用。通过示例展示了如何手动触发OPTIMIZE操作。
摘要由CSDN通过智能技术生成

简介

该引擎和MergeTree的不同之处在于它会删除具有相同主键的重复项。

在数据合并的时候会对主键进行去重,合并会在后台执行,执行时间未知,因此你无法预先做出计划,当然你也可以调用OPTIMIZE语句来发起合并计划,但是这种方式是不推荐的,因为OPTIMIZE语句会引发大量的读写请求。

建表语句

CREATE TABLE [IF NOT EXISTS] [db.]table_name [ON CLUSTER cluster]( name1 [type1] [DEFAULT|MATERIALIZED|ALIAS expr1], name2 [type2] [DEFAULT|MATERIALIZED|ALIAS expr2], ...) ENGINE = ReplacingMergeTree([ver])[PARTITION BY expr][ORDER BY expr][SAMPLE BY expr][SETTINGS name=value, ...]
  • ENGINE:引擎名和参数。
  • ver:版本列,类型可以是UInt*,Date,或者DateTime,可选择的参数。合并的时候ReplacingMergeTree从相同的主键中选择一行保留,如果ver列未指定,则选择最后一条,如果ver列已指定,则选择ver值最大的版本。
  • PARTITION BY:分区键。要按月分区,可以使用表达式 toYYYYMM(date_column) ,这里的 date_column 是一个 Date 类型的列。这里该分区名格式会是 "YYYYMM" 这样。
  • ORDER BY: 表的排序键。可以是一组列或任意的表达式。 例如: ORDER BY (Co
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值