文章目錄
- 一、簡介
- 二、常用命令
- 1、連接命令
- 2、SQL語法
- (1)查看數據庫列表
- (2)查看當前使用的數據庫
- (3)查看數據庫中表列表
- (4)創建數據庫
- (5)創建表
- (6)查看表結構
- (7)刪除表
- (8)刪除庫
- (9)清空數據
- (10)插入數據
- (11)查詢
- (12)重命名表
- (13)添加列
- (14)查看分區信息
- (15)刪除分區
- (16)查看后臺進程
- (17)殺死后臺進程
- 3、導入csv數據
- 4、導入數據時忽略錯誤
- 5、導出csv數據
- 6、執行sql文件
一、簡介
進入ClickHouse安裝目錄下的bin目錄下,執行如下命令:
./clickhouse-client --help
執行結果(只列舉常用的參數):
--host, -h – 服務端的 host 名稱, 默認是 'localhost'。 您可以選擇使? host 名稱或者 IPv4 或 IPv6 地址。
--port – 連接的端?,默認值: 9000。注意 HTTP 接?以及 TCP 原?接?是使?不同端?的。
--user, -u – ?戶名。 默認值: default。
--password – 密碼。 默認值: 空字符串。
--query, -q – ?交互模式下的查詢語句.
--database, -d – 默認當前操作的數據庫. 默認值: 服務端默認的配置 (默認是 default )。
--multiline, -m – 如果指定,允許多?語句查詢(Enter 僅代表換?,不代表查詢語句完結)。
--multiquery, -n – 如果指定, 允許處理?逗號分隔的多個查詢,只在?交互模式下?效。
--format, -f – 使?指定的默認格式輸出結果。
--vertical, -E – 如果指定,默認情況下使?垂直格式輸出結果。這與 '--format=Vertical' 相同。在這種格式中,每個值都在單獨的?上打印,這種?式對顯示寬表很有幫助。
--time, -t – 如果指定,?交互模式下會打印查詢執?的時間到 'stderr' 中。
--stacktrace – 如果指定,如果出現異常,會打印堆棧跟蹤信息。
-config-file – 配置?件的名稱。
...
二、常用命令
1、連接命令
./clickhouse-client -h [ip] --port [端口號] -u [用戶名] --password [密碼]
ClickHouse默認端口號為:9000
ClickHouse默認用戶名為:default
ClickHouse默認密碼為:空
如果ClickHouse的端口號、用戶名、密碼都使用的默認值,那么可用如下連接命令:
./clickhouse-client
2、SQL語法
(1)查看數據庫列表
show databases;
(2)查看當前使用的數據庫
select currentDatabase();
(3)查看數據庫中表列表
show tables;
(4)創建數據庫
create database test;
(5)創建表
-- 創建一個表(建表的時候指定數據類型,建表的時候一定要指定表引擎,要么使用-m,要么使用反斜杠,不然不能寫多行)
create table if not exists test.t1 ( \id UInt16,name String \
) ENGINE = Memory;
(6)查看表結構
desc test.t1;
(7)刪除表
drop table if exists test.t1;
(8)刪除庫
drop database test;
(9)清空數據
truncate table test.t1;
(10)插入數據
insert into test.t1 (id, name) values (1, 'zhangsan'), (2, 'lishi');
(11)查詢
select * from test.t1;
(12)重命名表
rename table tab1 to tab2;
(13)添加列
alter table tbl add column cost UInt32 default 0;
(14)查看分區信息
select partition, name, active from system.parts WHERE table = 't1';
(15)刪除分區
alter table xxx drop partition '2018-08-08';
默認情況下,Clickhouse 不允許刪除分區或表的大小大于 50GB 的分區或表。可以通過修改server的配置文件來永久配置,也可以臨時設置一下來刪除而不用重啟服務。
永久配置:更改config.xml配置文件。
<!-- <max_table_size_to_drop>0</max_table_size_to_drop> -->
<!-- <max_partition_size_to_drop>0</max_partition_size_to_drop> -->
0表示不限制,或者你可以設置為你想限制的最大的大小。
(16)查看后臺進程
-- 這個命令和mysql是一樣的
show processlist
-- 如果進程太多,也可用通過查詢系統表 processes,
select * from system.processes
-- 指定主要關心字段
select user,query_id,query,elapsed,memory_usage from system.processes;
(17)殺死后臺進程
-- 通過上面指令獲取到進程相關信息后,可以用query_id條件kill進程
KILL QUERY WHERE query_id='2e33f3ae-f7e1-4c10-af8c-af96aff20837'
-- 殺死default用戶下的所有進程
KILL QUERY WHERE user='default'
3、導入csv數據
cat xxx.csv | clickhouse-client --query="insert into tablename format CSV"
指定分隔符:cat xxx.csv | clickhouse-client --format_csv_delimiter=“|” --query=“insert into tablename format CSV”
如果csv文件有列名,使用CSVWithNames,解析時,第一行會被直接忽略。
注意:query后面的=不能有空格。
4、導入數據時忽略錯誤
./clickhouse-client --input_format_allow_errors_num=100000 --input_format_allow_errors_ratio=0.2
-
--input_format_allow_errors_num
:是允許的錯誤數; -
--input_format_allow_errors_ratio
:是允許的錯誤率,范圍是 [0-1];
5、導出csv數據
./clickhouse-client --query="select * from test.t1 format CSV" > test.csv
6、執行sql文件
./clickhouse-client --user xxx --password xxx --multiquery < /root/temp.sql