备份 ClickHouse 数据的最佳方法

备份 ClickHouse 数据的最佳方法

我们最近开始使用 Yandex ClickHouse 作为数据后端,我正在研究如何最好地备份我们的数据。似乎有两种方法可以做到这一点。

修改表...冻结分区

ALTER TABLE ... FREEZE PARTITION命令似乎只是创建分区的本地快照。我必须编写一个脚本来发现每个表中的所有分区,然后发出适当的命令。

为了从系统中获取备份,我认为我必须shadow在每个服务器上创建目录的备份,并将该备份存储在另一个位置(如 S3 或类似位置)。

我该如何保持shadow目录干净?冻结的内容可以删除吗?

数据转储

我见过的备份数据的另一种方法是简单地将其转储到文件中,正如本页建议的那样。

https://github.com/resure/scpnet/wiki/ClickHouse-backup

我必须编写一个脚本来发现每个数据库中的所有表,然后将所有数据转储到一个文件中。这让我想起使用 mysqldump 备份 MySQL 中的数据库,但没有能力在一个命令中转储所有内容。

就我个人而言,我倾向于这种解决方案,因为它似乎更容易编写脚本和维护,但我真的很好奇想知道其他人在做什么。

相关内容