ClickHouse 在廣告系統場景中的實踐

目錄

前言

需求分析

主要特點

適用場景

I/O情況

測試結論


前言

隨着數據量的增長,傳統DB已經無法滿足實時聚合分組排序分析需求,目前比較流行日OLAP系統有:Presto,Druid,Kylin,TiFlash,ClickHouse等,對現有流行OLAP進行調研和實驗,ClickHouse能夠解決業務的相似問題。

需求分析

廣告業務數據分析維度較多,廣告維度和時間維度組合查詢條件較爲複雜,查詢時間跨度大,需要穩定,快速返回查詢結果給客戶。業務難點當數據量和計算複雜度增加後,響應時間會逐漸變慢,從毫秒級上升到秒級,甚至到分鐘級

從需求上面我們可以看出,需要穩定的,基於SQL的,足夠快的引擎,回溯數據方便快速,易擴容的,方能支持數據報表業務。

主要特點

  • 絕大多數請求是以讀爲主
  • 真正的面向列的DBMS
  • 實時數據更新
  • SQL語法支持
  • 多核並行處理
  • 數據高效壓縮
  • 分佈式處理
  • 數據複製完整性
  • 豐富的索引
  • 數據剪枝能力比較強
  • 集羣式管理
  • 可直接讀取MySQL數據
  • 適合於在線實時查詢
  • 支持近似預估計算

適用場景

  • 海量數據分析
  • 數據報表
  • 監控

I/O情況

  1. 分析查詢時,只需要讀取少量的列。在面向列的數據庫中,您只能讀取所需的數據。例如,如果您需要20列中的5列,則I/O減少4倍+-。
  2. 數據是以數據包形式讀取,因此壓縮比較容易,這進一步減少了I/O量。
  3. 由於減少的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小龍蝦”獨家授權,其他人未經允許不得轉載。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章