clickhouse如何做数据备份?

提问者:帅平 问题分类:大数据
clickhouse如何做数据备份?
5 个回答
ε小仙女з
ε小仙女з
还可以通过FETCH进行分区备份,使用方式是差不多的,只是语法有一些变化,例如:
#备份分区
ALTER TABLE users FETCH PARTITION 202402 FROM ${zk_path}

还原的时候这么操作:
#删除分区
alter table users drop partition '202402';
#装载分区
alter table users attach partition '202402';

目前通过FETCH进行分区备份,仅支持ReplicatedMergeTree表模型
发布于:4个月前 (02-27) IP属地:四川省
素梦瑾然
素梦瑾然
还有通过分区进行备份,例如:
ALTER TABLE users FREEZE PARTITION '202402';

这种还原的话需要使用装载分区的形式,也就是先卸载/删除原分区,再装载备份的分区,例如:
#删除分区
alter table users drop partition '202402';
#装载分区
alter table users attach partition '202402';
发布于:4个月前 (02-27) IP属地:未知
扎起头发是矫情
扎起头发是矫情
还可以使用快照表的方式备份数据,也就是创建另外一张表,然后把数据插入到这张快照表里面去,例如:
#创建快照表
create table users_bak_20240227 as users;
#把数据插入到快照表
insert into users_bak_20240227 select * from users;
发布于:4个月前 (02-27) IP属地:未知
帅的被人砍
帅的被人砍
如果数据量少,可以把数据dump成文件到本地,示例如下:
ClickHouse-client --query="select * from test_backup" > /software/data/test_backup.tsv
发布于:4个月前 (02-27) IP属地:未知
帅的被人砍
帅的被人砍
还原的话,可以使用如下的语句:
cat /software/data/test_backup.tsv |ClickHouse-client --query "Insert into test_backup format TSV"
发布于:4个月前 (02-27) IP属地:未知
我来回答