目錄
前言
隨着數據量的增長,傳統DB已經無法滿足實時聚合分組排序分析需求,目前比較流行日OLAP系統有:Presto,Druid,Kylin,TiFlash,ClickHouse等,對現有流行OLAP進行調研和實驗,ClickHouse能夠解決業務的相似問題。
需求分析
廣告業務數據分析維度較多,廣告維度和時間維度組合查詢條件較爲複雜,查詢時間跨度大,需要穩定,快速返回查詢結果給客戶。業務難點:當數據量和計算複雜度增加後,響應時間會逐漸變慢,從毫秒級上升到秒級,甚至到分鐘級。
從需求上面我們可以看出,需要穩定的,基於SQL的,足夠快的引擎,回溯數據方便快速,易擴容的,方能支持數據報表業務。
主要特點
- 絕大多數請求是以讀爲主
- 真正的面向列的DBMS
- 實時數據更新
- SQL語法支持
- 多核並行處理
- 數據高效壓縮
- 分佈式處理
- 數據複製完整性
- 豐富的索引
- 數據剪枝能力比較強
- 集羣式管理
- 可直接讀取MySQL數據
- 適合於在線實時查詢
- 支持近似預估計算
適用場景
- 海量數據分析
- 數據報表
- 監控
I/O情況
- 分析查詢時,只需要讀取少量的列。在面向列的數據庫中,您只能讀取所需的數據。例如,如果您需要20列中的5列,則I/O減少4倍+-。
- 數據是以數據包形式讀取,因此壓縮比較容易,這進一步減少了I/O量。
- 由於減少的I/O,更多的數據適合在系統緩存中。
測試結論
提前批量導入抽樣的6億+廣告數據,連續一年日期用於用例測試。
ClickHouse批量導入(集羣多副本,Distributed表引擎,表結構存儲於Zookeeper,INSERT INTO tb FORMAT TSV方式)數據15~120s/天。天級別生產數據滿足性能需要,另外、程序實現寫入速度爲:50000-230000/s。
Druid構建一天的數據(受HDFS集羣負載影響)30m+/天,天級別生產數據勉強可以。如果數據需要回溯,簡直是一種災難!
ClickHouse測試表現:
測試數據總量:
SELECT count(*) FROM tb;
┌───count()─┐
│ 600009888 │
└───────────┘
1 rows in set. Elapsed: 0.003 sec.
查詢某個用戶的下物料總數:
SELECT COUNT(0) FROM tb WHERE (uid=12) AND (d>='2019-01-01') AND (d<=2020-02-29'')
┌─COUNT(0)─┐
│ 5517277 │
└──────────┘
1 rows in set. Elapsed: 0.635 sec. Processed 5.97 million rows, 53.72 MB (9.39 million rows/s., 84.53 MB/s.)
查詢某個用戶下詞列表:
SELECT uid, uname, words, SUM(pv) pv, SUM(click) click, SUM(costs) costs FROM tb WHERE (a=12) AND (d>='2019-01-01') AND (d<=2020-02-29'') GROUP BY uid, uname, words ORDER BY costs DESC LIMIT 0, 30;
┌────────uid─┬─uname─────────┬─────────bid─┬─words──────────────┬──────pvs─┬─clicks─┬───────costs─┐
│ 3145298302 │ PC超億12_精確 │ 26080049777 │ 首頁官網 │ 37248919 │ 234492 │ 70347.60000 │
│ 3145298302 │ PC超億12_精確 │ 26186326337 │ 網站大全 │ 6206134 │ 104139 │ 31241.70000 │
│ 3145298302 │ PC超億12_精確 │ 24816548095 │ 板 │ 1457180 │ 93951 │ 28185.30000 │
│ 3145298302 │ PC超億12_精確 │ 26107100801 │ 圖 │ 1896121 │ 84312 │ 25293.60000 │
│ 3145298302 │ PC超億12_精確 │ 26834629020 │ 官網 │ 487345 │ 61395 │ 21226.10000 │
│ 3145298302 │ PC超億12_精確 │ 26196959633 │ 漫畫 │ 1480118 │ 25444 │ 15834.42000 │
│ 3145298302 │ PC超億12_精確 │ 26186329636 │ 聯盟 │ 456358 │ 46051 │ 13815.30000 │
│ 3145298302 │ PC超億12_精確 │ 24857366663 │ 查詢電話 │ 5278596 │ 25568 │ 12142.75000 │
│ 3145298302 │ PC超億12_精確 │ 24857357703 │ 模板 │ 574470 │ 34251 │ 10275.30000 │
│ 3145298302 │ PC超億12_精確 │ 25975600742 │ 百度 │ 28774114 │ 34157 │ 10247.10000 │
│ 3145298302 │ PC超億12_精確 │ 23537517700 │ 兒童 │ 387200 │ 30973 │ 9291.90000 │
│ 3145298302 │ PC超億12_精確 │ 26742512966 │ 閱讀網 │ 2535672 │ 28294 │ 8488.20000 │
│ 3145298302 │ PC超億12_精確 │ 26712075029 │ 查詢網 │ 3070835 │ 21588 │ 7929.20000 │
│ 3145298302 │ PC超億12_精確 │ 26742550022 │ 直播 │ 221523 │ 25977 │ 7793.10000 │
│ 3145298302 │ PC超億12_精確 │ 26186205650 │ 全集觀看 │ 2188534 │ 20392 │ 6736.84000 │
│ 3145298302 │ PC超億12_精確 │ 26107100833 │ 地圖 │ 143585 │ 19935 │ 5980.50000 │
│ 3145298302 │ PC超億12_精確 │ 27040647713 │ 客戶端 │ 570540 │ 16346 │ 4903.80000 │
│ 3145298302 │ PC超億12_精確 │ 26800482794 │ 單號查詢 │ 2003334 │ 16252 │ 4875.60000 │
│ 3145298302 │ PC超億12_精確 │ 26776266759 │ 房屋租賃 │ 380903 │ 16219 │ 4865.70000 │
│ 3145298302 │ PC超億12_精確 │ 26776381177 │ 快遞單號 │ 1851953 │ 14473 │ 4341.90000 │
│ 3145298302 │ PC超億12_精確 │ 26186219167 │ 加減法 │ 148837 │ 14460 │ 4338.00000 │
│ 3145298302 │ PC超億12_精確 │ 26954252248 │ 精品 │ 1280662 │ 14390 │ 4317.00000 │
│ 3145298302 │ PC超億12_精確 │ 26924100555 │ 播放器 │ 855142 │ 14163 │ 4248.90000 │
│ 3145298302 │ PC超億12_精確 │ 26479917828 │ 圖片 │ 179839 │ 12593 │ 3976.10000 │
│ 3145298302 │ PC超億12_精確 │ 22671940297 │ 人體 │ 220719 │ 13204 │ 3961.20000 │
│ 3145298302 │ PC超億12_精確 │ 26001297994 │ 思維 │ 205330 │ 12639 │ 3791.70000 │
│ 3145298302 │ PC超億12_精確 │ 24816632460 │ 植物 │ 448441 │ 12420 │ 3726.00000 │
│ 3145298302 │ PC超億12_精確 │ 26712060443 │ 手遊 │ 201656 │ 12360 │ 3708.00000 │
│ 3145298302 │ PC超億12_精確 │ 26742132975 │ 六年 │ 297673 │ 11971 │ 3591.30000 │
│ 3145298302 │ PC超億12_精確 │ 26800365256 │ 全國 │ 778811 │ 11878 │ 3563.40000 │
└────────────┴───────────────┴─────────────┴────────────────────┴──────────┴────────┴─────────────┘
30 rows in set. Elapsed: 0.657 sec. Processed 5.97 million rows, 556.60 MB (9.09 million rows/s., 847.34 MB/s.)
從造用場景上ClickHouse更貼近於目前的數據業務,性能表現上更有優勢,批量生產數據時速度最快。
該文章公衆號:“sir小龍蝦”獨家授權,其他人未經允許不得轉載。