clickhouse 十三 (操作数据表)

本文介绍了ClickHouse中ALTER命令的使用,包括添加、删除和修改字段,以及清理和管理数据。针对大规模表的操作,建议使用脚本进行分布式处理以避免阻塞和提高效率。同时,提供了数据清理、分区管理和数据删除的示例,强调了在处理大表时的注意事项和最佳实践。

官网描述:alter操作仅支持 *MergeTree ,Merge以及Distributed等引擎表。本示例采用支持数据副本的MergeTree做测试表,alter语句操作数据的会在压缩的情况下被复制

个人见解:在ck使用alter table on cluster语句的使用,alter语句会通过zk去调整各个ck分片的数据,所以就会有一种尴尬就是,操作大表的数据,alter on cluster语句就会阻塞着,速度很慢,如果此时ck集群有机器宕机,就会影响到整个表。最好的方式就是小表使用这种alter on cluster语句,而大表(上亿级别)自己使用脚本,轮询的到每个机器上alter表。
测试表:

CREATE TABLE test.tmp_uid_info
(
    `uid` Int32,
    `alias` Int32,
    `sex` String,
    `totalDate` Date,
    `source` String,
    `name` String
)
ENGINE = ReplicatedMergeTree('/clickhouse/test/tables/{shard}/tmp_uid_info', '{replica}')
PARTITION BY totalDate
ORDER BY uid
SETTINGS index_granularity = 8192

添加新字段

#语法格式
alter table tb_name add column [IF NOT EXISTS] name [type] [default_expr]
[alter name_after]

# 给测试表的末尾增加新字段.,对于数据表中已经存在旧数据⽽⾔,新追加的字段会使⽤默认值补全
alter table default.tmp_uid_info_all on cluster ck_cluster add column age String default '0';

alter t
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高并发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值