Database Clickhouse:如何为分区表和未分区表进行Clickhouse db的增量备份?
需要备份Clickhouse数据库, 有些表已分区,有些表未分区Database Clickhouse:如何为分区表和未分区表进行Clickhouse db的增量备份?,database,clickhouse,Database,Clickhouse,需要备份Clickhouse数据库, 有些表已分区,有些表未分区 如果可能,请提供一些脚本或代码,以便更好地理解。可能有不同的选项,具有不同的复杂性和权衡: 您可以使用某种通用队列,如Kafka,数据来自 它被放在ClickHouse上,用于实时报告和一些 用于备份的不同“冷”存储(S3、HDFS等) 您可以像这里描述的那样备份单个分区 [连结]: 您可以拥有额外的ClickHouse副本,该副本具有非常大的 磁盘卷,不参与实时查询,然后使用ZFS 上面有快照 请先查看官方页面 备份有多种方式。
如果可能,请提供一些脚本或代码,以便更好地理解。可能有不同的选项,具有不同的复杂性和权衡:
请先查看官方页面 备份有多种方式。但他们都有自己的缺点 方法1 转储数据的一般步骤: 有关格式列表,请参阅 方法4
- 数据目录的二进制副本 /var/lib/clickhouse/
还支持增量备份。@macias更新了链接
clickhouse-client --query="SELECT * FROM table FORMAT Native" > table.native
Native is the most efficient format
CSV, TabSeparated, JSONEachRow are more portable: you may import/export data to another DBMS.
Dump of metadata:
clickhouse-client --query="SHOW CREATE TABLE table" --format=TabSeparatedRaw > table.sql
Restore of metadata:
clickhouse-client < table.sql
Restore of data:
clickhouse-client --query="INSERT INTO table FORMAT Native" < table.native
#!/bin/bash
BACKUP_NAME=my_backup_$(date -u +%Y-%m-%dT%H-%M-%S)
clickhouse-backup create $BACKUP_NAME
clickhouse-backup upload $BACKUP_NAME