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
上一篇: 现在才挨上打