您好,欢迎访问代理记账网站
移动应用 微信公众号 联系我们

咨询热线 -

电话 15988168888

联系客服
  • 价格透明
  • 信息保密
  • 进度掌控
  • 售后无忧

Clickhouse导入导出Python脚本

一. 导出

注意1: 端口号不是8123,阿里云默认python的tcp端口号是3306,自建默认是9000

注意1: 账号密码不要带有特殊符号,哪怕有使用转义依然会登录不上去,自建一个导入导出的专属账号吧

from celery.utils.log import get_task_logger
import subprocess

logger = get_task_logger(__name__)


# 从clickhouse 导出数据到本地
# databaseName 库名
# tableName	表名
# hubId	园区id
def export_clickhouse_data(databaseName, tableName, hubId):
    sqlCommand = """ clickhouse-client --host="你的host" \
            --port="你的端口" --user="你的用户名" --password="你的密码"  \
            --query="select * from {}.{} where hubId = '{}'  \
            FORMAT CSV"  > {}.csv""".format(databaseName, tableName, hubId,  hubId+tableName)
    logger.info(f"开始执行导出数据")
    subprocess.Popen(sqlCommand, stdout=subprocess.PIPE, shell=True)
    logger.info(f"结束执行导出数据")


export_clickhouse_data("ctirobot", "dim_hub", "e90d7310-959c-4948-bf09-c67e93600848")

二. 导入

from celery.utils.log import get_task_logger
import subprocess

logger = get_task_logger(__name__)


# 从本地导入数据到clickhouse 
# databaseName 库名
# tableName	表名
# hubId	园区id
def import_clickhouse_data(databaseName, tableName, hubId):
    sqlCommand = """ clickhouse-client --user="你的用户名" --host="你的host" --port="你的端口号" --password="你的密码"  \
        --query=" insert into {}.{} \
        FORMAT CSV"  < {}.csv""".format(databaseName, tableName, hubId+tableName)
    logger.info(f"开始执行导入数据")
    subprocess.Popen(sqlCommand, stdout=subprocess.PIPE, shell=True)
    logger.info(f"结束执行导入数据")


import_clickhouse_data("ctirobot", "dim_hub", "e90d7310-959c-4948-bf09-c67e93600848")

分享:

低价透明

统一报价,无隐形消费

金牌服务

一对一专属顾问7*24小时金牌服务

信息保密

个人信息安全有保障

售后无忧

服务出问题客服经理全程跟进