有一堆或者太長的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...