白話數(shù)據(jù)產(chǎn)品(一)——數(shù)據(jù)倉庫

14 評論 35967 瀏覽 276 收藏 7 分鐘

數(shù)據(jù)倉庫是存放收集來的數(shù)據(jù)的地方,數(shù)據(jù)倉庫的特征有按時抽取、分層存儲、切片存儲、抽建模業(yè)務等。

數(shù)據(jù)產(chǎn)品的工作比較雜,從數(shù)據(jù)倉庫建模,指標體系建立,到數(shù)據(jù)產(chǎn)品工具的設計,再到偶爾一些數(shù)據(jù)分析報告的撰寫,甚至一些機器學習的預測模型都要有所了解。大公司可能每個職能都有專門的崗位來負責,小公司的話可能真的要你一條龍了。

其實數(shù)據(jù)產(chǎn)品從頭到尾做的事情就是幫公司收集數(shù)據(jù)、存儲數(shù)據(jù)、呈現(xiàn)數(shù)據(jù)、預測數(shù)據(jù),拆分到具體的工作中,將會在下面介紹。

收集和存儲數(shù)據(jù):數(shù)據(jù)倉庫

數(shù)據(jù)倉庫是存放收集來的數(shù)據(jù)的地方,做數(shù)據(jù)分析現(xiàn)在一般盡量不在業(yè)務數(shù)據(jù)上直接取數(shù),因為對業(yè)務數(shù)據(jù)庫的壓力太大,影響線上業(yè)務的穩(wěn)定。

1. 數(shù)據(jù)收集的時間間隔

數(shù)據(jù)倉庫里的數(shù)據(jù)按照數(shù)據(jù)收集的時間間隔大致分為兩類:

  • 一類是可以進行離線處理的數(shù)據(jù),一般包括內(nèi)部業(yè)務數(shù)據(jù)庫及外部數(shù)據(jù)(比如:爬蟲或第三方API);
  • 一類是需要實時處理的數(shù)據(jù),比如:內(nèi)部業(yè)務日志數(shù)據(jù)。

對于第一類一般的處理多數(shù)要求在“天”級別,比如說:一天從業(yè)務數(shù)據(jù)庫更新一次數(shù)據(jù)就足夠了,一般采用MapReduce等批處理框架來處理數(shù)據(jù),批處理框架在進行大量數(shù)據(jù)的計算的時候有計算資源比較廉價等優(yōu)勢。

而第二類實時數(shù)據(jù)處理,需要采用一些流處理框架,例如:Storm、Spark等,來處理數(shù)據(jù),當業(yè)務發(fā)展到一定階段,業(yè)務人員對數(shù)據(jù)的實時性要求會越來越高,也就對大數(shù)據(jù)技術(shù)團隊提出了更高的要求,當然實時處理數(shù)據(jù)所需要付出的代價也是更高的。

我們要分辨清楚,哪些數(shù)據(jù)采用批處理就可以了,哪些數(shù)據(jù)是有實時處理的價值的,并不是說所有數(shù)據(jù)都實時處理就是更好,畢竟集群資源是有限的,要合理利用計算資源。

2. 數(shù)據(jù)的分層存儲

另外數(shù)據(jù)倉庫的數(shù)據(jù)存儲是分層級的,這個架構(gòu)一方面跟數(shù)據(jù)拉取方式有關(guān),一方面也是為了對數(shù)據(jù)進行層級的抽象處理。

一般來說數(shù)據(jù)倉庫會至少分為ODS、MID、DW三個層級,當然層級的名稱每個公司可能不同,這里主要是在作用上進行區(qū)分解釋。

  • ODS層存儲的是業(yè)務數(shù)據(jù)庫在一個時間范圍內(nèi)新增或更新的數(shù)據(jù),它的存儲是線性增長的,有數(shù)據(jù)發(fā)生變化,ODS才會存儲數(shù)據(jù)。
  • MID層是經(jīng)由ODS層數(shù)據(jù)計算得出的最新的完整版數(shù)據(jù),相當于是業(yè)務數(shù)據(jù)庫的一個拷貝,只不過是截止到某一個時間的。
  • DW層是對MID層進行業(yè)務模型的抽象之后的合并層,將一些冗余的庫表簡化,做成比較利于數(shù)據(jù)抽取的庫表。

因為MID層和DW層存儲的都是完整的數(shù)據(jù),業(yè)務數(shù)據(jù)庫數(shù)據(jù)會不斷增長,導致這兩個層級里的數(shù)據(jù)每個切片的數(shù)據(jù)都是在增長,相當于是指數(shù)增長。

3. 數(shù)據(jù)的切片存儲

數(shù)據(jù)庫的存儲是分時間戳的,相當于是把數(shù)據(jù)按照快照的方式存了n個版本,當你想追溯在某天某時間的數(shù)據(jù)的時候,就可以通過定位特定的時間戳,追溯到相關(guān)的數(shù)據(jù)。

這種設計避免了業(yè)務庫數(shù)據(jù)會不斷覆蓋的問題,相當于是在數(shù)據(jù)分析的時候加了一個時間維度,提升了一個維度,看問題解決問題的角度也就被升華了。

4. 數(shù)據(jù)倉庫建模

MID層向DW層抽象的過程,需要數(shù)據(jù)產(chǎn)品對業(yè)務庫表進行建模。首先要清楚了解,你所要進行抽象的業(yè)務系統(tǒng)是什么樣的(感覺數(shù)據(jù)產(chǎn)品好累,還要去了解別人的系統(tǒng)是怎么玩的╮(╯_╰)╭)。

比如:你所要負責的是A業(yè)務系統(tǒng)的DW設計,那么首先你要把A業(yè)務系統(tǒng)的系統(tǒng)邏輯搞清楚,然后它所涉及的庫表都了解清楚,包括業(yè)務本身的庫表以及它所依賴的中后臺系統(tǒng)的庫表,以及各個數(shù)據(jù)庫之間的關(guān)系是怎樣,比如:是一對一還是一對多,當前庫表是否是最細粒度的數(shù)據(jù)。

一般來說建模要做到模塊互相獨立,粒度統(tǒng)一。因為考慮到后期做指標和取數(shù)的方便,在不同粒度上都有表是比較好的。

比如:一個電商分期業(yè)務,可能在訂單粒度上才能取到放款等數(shù)據(jù),但是品類等維度又只能在商品粒度上取到(考慮到購物車,一個訂單可能對應多個商品),這時候就需要兩個粒度都建立對應的表才能滿足不同的取數(shù)需求。

 

作者:小九,一枚互金數(shù)據(jù)產(chǎn)品

本文由 @小九 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Pexels,基于 CC0 協(xié)議

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 怎么聯(lián)系你,加我q2244999284

    來自香港 回復
  2. 非常好,點個贊!最近剛接手廣告平臺的數(shù)據(jù)接入相關(guān)產(chǎn)品,看了一些SQL都沒有你說的清楚

    回復
  3. 有點偏技術(shù),好難懂,同產(chǎn)品崗??

    回復
  4. 大家期待已久的《數(shù)據(jù)產(chǎn)品經(jīng)理實戰(zhàn)訓練營》終于在起點學院(人人都是產(chǎn)品經(jīng)理旗下教育機構(gòu))上線啦!

    本課程非常適合新手數(shù)據(jù)產(chǎn)品經(jīng)理,或者想要轉(zhuǎn)崗的產(chǎn)品經(jīng)理、數(shù)據(jù)分析師、研發(fā)、產(chǎn)品運營等人群。

    課程會從基礎概念,到核心技能,再通過典型數(shù)據(jù)分析平臺的實戰(zhàn),幫助大家構(gòu)建完整的知識體系,掌握數(shù)據(jù)產(chǎn)品經(jīng)理的基本功。

    學完后你會掌握怎么建指標體系、指標字典,如何設計數(shù)據(jù)埋點、保證數(shù)據(jù)質(zhì)量,規(guī)劃大數(shù)據(jù)分析平臺等實際工作技能~

    現(xiàn)在就添加空空老師(微信id:anne012520),咨詢課程詳情并領取福利優(yōu)惠吧!

    來自廣東 回復
  5. 本來一般都會建就是有商品表和訂單表啊,不知道你這是指的什么特別的

    回復
  6. 兩個粒度都建立表指的是哪兩個粒度各建立什么表

    回復
  7. 數(shù)倉建模的過程也是數(shù)據(jù)產(chǎn)品主導的嗎?我們這邊好像都是數(shù)據(jù)開發(fā)們主導的,產(chǎn)品主要focus在數(shù)據(jù)平臺上面誒,是我的理解有誤嗎?

    來自上海 回復
  8. 數(shù)據(jù)產(chǎn)品的工作這樣的?。扛杏X跟技術(shù)有很大掛鉤呢。還想過轉(zhuǎn)行數(shù)據(jù)產(chǎn)品經(jīng)理崗的

    回復
  9. “因為MID層和DW層存儲的都是完整的數(shù)據(jù),業(yè)務數(shù)據(jù)庫數(shù)據(jù)會不斷增長,導致這兩個層級里的數(shù)據(jù)每個切片的數(shù)據(jù)都是在增長,相當于是指數(shù)增長“

    你好,我想咨詢下,為什么增長是指數(shù)增長,我的理解是每次只加上切片的增量數(shù)據(jù)就可以了吧

    來自廣東 回復
    1. 假設數(shù)據(jù)只增不改的單一場景下。對于ODS層,每增加一個切片是增加增量數(shù)據(jù),但是對于MID層,每增加一個切片是增加了最新版的全量的數(shù)據(jù)。假設,每天穩(wěn)定新增5000條數(shù)據(jù),那ODS里面的數(shù)據(jù)總量就是5000、10000、15000…類似y=ax,但是MID層數(shù)據(jù)總量就是5000、15000、30000…類似y=ax^2+bx。
      文中描述的指數(shù)增長不太準確,在這里假設的比較簡單的場景下,相當于是二階增長。

      來自上海 回復
    2. 了解了,十分感謝

      來自廣東 回復
  10. 來自上海 回復
  11. 很干貨,給個贊

    回復
  12. 感謝分享

    回復