Clickhouse 批量執行SQL檔案等常用語句

2021-10-08 04:54:47 字數 1455 閱讀 7136

有一堆或者太長的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 -q "select * from default.t_city format csvwithnames" | \

clickhouse-client --host --port 9000 -q "insert into defualt.t_city format csvwithnames"

利用linux的管道命令 節省記憶體,磁碟和執行時間。

ClickHouse是如何批量寫入的?

批量寫入又稱為bulk write,對於單錶插入多條資料的場景,可以減少插入請求數量,提高吞吐量和效率。clickhouse官方golang驅動clickhouse go 1 支援該關鍵特性,但是文件的介紹不是很詳細,只有一句 bulk write support begin prepare in ...

Bulk API 批量執行

bulk api用於執行批量建立索引和刪除資料操作。一些工具可以幫助使用者執行bulk請求 perl 源 404 python 1 api格式 bulk 2 資料格式 action and meta data n optional source n action and meta data n op...

mysqli批量執行語句

批量執行時可以混合執行delete,insert,update語句,但最好不要使用select mysqli new mysqli localhost root root test if mysqli connect error die mysqli connect error mysqli que...