亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何用ClickHouse存儲時序數據

發布時間:2021-12-04 11:41:35 來源:億速云 閱讀:1035 作者:iii 欄目:云計算

本篇內容主要講解“如何用ClickHouse存儲時序數據”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“如何用ClickHouse存儲時序數據”吧!

簡介

我們需要存儲結構化時序數據,時間間隔為5分鐘或1分鐘,計算95峰值995峰值最值等指標,并且在網頁中展示。

MySQL

項目開發初期,為了快速開發原型,驗證產品,我們使用MySQL作為整個項目的存儲。帶來的問題是時序數據庫范圍分析查詢耗時很長,計算30天的數據需要30s+,到了無法容忍的地步,即便是創建索引、使用BitInt存儲時間戳,幾乎沒有性能提升。

后來我們組其他同事說換ClickHouse來存儲時序數據,于是我們就開始了替換之旅。 

ClickHouse

ClickHouse是面向OLAP(在線分析處理)、兼容SQL標準的列式數據庫,主要的不足是不支持事務。因此我們目前沒有把整個存儲都遷移到ClickHouse上,而是只把時序數據存過來。

本以為替換過程會很麻煩,可能修改大量的代碼和邏輯,實際上很快,因為之前接口的邏輯設計很合理,所以只替換了數據庫ORM庫,從gorm換成了sqlx,花了1天時間(前期重構邏輯花了1個星期我會亂說)。

更重要的是,ClickHouse提供了很多聚合函數,之前計算95值需要2次查詢,而現在只需要一次查詢就夠了,對應的SQL如下:

select d.en_name, max(d.in_value) as peak_in,
    max(d.out_value) as peak_out, max(d.max_value) as peak_max,
    quantileExact(0.95)(d.out_value) as peak_95,
    quantileExact(0.995)(d.out_value) as peak_995,
    quantileExact(0.999)(d.out_value) as peak_999
from table_value d where d.record_time >= '2020-01-01 00:00:00' and d.record_time <= '2020-01-31 23:59:59'
group by d.en_name
 

經驗證,ClickHouse是真的牛逼,30天內的查詢耗時從30s降到2s內,提升了15倍!!!

下圖是ClickHouse的測試結果,x軸表示查詢的時間范圍,最大12個月,最小1個月,共測試12次。可以看到大部分耗時在3s內

如何用ClickHouse存儲時序數據

下圖是MySQL存儲中的測試結果(忽略標題),分別計算1、2、3個月范圍的數據,共查詢1次,耗時都在100s以上。

如何用ClickHouse存儲時序數據

到此,相信大家對“如何用ClickHouse存儲時序數據”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

井冈山市| 延吉市| 枣阳市| 柳林县| 三明市| 扎赉特旗| 温泉县| 香格里拉县| 青浦区| 台南市| 砀山县| 贵德县| 安义县| 调兵山市| 库车县| 宜城市| 尉氏县| 门源| 仲巴县| 潞城市| 宁陕县| 称多县| 三江| 井研县| 巫山县| 乡宁县| 巨野县| 庄浪县| 玛多县| 潞西市| 仙桃市| 惠来县| 嘉鱼县| 杭锦后旗| 道真| 溆浦县| 蓬莱市| 太谷县| 马龙县| 文登市| 伊通|