ClickHouse 命令彙總
連線clickhouse
mysql -h 127.0.0.1 -P 9004 -u user_name -ppassword
clickhouse-client -uuser_name --password password --port 9000 -h 127.0.0.1
安裝clickhouse-client
訪問:
下載clickhouse-common-static、clickhouse-client 檔案進行安裝,可選擇20.5.4.40版本
上傳檔案到伺服器
執行命令
rpm -ivh clickhouse-common-static-20.5.4.40-2.x86_64.rpm
rpm -ivh clickhouse-client-20.5.4.40-2.noarch.rpm
建立表
CREATE TABLE part_v1 (ID String,URL String,EventTime Date)
ENGINE = MergeTree()
PARTITION BY toYYYYMMDD(EventTime)
ORDER BY (ID, intHash32(ID))
TTL EventTime + toIntervalDay(19)
SAMPLE BY intHash32(ID);
複製程式碼
SAMPLE BY 取樣,取樣鍵必須在主鍵中也要定義
插入資料
INSERT INTO db.table VALUES (1, 1, '2020-08-11', 1)
修改資料,不能改主鍵、分割槽鍵
ALTER table db.table update age = 12 where ID in (select ID from test.part_v2 where EventTime='2019-01-01')
只有mergetree、merge、distributed 等支援alter
增加欄位
ALTER table db.table add column if not exists age UInt8 default 0 AFTER URL
檢視分割槽資訊
select table,partition,path from system.parts where table='part_v1'
刪除分割槽
ALTER table db.table DROP PARTITION field_date_1;
複製分割槽資料
ALTER TABLE db.table REPLACE PARTITION 1 FROM 2
刪除資料,後臺非同步執行
刪除的任務會儲存到mutations表中,id_done=1表示執行完畢
ALTER table db.table delete where id >=1;
select database, table, mutation_id,block_numbers.number as num,is_done from system.mutations
修改欄位型別
ALTER TABLE db.table MODIFY COLUMN age String
修改備註
ALTER TABLE db.table COMMENT COLUMN ID '主鍵ID'
刪除欄位
ALTER TABLE db.table DROP COLUMN age
檢視zk儲存的資料
select * from system.zookeeper where path='/clickhouse/tables/2-2/test_replication/replicas/test_replication_1';
檢視錶結構
DESC db.table
SHOW CREATE TABLE db.table
重新命名錶
RENAME TABLE db.table to db.newtable
刪除表
TRUNCATE TABLE db.table
檢視字典
select name,type,key,attribute.names,attribute.types from system.dictionaries
僅支援MergeTree引擎。會進行ttl清理、分割槽合併等
optimize table test.ttl_table_v1;
可以修改ttl,新增ttl,但不能取消ttl
alter table test.ttl_table_v1 modify column code String TTL create_time + INTERVAL 1 DAY;
ttl啟停止
SYSTEM START TTL MERGES; SYSTEM STOP TTL MERGES;
Buffer表,滿足指定條件會將buffer表中資料刷到指定表
如果寫入Mergetree併發很高,可能會導致Mergetree表的合併速度慢於寫入速度,引入Buffer表來緩解這類問題。
大資料培訓
create table test.buffer_to_memory_1 as test.memory_1 engine = Buffer(test, memory_1, 16, 10 ,100, 1000, 1000000, 10000000, 100000000);
query_log
select * from system.query_log order by event_time desc limit 10;
trace_log
select * from system.trace_log where query_id = '29786b1e-9380-4373-90b8-9fc68ef89441';
查詢正在進行執行的sql操作
SHOW PROCESSLIST
從mysql中匯入資料
複製
insert into test.test_order select * from mysql('127.0.0.1:3307','test','test_order','root','123456');
argMax 取最大值,day最大的那行資料的id
select argMax(day, id) from test.daily3;
json格式輸出欄位
select batch_id,concat('[',toString(groupUniqArray(id)),']')json from coupon_day_local group by batch_id;
格式化返回結果
SELECT * FROM test FORMAT JSON SELECT * FROM test FORMAT CSV SELECT * FROM test FORMAT TSKV SELECT * FROM test FORMAT XML
版權宣告:本文為原創文章,轉載請附上原文出處連結及本宣告。下載相關影片學習資料到尚矽谷官方網站。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27721058/viewspace-2852580/,如需轉載,請註明出處,否則將追究法律責任。