ClickHouse 在广告系统场景中的实践
目錄
前言
需求分析
主要特點(diǎn)
適用場景
I/O情況
測試結(jié)論
前言
隨著數(shù)據(jù)量的增長,傳統(tǒng)DB已經(jīng)無法滿足實(shí)時(shí)聚合分組排序分析需求,目前比較流行日OLAP系統(tǒng)有:Presto,Druid,Kylin,TiFlash,ClickHouse等,對(duì)現(xiàn)有流行OLAP進(jìn)行調(diào)研和實(shí)驗(yàn),ClickHouse能夠解決業(yè)務(wù)的相似問題。
需求分析
廣告業(yè)務(wù)數(shù)據(jù)分析維度較多,廣告維度和時(shí)間維度組合查詢條件較為復(fù)雜,查詢時(shí)間跨度大,需要穩(wěn)定,快速返回查詢結(jié)果給客戶。業(yè)務(wù)難點(diǎn):當(dāng)數(shù)據(jù)量和計(jì)算復(fù)雜度增加后,響應(yīng)時(shí)間會(huì)逐漸變慢,從毫秒級(jí)上升到秒級(jí),甚至到分鐘級(jí)。
從需求上面我們可以看出,需要穩(wěn)定的,基于SQL的,足夠快的引擎,回溯數(shù)據(jù)方便快速,易擴(kuò)容的,方能支持?jǐn)?shù)據(jù)報(bào)表業(yè)務(wù)。
主要特點(diǎn)
- 絕大多數(shù)請求是以讀為主
- 真正的面向列的DBMS
- 實(shí)時(shí)數(shù)據(jù)更新
- SQL語法支持
- 多核并行處理
- 數(shù)據(jù)高效壓縮
- 分布式處理
- 數(shù)據(jù)復(fù)制完整性
- 豐富的索引
- 數(shù)據(jù)剪枝能力比較強(qiáng)
- 集群式管理
- 可直接讀取MySQL數(shù)據(jù)
- 適合于在線實(shí)時(shí)查詢
- 支持近似預(yù)估計(jì)算
適用場景
- 海量數(shù)據(jù)分析
- 數(shù)據(jù)報(bào)表
- 監(jiān)控
I/O情況
測試結(jié)論
提前批量導(dǎo)入抽樣的6億+廣告數(shù)據(jù),連續(xù)一年日期用于用例測試。
ClickHouse批量導(dǎo)入(集群多副本,Distributed表引擎,表結(jié)構(gòu)存儲(chǔ)于Zookeeper,INSERT INTO tb FORMAT TSV方式)數(shù)據(jù)15~120s/天。天級(jí)別生產(chǎn)數(shù)據(jù)滿足性能需要,另外、程序?qū)崿F(xiàn)寫入速度為:50000-230000/s。
Druid構(gòu)建一天的數(shù)據(jù)(受HDFS集群負(fù)載影響)30m+/天,天級(jí)別生產(chǎn)數(shù)據(jù)勉強(qiáng)可以。如果數(shù)據(jù)需要回溯,簡直是一種災(zāi)難!
?
ClickHouse測試表現(xiàn):
測試數(shù)據(jù)總量:
SELECT count(*) FROM tb;┌───count()─┐ │ 600009888 │ └───────────┘1 rows in set. Elapsed: 0.003 sec.查詢某個(gè)用戶的下物料總數(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.)?查詢某個(gè)用戶下詞列表:
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 │ 單號(hào)查詢 │ 2003334 │ 16252 │ 4875.60000 │ │ 3145298302 │ PC超億12_精確 │ 26776266759 │ 房屋租賃 │ 380903 │ 16219 │ 4865.70000 │ │ 3145298302 │ PC超億12_精確 │ 26776381177 │ 快遞單號(hào) │ 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ù)時(shí)速度最快。
該文章公眾號(hào):“sir小龍蝦”獨(dú)家授權(quán),其他人未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的ClickHouse 在广告系统场景中的实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ClickHouse 详细集群部署方案
- 下一篇: Drupal 覆写系统样式