聲明:本文的原文是來自Hbase技術社區的一個PPT分享,個人做了整理和提煉。
大家注意哈,這種會議PPT類的東西能學習到的更多的是技術方案和他人在實踐過程中的經驗。希望對大家有幫助。
背景
快手每天產生數百億用戶特徵數據,分析師需要在跨30-90天的數千億特徵數據中,任意選擇多維度組合(如:城市=北京&性別=男),秒級分析用戶行爲。針對這一需求, 快手基於HBase自主研發了支持bitmap轉化、存儲、索引、快速計算的分析服務--BitBase,併成功應用於留存分析、用戶增長、廣告營銷、ABTest 等多個業務場景。
業務需求及挑戰
快手在實際業務中遇到的需求,需要用的業務場景:在千億級別的日誌中,選擇任意的維度,計算7-90日用戶留存,秒級返回。
技術選型
爲此,快手調研了包含Hive、ES、clickhouse在內的多種技術方案。
技術方案
最後形成了基於bitmap和Hbase的BitBase解決方案。
對bitmap不熟悉的同學看這裏:https://www.jianshu.com/p/bf9dbbc147ed
所謂的Bit-map就是用一個bit位來標記某個元素對應的Value, 而Key即是該元素。由於採用了Bit爲單位來存儲數據,可以大大節省存儲空間。
多維計算最後被設計成在bitmap之間做與、或、非、異或、count、list計算。
整個BitBase
整體架構:
存儲模塊:
這裏所有table的原信息會存在一個bitmap中,具體數據存在不同的bitmap中,bitmap的位數根據表數據量大小進行確定。
計算模塊:
deviceId問題
在實際問題中,複雜的deviceId會被轉換成一個index(long)值。並且需要有以下特性:連續、一致、反解、轉換速度快。
連續、一致、反解技術方案
如何實現快速轉化
業務效果
在實踐延遲方面,90天留存的時間也可以在10秒內返回。
服務現狀:
未來規劃
未來規劃包括:
- 離線bitmap能夠在5min導入
- SQL支持
- 開源
聲明:本號所有文章除特殊註明,都爲原創,公衆號讀者擁有優先閱讀權,未經作者本人允許不得轉載,否則追究侵權責任。
關注我的公衆號,後臺回覆【JAVAPDF】獲取200頁面試題!
5萬人關注的大數據成神之路,不來了解一下嗎?
5萬人關注的大數據成神之路,真的不來了解一下嗎?
5萬人關注的大數據成神之路,確定真的不來了解一下嗎?