您好,登錄后才能下訂單哦!
這篇文章主要介紹clickhouse SQL優(yōu)化技巧有哪些,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
sql慢查大部分主要體現(xiàn)在cpu 負(fù)載過(guò)高,io過(guò)高,或者查詢的列中無(wú)索引導(dǎo)致的;注意;clickhouse本身不太支持高并發(fā)的場(chǎng)景,qps過(guò)高會(huì)導(dǎo)致clickhouse服務(wù)器cpu過(guò)高,導(dǎo)致慢查
在這些情況下;常見的考慮的是 sql中是否有復(fù)雜的運(yùn)算,查詢的數(shù)量量是否過(guò)大,查詢的列中索引是否有效;
sql 查詢特點(diǎn):數(shù)量大,且分區(qū)跨度大
data表格中有8億多條數(shù)據(jù),data表按照p_data_day 分區(qū);
select sn,COUNT(1) as valueQt from data WHERE sn='70A0600018109' and p_day >= '2017-01-01' and p_data_day < '2020-08-13'group by sn;
數(shù)據(jù)會(huì)遍歷整個(gè)分區(qū),數(shù)據(jù)平均在1s左右分鐘返回 ;
優(yōu)化思路:減少不必要數(shù)據(jù)的遍歷(分區(qū));充分利用clickhouse 索引(group by 索引)
針對(duì)sn的查詢,建立物化視圖;將8億條數(shù)據(jù)按照sn號(hào)以及device_id(mac_code)建立256個(gè)分區(qū);
create MATERIALIZED VIEW IF NOT EXISTS data_sn_materializedengine = ReplicatedMergeTree('/clickhouse/tables/{ck_cluster}/data_sn_materialized', '{replica}')PARTITION BY sn_sort_key ORDER BY (sn_sort_key,sn,p_day)AS select halfMD5(_sn) % 256 as sn_sort_key,sn,p_day,count() as cnt from data group by sn_sort_key,sn,p_day;
查詢語(yǔ)句;保持原來(lái)的出參和入?yún)⒉蛔?,?shù)據(jù)能夠在200ms以內(nèi)返回,
sql 查詢特點(diǎn):數(shù)量大,且分區(qū)跨度大
data 表格數(shù)據(jù)量在10億多條,建表語(yǔ)句如下
CREATE TABLE data (`data_day` Date, `flow_type` UInt32 DEFAULT CAST(0, 'UInt32'),.....) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{ck_cluster}/data', '{replica}') PARTITION BY data_day ORDER BY (flow_type, data_day) SETTINGS index_granularity = 8192;
查詢語(yǔ)句
select ... from data where data_day = '2020-09-11'
CREATE TABLE dwrt.lc_order_flow (
`data_day` Date,
.....
`flow_type` UInt32 DEFAULT CAST(0,
'UInt32'),
....
) ENGINE = ReplicatedMergeTree('/clickhouse/tables/{ck_cluster}/data', '{replica}') PARTITION BY data_day ORDER BY (data_day, flow_type) TTL data_day + toIntervalDay(7) SETTINGS index_granularity = 8192;
以上是“clickhouse SQL優(yōu)化技巧有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。