ClickHouse
什么是 ClickHouse
ClickHouse 是一个开源的面向列的数据库管理系统,专为在线分析处理 (OLAP) 而设计。
它以在大型数据集上卓越的查询性能而闻名,使其成为实时分析和数据仓库应用的理想选择。
ClickHouse 使用面向列的存储格式,并采用各种优化技术(如向量化查询执行)以实现高性能。
它支持带有扩展的 SQL,可以处理批量和流式数据摄取,使其适用于各种分析工作负载。
连接
映射端口 8123:8123 以启用 HTTP 接口。
在 DBeaver 中,连接到 http://__ip_address__:8123 并使用 default 用户名以及界面中设置的密码。
如果您还需要原生 TCP 协议(clickhouse-client CLI 使用),请同时发布 9000:9000。
备份与恢复指南
目前,Coolify 不支持修改 ClickHouse 配置,这意味着某些原生备份选项(例如备份到本地磁盘或使用 ALTER TABLE ... FREEZE PARTITION ...)不可用。因此,推荐使用 S3 进行备份。
如何备份 ClickHouse
要备份表或整个数据库,请使用以下 SQL 命令:
- 备份表:
BACKUP TABLE <table_name> TO S3('<your_s3_endpoint_com>/<unique_folder_for_table_backup>', '<s3_access_key>', '<s3_secret_key>')- 备份数据库:
将
TABLE替换为DATABASE以备份整个数据库:
BACKUP DATABASE <database_name> TO S3('<your_s3_endpoint_com>/<unique_folder_for_database_backup>', '<s3_access_key>', '<s3_secret_key>')如何恢复 ClickHouse
要从 S3 备份中恢复表或数据库,请使用相应的 RESTORE 命令:
- 恢复表:
RESTORE TABLE <table_name> FROM S3('<your_s3_endpoint_com>/<unique_folder_from_table_backup>', '<s3_access_key>', '<s3_secret_key>')- 恢复数据库:
将
TABLE替换为DATABASE以恢复整个数据库:
RESTORE DATABASE <database_name> FROM S3('<your_s3_endpoint_com>/<unique_folder_from_database_backup>', '<s3_access_key>', '<s3_secret_key>')不起作用的功能
- 磁盘备份:
BACKUP TABLE test.table TO Disk('backups', '1.zip')由于 Coolify 不允许修改 ClickHouse 配置,因此无法工作。
- 原生分区冻结:
ALTER TABLE ... FREEZE PARTITION ...由于 Docker/Coolify 文件结构的限制,可能无法工作。
- clickhouse-backup 工具: 由于类似的配置限制,外部工具如 clickhouse-backup 可能在 Docker/Coolify 环境中无法正常运行。
性能说明
社区成员分享称,备份一个 145GB 的数据库大约需要 12 分钟,而恢复它大约需要 17 分钟。
