docker-clickhouse 备份tsv文件,上传s3

1) 数据导出

sudo docker exec -it your_container_id /bin/bash -c 'clickhouse-client --user default --password yourpwd --query="select * from db.your_xxx_table" > /tmp_clickhouse_backup_csv_data/your_xxx_table-20230113.tsv'

2) 数据从docker当中拷贝出来

sudo docker cp your_container_id:/tmp_clickhouse_backup_csv_data/your_xxx_table-20230113.tsv ./

3) 数据恢复

cat /tmp_clickhouse_backup_csv_data/test_backup.tsv | clickhouse-client --user default --password yourpwd --query "Insert into db.your_xxx_table format TSV"

4) 进入生产ch指定数据库

sudo docker exec -it your_container_id /bin/bash -c 'clickhouse-client --user root --password yourpwd -d yourdb'

# -*- coding: utf-8 -*-
import json
#import telegram
import boto3
import os
#from clickhouse_driver import Client
import datetime
import time

# 注册s3的客户端
def getS3Client():
    prod_s3_client = boto3.client(
        's3',
        aws_access_key_id="AKIA37IEKUUUQMK5GDEM",
        aws_secret_access_key="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"
    )
    return prod_s3_client

if __name__ == '__main__':
    prod_s3_client = getS3Client()
    path = os.getcwd()                    # 获取当前python脚本所在的绝对路径
    file_name_list = os.listdir(path)     # 获取指定路径下的所有文件名称list

    print(path, file_name_list)
    for fname in file_name_list:
        if 'tsv' in fname:
            FilePath = '/{0}/{1}'.format(path, fname)
            print('-------------当前 upload file is-------------->', FilePath, fname)
            prod_s3_client.upload_file(Bucket='fp-clickhouse-backup', Filename=FilePath, Key=fname)
    print('task finish.')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值