數(shù)倉分層能減少重復(fù)計算,為啥能減少?如何減少?這篇文章包懂!

0 評論 1558 瀏覽 3 收藏 9 分鐘

數(shù)倉分層是否可以幫忙減少重復(fù)計算?關(guān)于這個問題,這篇文章的作者嘗試用生活化案例,結(jié)合粒度的概念,來進行問題解答。一起來看看吧,或許會對想了解數(shù)倉分層的你有所啟發(fā)。

很多時候,看一些數(shù)據(jù)領(lǐng)域的文章,說到為什么做數(shù)據(jù)倉庫、數(shù)據(jù)倉庫要分層,我們經(jīng)常會看到一些結(jié)論:因為有ABCD……等等理由,比如降低開發(fā)成本、減少重復(fù)計算等等好處。

然后,多數(shù)人就記住了ABCD。但是,每每被問起來,為什么,有什么案例,你是怎么理解的,就被問住,傻眼了。

概念套概念,沒意思,不如返璞歸真,從生活案例重新理解起~

一、從統(tǒng)計班級人數(shù)開始

本文將用生活化案例,結(jié)合粒度的概念,幫你理解常說的減少重復(fù)計算。

假如,你帶一個班級,你是班主任,你上第一節(jié)課。但你不知道班上到了多少人,于是,讓同學(xué)們報數(shù),班上有 30 人,從 1 報到 30,每個人報一次數(shù),一共30 次。

第二節(jié)課,來了科任老師 A, 他也想知道班級人數(shù),于是也讓同學(xué)們報數(shù),從1 報到 30,又是 30 次。

第三節(jié)課,來了科任老師 B,他也想知道人數(shù),于是…

第四節(jié)課,來了科任老師 C,他也想… 好,一次又一次地報數(shù),同學(xué)們煩了。于是有個聰明人記錄下來,寫到黑板上。

第五節(jié)課,等到科任老師 E 面帶微笑地走進教室,問班里一共多少人,笑著說,同學(xué)們,要不我們來報數(shù)吧?

孩子們異口同聲地對老師說:老師,請看黑板!

你看,把結(jié)果記錄和存儲下來,就不用再從 1 報到 30才能知道結(jié)果了。

這就是減少重復(fù)計算了!

二、思考思考粒度

我們再看看粒度。

關(guān)于粒度,我曾在數(shù)據(jù)倉庫的文章里講過,可以回看下:數(shù)倉避坑-整明白懂粒度

按照報數(shù)規(guī)則,一個人只能往另一個人的報數(shù)上加一,班級人數(shù)這個數(shù)字每加一,背后對應(yīng)的就是一個新的人。

人不可再分,最小就是1,不存在0.5個人,班級人數(shù)這個數(shù)字的最小粒度,就是人。

粗一點的粒度是什么?以班級為粒度單位報人數(shù),可以只用報一次。

粒度還可以是組,班級里面,我們可以按照不同的方式給同學(xué)們分成不同的組。常見的,按照列分組。

其實,這種分組,是按照同學(xué)們所坐位置的物理空間來劃分的。

我們還可以劃分其他的組,比如,按照出生月份,住的小區(qū),興趣愛好,等等進行分組。

當(dāng)我們想知道,某個組有多少人,并不需要每次都從最小粒度去統(tǒng)計人數(shù),都去報數(shù),我們都可以把組,這個相對人來說,更粗的粒度的數(shù)字統(tǒng)計出來,記錄下來, 下次再有類似的提問/請求,直接拿粗粒度的統(tǒng)計結(jié)果,也就是直接回答,這個組有多少人。

這就是,減少重復(fù)計算的生活化案例,是不是比構(gòu)建指標(biāo)體系、搭建中臺、減少重復(fù)開發(fā)、重復(fù)計算,要具象多啦~

三、當(dāng)問題開始復(fù)雜,分層的好處出現(xiàn)

剛剛,我們解決了班級粒度的事情,現(xiàn)在,你是校長了。

你的管理范圍變大了,至少,統(tǒng)計人數(shù),你先核心是關(guān)注更大層面的統(tǒng)計數(shù)據(jù),比如全校人數(shù),各年級人數(shù),然后當(dāng)有一些班級人數(shù)分配不均勻的時候,再細致看某個班的人數(shù)。

有了班級、年級人數(shù),那么全校人數(shù)就好辦啦~層層往上匯總累加就好了,總不至于全校開大會,從頭報到尾吧。

管理的場景,問題是多如牛毛的,不同場景,所需要的統(tǒng)計數(shù)據(jù)、分組,都不盡相同。

在招生期間,你要知道每個學(xué)區(qū)給定的學(xué)生名額數(shù),還有一些特長生的名額;

在日常管理期間,你要知道不同年級學(xué)生出勤、上課的情況。

更重要的是,你得了解學(xué)生的成績情況。不同年級、不同學(xué)科、不同類型的學(xué)生,絕對分數(shù),分數(shù)的變化趨勢。

雖然咱們搞素質(zhì)教育,不對外暴露這些信息,避免攀比和比較,但是最終落到學(xué)校的升學(xué)人數(shù)、升學(xué)率的時候,這些過程性的數(shù)據(jù)又是我們不得不關(guān)注的。

所謂的分層,是分而治之,分而算之。

光講好處,問題就沒有了嗎?肯定是有的,比如,我們要額外地記錄一些數(shù)據(jù),要保證這些分而算的數(shù)據(jù)的準(zhǔn)確性,相當(dāng)于是信任這個分層數(shù)據(jù)的提供者。

整個過程中,還要從分析的角度出發(fā),去設(shè)計很多分層里面的相關(guān)維度、共性維度。關(guān)于維度,可以看這篇:數(shù)倉避坑-想清楚維度

四、企業(yè)里的重復(fù)計算

回到企業(yè)的環(huán)境里,我們會對用戶的觀看圖片、看視頻、看直播的行為事件進行統(tǒng)計、計數(shù),看了幾次,看了多長時間。

我們也非常關(guān)心用戶看完這些,到底花了多少錢,送了多少個禮物,買了多少直播間里的商品。

我們會從各種角度對這些過程行為、消費結(jié)果進行拆解和統(tǒng)計。

于是乎,企業(yè)里會有非常多需要統(tǒng)計、計數(shù)的數(shù)據(jù)。

比如,埋點會上報某個用戶在某市某刻觀看了A視頻,用的手機是蘋果,操作系統(tǒng)的版本是IOS7.x,用戶所在的IP解析出來是在一線城市。

觀看完之后,進入到了講某個商品的直播間B,系統(tǒng)也會記錄,在直播間B下單購買了商品C,金額是99,購買的個數(shù)是4個。

當(dāng)我們要去統(tǒng)計,一線城市的用戶觀看A圖片的次數(shù),購買商品C的數(shù)量和金額的時候。

我們會跟之前統(tǒng)計班級人數(shù)、分組人數(shù)一樣,要統(tǒng)計這些結(jié)果。

我們可以提前把一些結(jié)果提前記錄下來,然后每次其他人要查詢相同信息的時候,就不用每次都要「報數(shù)」了~

比如,今年小米發(fā)的雙十一戰(zhàn)報。

可能很多人都想要這個結(jié)果,用于宣傳或者分析,那我們直接把這個數(shù)據(jù)存下來,當(dāng)別人要的時候,直接拿出來就好了(圖片里面,還備注了數(shù)據(jù)的統(tǒng)計口徑)。

具體的一些后臺報表,我就不去舉例了,大家體會到重復(fù)計算到底是怎么回事,就可以了。

關(guān)于這些數(shù)據(jù)是怎么存儲的,可以了解數(shù)據(jù)倉庫維度模型:數(shù)倉避坑-搞懂維度模型

專欄作家

Lee,公眾號:數(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é)議

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!