Database Clickhouse:如何为分区表和未分区表进行Clickhouse db的增量备份?

Database Clickhouse:如何为分区表和未分区表进行Clickhouse db的增量备份?,database,clickhouse,Database,Clickhouse,需要备份Clickhouse数据库, 有些表已分区,有些表未分区 如果可能,请提供一些脚本或代码,以便更好地理解。可能有不同的选项,具有不同的复杂性和权衡: 您可以使用某种通用队列,如Kafka,数据来自 它被放在ClickHouse上,用于实时报告和一些 用于备份的不同“冷”存储(S3、HDFS等) 您可以像这里描述的那样备份单个分区 [连结]: 您可以拥有额外的ClickHouse副本,该副本具有非常大的 磁盘卷,不参与实时查询,然后使用ZFS 上面有快照 请先查看官方页面 备份有多种方式。

需要备份Clickhouse数据库, 有些表已分区,有些表未分区


如果可能,请提供一些脚本或代码,以便更好地理解。

可能有不同的选项,具有不同的复杂性和权衡:

  • 您可以使用某种通用队列,如Kafka,数据来自 它被放在ClickHouse上,用于实时报告和一些 用于备份的不同“冷”存储(S3、HDFS等)
  • 您可以像这里描述的那样备份单个分区 [连结]:
  • 您可以拥有额外的ClickHouse副本,该副本具有非常大的 磁盘卷,不参与实时查询,然后使用ZFS 上面有快照

  • 请先查看官方页面

    备份有多种方式。但他们都有自己的缺点

    方法1

    转储数据的一般步骤:

    有关格式列表,请参阅

    方法4

    • 数据目录的二进制副本

      /var/lib/clickhouse/

    对于非复制表: 停止服务器,rsync/scp/etc。。。在其数据目录中,启动服务器

    确保文件访问权限和所有权正确。

    使用S3和GCS支持,轻松实现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