大賽簡(jiǎn)介
目前互聯(lián)網(wǎng)領(lǐng)域有很多公司都在做APP領(lǐng)域的“用戶行為分析”產(chǎn)品,與Web時(shí)代的行為分析相類似,其目的都是幫助公司的運(yùn)營(yíng)、產(chǎn)品等部門更好地優(yōu)化自家產(chǎn)品,比如查看日活和月活,查看渠道來(lái)源,提高留存、轉(zhuǎn)化、活躍度等等。 在這個(gè)研發(fā)過程中,有個(gè)比較核心的需求,叫做“有序漏斗”?!坝行蚵┒贰眴栴}定義比較簡(jiǎn)單,但計(jì)算過程比較復(fù)雜。市面上現(xiàn)有的解決方案在數(shù)據(jù)量較大的情況下,計(jì)算效率較低。 為了更好的提升產(chǎn)品體驗(yàn),易觀決定將此需求作為比賽題目,廣招各路大牛,共同解決。大賽分為2組,開源組和商業(yè)組。開源組設(shè)置獎(jiǎng)金池和排行榜,商業(yè)組最后設(shè)置排行榜。
根據(jù)提供的應(yīng)用轉(zhuǎn)化和OLAP場(chǎng)景,給出具體的方案,先利用測(cè)試數(shù)據(jù)集在指定測(cè)試集群上運(yùn)行給出測(cè)試結(jié)果, 最終易觀會(huì)用實(shí)際測(cè)試數(shù)據(jù)在測(cè)試集群上跑整體數(shù)據(jù)并給出用時(shí)排名。
開源排行榜,第1名現(xiàn)金人民幣10萬(wàn)(稅前)獎(jiǎng)勵(lì), 前3名易觀證書
商業(yè)排行榜,前3名易觀證書

問題定義

漏斗分析是幫助運(yùn)營(yíng)人員分析一個(gè)多步驟過程中每一步的轉(zhuǎn)化與流失情況。
假設(shè)我們?cè)谫?gòu)買商品的過程中,需要觸發(fā)的事件包括 “啟動(dòng)”,“登陸”,“搜索商品”,“查看商品”,“生成訂單”等。 運(yùn)營(yíng)人員需要分析某段時(shí)間內(nèi)(比如2017年1月5號(hào)到2017年2月5號(hào)),在全部用戶中依次有序觸發(fā) “登陸”→“搜索商品”→“查看商品”→“生成訂單“ 事件的人群的轉(zhuǎn)化流失情況,即計(jì)算全部用戶中觸發(fā)了“登陸”事件的總?cè)藬?shù)A,A中觸發(fā)“搜索商品”事件的總?cè)藬?shù)B,B中觸發(fā)“查看商品”事件的總?cè)藬?shù)C,以及C中觸發(fā)“生成訂單”事件的總?cè)藬?shù)D。展現(xiàn)形式如下:
同時(shí),漏斗分析中包含“時(shí)間窗口”的概念,即需要保證所有事件在同一個(gè)窗口期內(nèi)發(fā)生。比如時(shí)間窗口為1天,用戶001觸發(fā)“搜索商品”事件的時(shí)間和觸發(fā)“登陸”事件的時(shí)間間隔在一天內(nèi),“搜索商品”事件才有效,否則視為無(wú)效。同理,用戶001觸發(fā)“查看商品”事件的時(shí)間和觸發(fā)“登陸”事件的時(shí)間間隔也必須在一天內(nèi)。時(shí)間窗口可以為1天、3天、7天或者1小時(shí)、6小時(shí)等任意長(zhǎng)時(shí)間段。 最后,在漏斗分析中,可以設(shè)置事件屬性。比如“搜索商品”事件,可以設(shè)置只計(jì)算“搜索商品”事件的屬性中“content”字段為“computer”的用戶。具體見詳細(xì)數(shù)據(jù)。
測(cè)試數(shù)據(jù)
鏈接:http://pan.baidu.com/s/1dEHodih密碼:z3m8
數(shù)據(jù)為文本文件格式,具體包含字段有:
(1)用戶ID,字符串類型
(2)時(shí)間戳,毫秒級(jí)別,Long類型
(3)事件ID,Int類型,包含10001到10010十個(gè)事件
(4)事件名稱,字符串類型,包含啟動(dòng)、登陸、搜索商品等十個(gè)事件
(5)事件屬性,Json串格式
(6)日期,字符串類型
數(shù)據(jù)總條數(shù)6億左右,日期范圍:2017/01/01到2017/02/28。

比賽評(píng)判說明
所有提交的方案都必須可行,開源組須公開思路及源代碼,商業(yè)組只須公開思路,具體使用哪些軟件可自行設(shè)定。 評(píng)委會(huì)隨機(jī)設(shè)定漏斗需求,所有參賽方案根據(jù)具體需求計(jì)算結(jié)果,在結(jié)果準(zhǔn)確的基礎(chǔ)上,耗時(shí)最少者獲勝。漏斗需求舉例如下:
(1)計(jì)算2017年1月份中,依次有序觸發(fā)“搜索商品”、“查看商品”、“生成訂單”的用戶轉(zhuǎn)化情況,且時(shí)間窗口為1天。
(2)計(jì)算2017年1月和2月份中,依次有序觸發(fā)“登陸”、“搜索商品”、“查看商品”、“生成訂單”、“訂單付款”的用戶轉(zhuǎn)化情況,且時(shí)間窗口為7天,“搜索商品”事件的content屬性為Apple,“瀏覽商品”事件的price屬性大于5000。

目前通用算法與實(shí)例

目前通用60分的算法如下,給各位參賽者做參考,同時(shí)源代碼稍后公布,大家可以基于這個(gè)算法或者自建更好的算法優(yōu)化。
(1)底層存儲(chǔ)用HDFS
(2)建立Hive表,并以應(yīng)用標(biāo)識(shí)、日期、事件名稱為分區(qū)
(3)查詢用presto,并自定義UDAF,或者利用Spark core自定義相同邏輯
硬件系統(tǒng)配置
centos7、16核|16G內(nèi)存、SSD數(shù)據(jù)盤300G的ucloud云主機(jī)4臺(tái)
目前易觀在以上配置的4臺(tái)機(jī)器上測(cè)試漏斗耗時(shí)統(tǒng)計(jì)如下:
1、查詢2017年1月份,時(shí)間窗口為7天,事件順序?yàn)?0001、10004、10008的漏斗,結(jié)果為[3999974, 3995900, 3608934],24秒
2、查詢2017年1月份,時(shí)間窗口為3天,事件順序?yàn)?0004、10008、10010的漏斗,結(jié)果為[3999422,3573367,697506],13秒
3、查詢2017年1月份,時(shí)間窗口為3天,事件順序?yàn)?0004、10007、10009、10010,并且10004事件的brand屬性為’Apple’的漏斗,結(jié)果為[3639301, 2449480, 559517, 35795],13秒
合作媒體








賽事咨詢/合作:sushuai@analysys.com.cn