數(shù)倉分層能減少重復(fù)計(jì)算,為啥能減少?如何減少?這篇文章包懂!
數(shù)倉分層是否可以幫忙減少重復(fù)計(jì)算?關(guān)于這個(gè)問題,這篇文章的作者嘗試用生活化案例,結(jié)合粒度的概念,來進(jìn)行問題解答。一起來看看吧,或許會(huì)對想了解數(shù)倉分層的你有所啟發(fā)。
很多時(shí)候,看一些數(shù)據(jù)領(lǐng)域的文章,說到為什么做數(shù)據(jù)倉庫、數(shù)據(jù)倉庫要分層,我們經(jīng)常會(huì)看到一些結(jié)論:因?yàn)橛蠥BCD……等等理由,比如降低開發(fā)成本、減少重復(fù)計(jì)算等等好處。
然后,多數(shù)人就記住了ABCD。但是,每每被問起來,為什么,有什么案例,你是怎么理解的,就被問住,傻眼了。
概念套概念,沒意思,不如返璞歸真,從生活案例重新理解起~
一、從統(tǒng)計(jì)班級(jí)人數(shù)開始
本文將用生活化案例,結(jié)合粒度的概念,幫你理解常說的減少重復(fù)計(jì)算。
假如,你帶一個(gè)班級(jí),你是班主任,你上第一節(jié)課。但你不知道班上到了多少人,于是,讓同學(xué)們報(bào)數(shù),班上有 30 人,從 1 報(bào)到 30,每個(gè)人報(bào)一次數(shù),一共30 次。
第二節(jié)課,來了科任老師 A, 他也想知道班級(jí)人數(shù),于是也讓同學(xué)們報(bào)數(shù),從1 報(bào)到 30,又是 30 次。
第三節(jié)課,來了科任老師 B,他也想知道人數(shù),于是…
第四節(jié)課,來了科任老師 C,他也想… 好,一次又一次地報(bào)數(shù),同學(xué)們煩了。于是有個(gè)聰明人記錄下來,寫到黑板上。
第五節(jié)課,等到科任老師 E 面帶微笑地走進(jìn)教室,問班里一共多少人,笑著說,同學(xué)們,要不我們來報(bào)數(shù)吧?
孩子們異口同聲地對老師說:老師,請看黑板!
你看,把結(jié)果記錄和存儲(chǔ)下來,就不用再從 1 報(bào)到 30才能知道結(jié)果了。
這就是減少重復(fù)計(jì)算了!
二、思考思考粒度
我們再看看粒度。
關(guān)于粒度,我曾在數(shù)據(jù)倉庫的文章里講過,可以回看下:數(shù)倉避坑-整明白懂粒度
按照報(bào)數(shù)規(guī)則,一個(gè)人只能往另一個(gè)人的報(bào)數(shù)上加一,班級(jí)人數(shù)這個(gè)數(shù)字每加一,背后對應(yīng)的就是一個(gè)新的人。
人不可再分,最小就是1,不存在0.5個(gè)人,班級(jí)人數(shù)這個(gè)數(shù)字的最小粒度,就是人。
粗一點(diǎn)的粒度是什么?以班級(jí)為粒度單位報(bào)人數(shù),可以只用報(bào)一次。
粒度還可以是組,班級(jí)里面,我們可以按照不同的方式給同學(xué)們分成不同的組。常見的,按照列分組。
其實(shí),這種分組,是按照同學(xué)們所坐位置的物理空間來劃分的。
我們還可以劃分其他的組,比如,按照出生月份,住的小區(qū),興趣愛好,等等進(jìn)行分組。
當(dāng)我們想知道,某個(gè)組有多少人,并不需要每次都從最小粒度去統(tǒng)計(jì)人數(shù),都去報(bào)數(shù),我們都可以把組,這個(gè)相對人來說,更粗的粒度的數(shù)字統(tǒng)計(jì)出來,記錄下來, 下次再有類似的提問/請求,直接拿粗粒度的統(tǒng)計(jì)結(jié)果,也就是直接回答,這個(gè)組有多少人。
這就是,減少重復(fù)計(jì)算的生活化案例,是不是比構(gòu)建指標(biāo)體系、搭建中臺(tái)、減少重復(fù)開發(fā)、重復(fù)計(jì)算,要具象多啦~
三、當(dāng)問題開始復(fù)雜,分層的好處出現(xiàn)
剛剛,我們解決了班級(jí)粒度的事情,現(xiàn)在,你是校長了。
你的管理范圍變大了,至少,統(tǒng)計(jì)人數(shù),你先核心是關(guān)注更大層面的統(tǒng)計(jì)數(shù)據(jù),比如全校人數(shù),各年級(jí)人數(shù),然后當(dāng)有一些班級(jí)人數(shù)分配不均勻的時(shí)候,再細(xì)致看某個(gè)班的人數(shù)。
有了班級(jí)、年級(jí)人數(shù),那么全校人數(shù)就好辦啦~層層往上匯總累加就好了,總不至于全校開大會(huì),從頭報(bào)到尾吧。
管理的場景,問題是多如牛毛的,不同場景,所需要的統(tǒng)計(jì)數(shù)據(jù)、分組,都不盡相同。
在招生期間,你要知道每個(gè)學(xué)區(qū)給定的學(xué)生名額數(shù),還有一些特長生的名額;
在日常管理期間,你要知道不同年級(jí)學(xué)生出勤、上課的情況。
更重要的是,你得了解學(xué)生的成績情況。不同年級(jí)、不同學(xué)科、不同類型的學(xué)生,絕對分?jǐn)?shù),分?jǐn)?shù)的變化趨勢。
雖然咱們搞素質(zhì)教育,不對外暴露這些信息,避免攀比和比較,但是最終落到學(xué)校的升學(xué)人數(shù)、升學(xué)率的時(shí)候,這些過程性的數(shù)據(jù)又是我們不得不關(guān)注的。
所謂的分層,是分而治之,分而算之。
光講好處,問題就沒有了嗎?肯定是有的,比如,我們要額外地記錄一些數(shù)據(jù),要保證這些分而算的數(shù)據(jù)的準(zhǔn)確性,相當(dāng)于是信任這個(gè)分層數(shù)據(jù)的提供者。
整個(gè)過程中,還要從分析的角度出發(fā),去設(shè)計(jì)很多分層里面的相關(guān)維度、共性維度。關(guān)于維度,可以看這篇:數(shù)倉避坑-想清楚維度
四、企業(yè)里的重復(fù)計(jì)算
回到企業(yè)的環(huán)境里,我們會(huì)對用戶的觀看圖片、看視頻、看直播的行為事件進(jìn)行統(tǒng)計(jì)、計(jì)數(shù),看了幾次,看了多長時(shí)間。
我們也非常關(guān)心用戶看完這些,到底花了多少錢,送了多少個(gè)禮物,買了多少直播間里的商品。
我們會(huì)從各種角度對這些過程行為、消費(fèi)結(jié)果進(jìn)行拆解和統(tǒng)計(jì)。
于是乎,企業(yè)里會(huì)有非常多需要統(tǒng)計(jì)、計(jì)數(shù)的數(shù)據(jù)。
比如,埋點(diǎn)會(huì)上報(bào)某個(gè)用戶在某市某刻觀看了A視頻,用的手機(jī)是蘋果,操作系統(tǒng)的版本是IOS7.x,用戶所在的IP解析出來是在一線城市。
觀看完之后,進(jìn)入到了講某個(gè)商品的直播間B,系統(tǒng)也會(huì)記錄,在直播間B下單購買了商品C,金額是99,購買的個(gè)數(shù)是4個(gè)。
當(dāng)我們要去統(tǒng)計(jì),一線城市的用戶觀看A圖片的次數(shù),購買商品C的數(shù)量和金額的時(shí)候。
我們會(huì)跟之前統(tǒng)計(jì)班級(jí)人數(shù)、分組人數(shù)一樣,要統(tǒng)計(jì)這些結(jié)果。
我們可以提前把一些結(jié)果提前記錄下來,然后每次其他人要查詢相同信息的時(shí)候,就不用每次都要「報(bào)數(shù)」了~
比如,今年小米發(fā)的雙十一戰(zhàn)報(bào)。
可能很多人都想要這個(gè)結(jié)果,用于宣傳或者分析,那我們直接把這個(gè)數(shù)據(jù)存下來,當(dāng)別人要的時(shí)候,直接拿出來就好了(圖片里面,還備注了數(shù)據(jù)的統(tǒng)計(jì)口徑)。
具體的一些后臺(tái)報(bào)表,我就不去舉例了,大家體會(huì)到重復(fù)計(jì)算到底是怎么回事,就可以了。
關(guān)于這些數(shù)據(jù)是怎么存儲(chǔ)的,可以了解數(shù)據(jù)倉庫維度模型:數(shù)倉避坑-搞懂維度模型
專欄作家
Lee,公眾號(hào):數(shù)據(jù)產(chǎn)品小lee,人人都是產(chǎn)品經(jīng)理專欄作家。關(guān)注直播、短視頻和文娛領(lǐng)域、擅長數(shù)據(jù)架構(gòu)、CDP及數(shù)據(jù)治理相關(guān)工作。
本文原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Unsplash,基于 CC0 協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。
- 目前還沒評(píng)論,等你發(fā)揮!