Flink實(shí)時(shí)計(jì)算指標(biāo)對(duì)數(shù)方案

對(duì)于一個(gè)實(shí)時(shí)數(shù)據(jù)產(chǎn)品人員、或者開發(fā)人員來(lái)說,產(chǎn)品上展示的實(shí)時(shí)數(shù)據(jù),pv、uv、gmv等等,怎么知道這些數(shù)據(jù)是不是正確的呢?當(dāng)其他的小組開發(fā)的產(chǎn)品的數(shù)據(jù)(或者其他的數(shù)據(jù)提供方)又是另外一個(gè)數(shù)字,那么究竟該如何判斷自己的數(shù)據(jù)還是別人的數(shù)據(jù)是正確的呢?這就需要一套實(shí)時(shí)數(shù)據(jù)對(duì)數(shù)方案,本文主要從背景、實(shí)時(shí)數(shù)據(jù)計(jì)算方案、對(duì)數(shù)方案、總結(jié)四方面來(lái)介紹,說服老板或者讓其他人相信自己的數(shù)據(jù)是準(zhǔn)確的、無(wú)誤的。 一、背景: 相信做過實(shí)時(shí)數(shù)據(jù)統(tǒng)計(jì)的朋友,肯定會(huì)遇到一個(gè)問題,怎么知道自己算的數(shù)據(jù)是不是對(duì)的呢?比如:pv、uv、dau、gmv、訂單等等統(tǒng)計(jì)數(shù)據(jù)。 二、實(shí)時(shí)數(shù)據(jù)統(tǒng)計(jì)方案 上述流程圖描述了一般的實(shí)時(shí)數(shù)據(jù)計(jì)算流程,接收日志或者M(jìn)Q到kafka,用Flink進(jìn)行處理和計(jì)算,將最終計(jì)算結(jié)果存儲(chǔ)在redis中,最后查詢出redis中的數(shù)據(jù)給大屏、看板等展示。 但是在整個(gè)過程中,不得不思考一下,最后計(jì)算出來(lái)的存儲(chǔ)在redis中指標(biāo)數(shù)據(jù)是不是正確的呢?怎么能給用戶或者老板一個(gè)信服的理由呢?相信這個(gè)問題一定是困擾所有做實(shí)時(shí)數(shù)據(jù)開發(fā)的朋友。 比如說:離線的同事說離線昨天的數(shù)據(jù)訂單是1w,實(shí)時(shí)昨天的數(shù)據(jù)確實(shí)2w,存在這么大的誤差,到底是實(shí)時(shí)計(jì)算出問題了,還是離線出問題了呢? 三、對(duì)數(shù)解決方案 為了方便理解,還是拿上面離線和實(shí)時(shí)的下單金額為例。 某電商雙11實(shí)時(shí)數(shù)據(jù)大屏最終展示的GMV是200億,小李當(dāng)晚匯報(bào)給老板,雙11GMV是200億。第二天晨會(huì),離線的同事小王匯報(bào)給老板,雙11GMV是300億。同時(shí)又有一個(gè)數(shù)據(jù)部門的同事小趙說,我們這邊計(jì)算的是192億。老板聽到這么多數(shù)據(jù),一瞬間就不知道該相信誰(shuí)的呢?然后就說,小李、小王你們兩數(shù)據(jù)差距大,你們對(duì)一下吧,匯報(bào)我一個(gè)最終結(jié)果。 于是,小王看著自己數(shù)據(jù)告訴小李:某人在我們平臺(tái)下了30個(gè)iphone x合計(jì)多少錢、某人又在我們這里買了10臺(tái)聯(lián)想筆記本電腦合計(jì)多少錢 ....... 小李看著最終展示在大屏上的200億GMV,瞬間就蒙了,心里想道:我這里不知道誰(shuí)買了多少個(gè)iphone呀,也不知道他們花了多少錢呀? 于是小李回去請(qǐng)教了自己的導(dǎo)師,導(dǎo)師說你把上面的實(shí)時(shí)寬表數(shù)據(jù)存儲(chǔ)下來(lái),就可以和他們對(duì)了,就知道誰(shuí)買了多少個(gè)iphone x了,誰(shuí)有買了多少個(gè)聯(lián)想電腦了。 小李想了想,按照導(dǎo)師的思路開發(fā)如下的寬表加工方案: (1)用Flink將實(shí)時(shí)寬表數(shù)據(jù)存儲(chǔ)至elasticsearch 將加工的寬表數(shù)據(jù)通過Flink寫入es,這樣可以得到所有數(shù)據(jù)的明細(xì)數(shù)據(jù),拿著明細(xì)和其他數(shù)據(jù)提供方進(jìn)行比對(duì)即可。 (2)用Flink實(shí)時(shí)寬表數(shù)據(jù)存儲(chǔ)至HDFS,通過Hive進(jìn)行查詢 但是有一些朋友可能會(huì)說,es對(duì)應(yīng)的sql count、group by語(yǔ)法操作,什么叫軟文營(yíng)銷?非常復(fù)雜,況且也不是用來(lái)做線上服務(wù),而只是用與對(duì)數(shù),所以時(shí)效性也不需要完全考慮,這樣的話,就可以考慮將數(shù)據(jù)回寫至HDFS了。 因此可以考慮采用下圖的方案,將加工的寬表通過Flink寫入到HDFS,然后新建hive表進(jìn)行關(guān)聯(lián)HDFS數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢。 寫HDFS與es相比,存在非常明顯的優(yōu)點(diǎn): a.學(xué)習(xí)成本低、會(huì)sql的基本就可以了,而不需要重新學(xué)習(xí)es負(fù)責(zé)的count、group by 等語(yǔ)法操作 b.可以非常方便地和離線表數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢(大多數(shù)情況下都是和離線數(shù)據(jù)比對(duì)),兩張Hive表的關(guān)聯(lián)查詢,容易找出兩張表的數(shù)據(jù)差異 最終小李拿著自己存儲(chǔ)的明細(xì)數(shù)據(jù)和小王對(duì)了一下,發(fā)現(xiàn)是小王的口徑不一樣,沒有排除一些預(yù)售訂單,最終小李將匯報(bào)給老板,得到了老板的嘉獎(jiǎng)。 四、總結(jié) 實(shí)時(shí)計(jì)算能提供給用戶查看當(dāng)前的實(shí)時(shí)統(tǒng)計(jì)數(shù)據(jù),但是數(shù)據(jù)的準(zhǔn)確性確實(shí)一個(gè)很大的問題,如何說服用戶或者領(lǐng)導(dǎo)數(shù)據(jù)計(jì)算是沒有問題的,就需要和其他的數(shù)據(jù)提供方進(jìn)行比對(duì)了。問題的關(guān)鍵就在于,只要有明細(xì)數(shù)據(jù),就可以和任意一方進(jìn)行比對(duì),畢竟有明細(xì)數(shù)據(jù)。不服?我們就對(duì)一對(duì)啊。 明細(xì)數(shù)據(jù)的存儲(chǔ)、設(shè)計(jì)也很有講究,可以和離線或者其他提供方的數(shù)據(jù)字段進(jìn)行對(duì)齊,這樣就非常方便進(jìn)行比對(duì)了,而采用hive這種方式又是最簡(jiǎn)便的方式了,畢竟大多數(shù)人都是會(huì)sql的,無(wú)論開發(fā)人員還是數(shù)據(jù)人員或者BI人員。

網(wǎng)頁(yè)標(biāo)題:Flink實(shí)時(shí)計(jì)算指標(biāo)對(duì)數(shù)方案
URL地址:http://www.muchs.cn/article38/sdoisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈網(wǎng)站排名、網(wǎng)站建設(shè)定制開發(fā)、微信公眾號(hào)、建站公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)