欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Clickhouse 批量执行SQL文件等常用语句

程序员文章站 2022-09-17 09:16:08
有一堆或者太长的SQL需要执行,可以写成一个文件,批量执行:clickhouse-client --user 用户名 --password 密码 -d 数据库 --multiquery < /root/temp.sql查看SQL的执行计划:clickhouse-client -h localhost --send_logs_level=trace <<<"SQL语句" >/dev/null导入为csv文件:clickhouse-client --q...

有一堆或者太长的SQL需要执行,可以写成一个文件,批量执行:

clickhouse-client --user 用户名 --password 密码 -d 数据库 --multiquery <  /root/temp.sql

查看SQL的执行计划:

clickhouse-client -h localhost --send_logs_level=trace  <<<"SQL语句" >/dev/null

导入为csv文件:

clickhouse-client --query="select * from default.t_city" > city.csv

或者

# echo 'select * from default.t_city' | curl localhost:8123?database=default -udefault:password -d @- > table_name.sql

导入csv文件:

# cat city.csv | clickhouse-client --query "insert into city FORMAT CSV"

比较小的数据量导出csv文件,带上字段名,然后导入

Clickhouse> select * from default.t_city INTO OUTFILE '/data/t_city.csv' FORMAT CSVWithNames;

SELECT *
FROM default.t_city
INTO OUTFILE '/data/t_city.csv'
FORMAT CSVWithNames


8 rows in set. Elapsed: 0.050 sec. 


#cat /data/t_city.csv | clickhouse-client --query="INSERT INTO default.t_city FORMAT CSVWithNames"  --password

当数据存在两个集群或者主机的时候可以采用方法:

insert into default.t_city VALUES
select * from remote('127.0.0.1:9000', default, t_city);


当数据巨大的时候可以采用官方提供的工具clickhouse-copier:
clickhouse-client --host <source>   -q "SELECT * FROM default.t_city FORMAT CSVWithNames" | \
clickhouse-client --host <target> --port 9000  -q "INSERT INTO defualt.t_city FORMAT CSVWithNames"

利用linux的管道命令 节省内存,磁盘和运行时间。

 

本文地址:https://blog.csdn.net/vkingnew/article/details/107397200

相关标签: Clickhouse