备份 ClickHouse 数据的最佳方式

Mat*_*att 5 backup database-backup

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

ALTER TABLE ...冻结分区

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

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

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

数据转储

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

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

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

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