1. 文本文件导入导出
以下只备份数据,不包含创建库和表,需要事先创建在导人
导出
clickhouse-client -h 127.0.0.1 --query="select * from db.test" > test.csv
导入 (注意FORMAT后面大写) 多个文件导人可以用test.*
clickhouse-client --query="insert into db.test FORMAT CSV"<test.csv
报错
以上是在ClickHouse数据搬迁时,将数据导入到CVS文件中,再从文件导入表时发生的
实际测试如下:中英文逗号和中文顿号都会报这个错误 Code: 27. DB::ParsingException: Cannot parse input: expected
原因:
TSV:tab separated values;即“制表符分隔值”,用制表符分隔数据
CSV: comma separated values;即“逗号分隔值”,用逗号分隔数据
特殊字符导致数据解析出错
解决办法:以TSV格式导入文件内容即可
clickhouse-client --query="insert into db.test FORMAT TSV"<test.csv
2. 使用clickhouse-backup备份
一、官方资料和使用说明:
参考文档资料如下:
https://github.com/AlexAkulov/clickhouse-backup
https://segmentfault.com/a/1190000038604737
#使用限制:
- 支持1.1.54390以上的ClickHouse
- 仅MergeTree系列表引擎
- 不支持备份Tiered storage或storage_policy
- 云存储上的最大备份大小为5TB
- AWS S3上的parts数最大为10,000
链接:https://pan.baidu.com/s/1OXv7Cy_nNV-_tMOLbmyaFg
提取码:8gx7
我尝试过许多版本,不是缺少数据目录,就是表结构,最后是用我百度网盘的二进制文件成功的
二、安装方式:
2.1、二进制文件安装:
clickhouse-backup下载:
tar -xf clickhouse-backup.tar.gz
cd clickhouse-backup /
sudo cp clickhouse-backup /usr/local/bin
2.2、下载rpm安装包安装:
rpm -ivh clickhouse-backup-1.0.0-1.x86_64.rpm
编辑配置文件:
mkdir -p /etc/clickhouse-backup/
vi /etc/clickhouse-backup/config.yml
添加一些基本的配置信息
general:
remote_storage: none
max_file_size: 107374182400
disable_progress_bar: true
backups_to_keep_local: 0
backups_to_keep_remote: 0
log_level: info
allow_empty_backups: false
download_concurrency: 1
upload_concurrency: 1
clickhouse:
username: default
password: ""
host: 10.0.18.252
port: 9000
data_path: "" #尝试过修改这个不起作用,应该是这个版本bug,默认在ck的数据目录
skip_tables:
- system.*
timeout: 5m
freeze_by_part: false
secure: false
skip_verify: false
#查看全部默认的配置项
clickhouse-backup default-config
#查看可备份的表
clickhouse-backup tables
创建备份
- 全库备份
clickhouse-backup create
备份存储在中 $data_path/backup 下,备份名称默认为时间戳,可手动指定备份名称。例如:
clickhouse-backup create ch_bk_20211123
备份包含两个目录:
‘metadata’目录: 包含重新创建所需的DDL SQL
‘shadow’目录: 包含作为ALTER TABLE … FREEZE操作结果的数据。
2. 单表备份
语法:
clickhouse-backup create [-t, --tables=<db>.<table>] <backup_name>
备份表caihao.ch_test_customer
clickhouse-backup create -t caihao.ch_test_customer ch_test_customer
- 备份多个表
clickhouse-backup create -t caihao.test_restore_tab,caihao.ch1 ch_bak_2tab
#查看备份文件
#删除备份文件
#清除shadow下的临时备份文件
数据恢复
语法:
clickhouse-backup restore 备份名
进入数据库查看
成功,撒花
一些参数:
- –table 只恢复特定表,可使用正则。
- 如针对特定的数据库:–table=dbname.*
- –schema 只还原表结构
- –data 只还原数据
总结有部分本地表没有备份,仅MergeTree系列表引擎表备份了
如果需要迁移可以把metadata,’shadow’目录移动过去在安装clickhouse-backup进行数据恢复
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/75709.html