Skip to content

ClickHouse

什么是 ClickHouse

ClickHouse 是一个开源的面向列的数据库管理系统,专为在线分析处理 (OLAP) 设计。

它以其在大型数据集上出色的查询性能而闻名,非常适合实时分析和数据仓库应用。

ClickHouse 使用面向列的存储格式,并采用各种优化(如向量化查询执行)来实现高性能。

它支持带有扩展的 SQL,可以处理批量和流式数据摄入,使其在各种分析工作负载中具有通用性。

备份和恢复指南

目前,Coolify 不支持修改 ClickHouse 配置,这意味着某些原生备份选项(例如,备份到本地磁盘或使用 ALTER TABLE ... FREEZE PARTITION ...)是不可能的。相反,推荐的方法是使用 S3 进行备份。

如何备份 ClickHouse

要备份表或整个数据库,请使用以下 SQL 命令:

  • 备份表:
sql
BACKUP TABLE <表名> TO S3('<您的_s3_endpoint_com>/<表备份的唯一文件夹>', '<s3_access_key>', '<s3_secret_key>')
  • 备份数据库:TABLE 替换为 DATABASE 以备份整个数据库:
sql
BACKUP DATABASE <数据库名> TO S3('<您的_s3_endpoint_com>/<数据库备份的唯一文件夹>', '<s3_access_key>', '<s3_secret_key>')

如何恢复 ClickHouse

要从 S3 备份恢复表或数据库,请使用相应的 RESTORE 命令:

  • 恢复表:
sql
RESTORE TABLE <表名> FROM S3('<您的_s3_endpoint_com>/<表备份的唯一文件夹>', '<s3_access_key>', '<s3_secret_key>')
  • 恢复数据库:TABLE 替换为 DATABASE 以恢复整个数据库:
sql
RESTORE DATABASE <数据库名> FROM S3('<您的_s3_endpoint_com>/<数据库备份的唯一文件夹>', '<s3_access_key>', '<s3_secret_key>')

不支持的功能

  • 磁盘备份:
sql
BACKUP TABLE test.table TO Disk('backups', '1.zip')

由于 Coolify 不允许修改 ClickHouse 配置,此功能不可用。

  • 原生分区冻结:
sql
ALTER TABLE ... FREEZE PARTITION ...

可能由于 Docker/Coolify 文件结构的限制而无法使用。

  • clickhouse-backup 工具: 由于类似的配置限制,像 clickhouse-backup 这样的外部工具可能无法在 Docker/Coolify 设置中正常运行。

性能说明

一位社区成员分享,备份 145GB 的数据库大约需要 12 分钟,而恢复它大约需要 17 分钟。

链接