目錄
- 前言
- 需求分析
- 主要特點
- 適用場景
- I/O情況
- 測試結(jié)論
前言
隨著數(shù)據(jù)量的增長饿悬,傳統(tǒng)DB已經(jīng)無法滿足實時聚合分組排序分析需求砍鸠,目前比較流行日OLAP系統(tǒng)有:Presto,Druid,Kylin,TiFlash烙无,ClickHouse等,對現(xiàn)有流行OLAP進行調(diào)研和實驗遍尺,ClickHouse能夠解決業(yè)務(wù)的相似問題截酷。
需求分析
廣告業(yè)務(wù)數(shù)據(jù)分析維度較多,廣告維度和時間維度組合查詢條件較為復雜乾戏,查詢時間跨度大迂苛,需要穩(wěn)定,快速返回查詢結(jié)果給客戶鼓择。業(yè)務(wù)難點:當數(shù)據(jù)量和計算復雜度增加后三幻,響應時間會逐漸變慢,從毫秒級上升到秒級惯退,甚至到分鐘級赌髓。
從需求上面我們可以看出,需要穩(wěn)定的催跪,基于SQL的,足夠快的引擎夷野,回溯數(shù)據(jù)方便快速懊蒸,易擴容的,方能支持數(shù)據(jù)報表業(yè)務(wù)悯搔。
主要特點
- 絕大多數(shù)請求是以讀為主
- 真正的面向列的DBMS
- 實時數(shù)據(jù)更新
- SQL語法支持
- 多核并行處理
- 數(shù)據(jù)高效壓縮
- 分布式處理
- 數(shù)據(jù)復制完整性
- 豐富的索引
- 數(shù)據(jù)剪枝能力比較強
- 集群式管理
- 可直接讀取MySQL數(shù)據(jù)
- 適合于在線實時查詢
- 支持近似預估計算
適用場景
- 海量數(shù)據(jù)分析
- 數(shù)據(jù)報表
- 監(jiān)控
I/O情況
- 分析查詢時骑丸,只需要讀取少量的列。在面向列的數(shù)據(jù)庫中妒貌,您只能讀取所需的數(shù)據(jù)通危。例如,如果您需要20列中的5列灌曙,則I/O減少4倍+-菊碟。
- 數(shù)據(jù)是以數(shù)據(jù)包形式讀取,因此壓縮比較容易在刺,這進一步減少了I/O量逆害。
- 由于減少的I/O头镊,更多的數(shù)據(jù)適合在系統(tǒng)緩存中。
測試結(jié)論
提前批量導入抽樣的6億+廣告數(shù)據(jù)魄幕,連續(xù)一年日期用于用例測試相艇。
ClickHouse批量導入(集群多副本,Distributed表引擎纯陨,表結(jié)構(gòu)存儲于Zookeeper坛芽,INSERT INTO tb FORMAT TSV方式)數(shù)據(jù)15~120s/天。天級別生產(chǎn)數(shù)據(jù)滿足性能需要翼抠,另外咙轩、程序?qū)崿F(xiàn)寫入速度為:50000-230000/s。
Druid構(gòu)建一天的數(shù)據(jù)(受HDFS集群負載影響)30m+/天机久,天級別生產(chǎn)數(shù)據(jù)勉強可以臭墨。如果數(shù)據(jù)需要回溯,簡直是一種災難膘盖!
ClickHouse測試表現(xiàn):
測試數(shù)據(jù)總量:
SELECT count(*) FROM tb;
┌───count()─┐
│ 600009888 │
└───────────┘
1 rows in set. Elapsed: 0.003 sec.
查詢某個用戶的下物料總數(shù):
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 │ 首頁官網(wǎng) │ 37248919 │ 234492 │ 70347.60000 │
│ 3145298302 │ PC超億12_精確 │ 26186326337 │ 網(wǎng)站大全 │ 6206134 │ 104139 │ 31241.70000 │
│ 3145298302 │ PC超億12_精確 │ 24816548095 │ 板 │ 1457180 │ 93951 │ 28185.30000 │
│ 3145298302 │ PC超億12_精確 │ 26107100801 │ 圖 │ 1896121 │ 84312 │ 25293.60000 │
│ 3145298302 │ PC超億12_精確 │ 26834629020 │ 官網(wǎng) │ 487345 │ 61395 │ 21226.10000 │
│ 3145298302 │ PC超億12_精確 │ 26196959633 │ 漫畫 │ 1480118 │ 25444 │ 15834.42000 │
│ 3145298302 │ PC超億12_精確 │ 26186329636 │ 聯(lián)盟 │ 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 │ 閱讀網(wǎng) │ 2535672 │ 28294 │ 8488.20000 │
│ 3145298302 │ PC超億12_精確 │ 26712075029 │ 查詢網(wǎng) │ 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更貼近于目前的數(shù)據(jù)業(yè)務(wù)胧弛,性能表現(xiàn)上更有優(yōu)勢,批量生產(chǎn)數(shù)據(jù)時速度最快侠畔。