在 Apache Spark 中利用 HyperLogLog 函數(shù)實現(xiàn)高級分析
預(yù)聚合是高性能分析中的常用技術(shù),例如,每小時100億條的網(wǎng)站訪問數(shù)據(jù)可以通過對常用的查詢緯度進(jìn)行聚合,被降低到1000萬條訪問統(tǒng)計,這樣就能降低1000倍的數(shù)據(jù)處理量,從而在查詢時大幅減少計算量,提升響應(yīng)速度。更高層的聚合可以帶來進(jìn)一步的性能提升,例如,在時間維按天聚合,或者通過站點而不是URL聚合。
本文,我們將介紹?spark-alchemy
<https://yq.aliyun.com/go/articleRenderRedirect?url=https%3A%2F%2Fgithub.com%2Fswoop-inc%2Fspark-alchemy>
?這個開源庫中的?HyperLogLog 這一個高級功能,并且探討它是如何解決大數(shù)據(jù)中數(shù)據(jù)聚合的問題。首先,我們先討論一下這其中面臨的挑戰(zhàn)。
再聚合(Reaggregation)的挑戰(zhàn)
預(yù)聚合是數(shù)據(jù)分析領(lǐng)域的一個強大的技術(shù)手段,前提就是所要計算的指標(biāo)是可重聚合的。聚合操作,顧名思義,是滿足結(jié)合律的,所以很容易引入再聚合
熱門工具 換一換