![备份 ClickHouse 数据的最佳方法](https://linux22.com/image/710109/%E5%A4%87%E4%BB%BD%20ClickHouse%20%E6%95%B0%E6%8D%AE%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95.png)
我们最近开始使用 Yandex ClickHouse 作为数据后端,我正在研究如何最好地备份我们的数据。似乎有两种方法可以做到这一点。
修改表...冻结分区
该ALTER TABLE ... FREEZE PARTITION
命令似乎只是创建分区的本地快照。我必须编写一个脚本来发现每个表中的所有分区,然后发出适当的命令。
为了从系统中获取备份,我认为我必须shadow
在每个服务器上创建目录的备份,并将该备份存储在另一个位置(如 S3 或类似位置)。
我该如何保持shadow
目录干净?冻结的内容可以删除吗?
数据转储
我见过的备份数据的另一种方法是简单地将其转储到文件中,正如本页建议的那样。
https://github.com/resure/scpnet/wiki/ClickHouse-backup
我必须编写一个脚本来发现每个数据库中的所有表,然后将所有数据转储到一个文件中。这让我想起使用 mysqldump 备份 MySQL 中的数据库,但没有能力在一个命令中转储所有内容。
就我个人而言,我倾向于这种解决方案,因为它似乎更容易编写脚本和维护,但我真的很好奇想知道其他人在做什么。