數(shù)據(jù)產(chǎn)品必備技術(shù)知識:數(shù)據(jù)倉庫入門,看這這一篇就夠了
數(shù)據(jù)倉庫是存數(shù)據(jù)的,企業(yè)的各種數(shù)據(jù)往里面塞,主要目的是為了有效分析數(shù)據(jù),后續(xù)會基于它產(chǎn)出供分析挖掘的數(shù)據(jù),或者數(shù)據(jù)應用需要的數(shù)據(jù),如企業(yè)的分析性報告和各類報表,為企業(yè)的決策提供支持。
數(shù)據(jù)倉庫可以算是數(shù)據(jù)產(chǎn)品必須要了解的技術(shù)知識了, 在一年前的數(shù)據(jù)產(chǎn)品求職分析中,其中技能要求這一項中,數(shù)據(jù)倉庫可是占了一席之地的。
但是,對于準備求職數(shù)據(jù)產(chǎn)品的童鞋來說,可能身邊沒有做數(shù)倉開發(fā)的朋友可以請教。自學吧,而那幾本經(jīng)典書籍里面又過于理論,看起真是生不如死,而且數(shù)據(jù)產(chǎn)品并不是數(shù)據(jù)開發(fā),可能了解一些入門的常識,有個大概的概念就可以了。
我也一直零零散散的積累這方面的知識,這兩天梳理了下,形成下文,希望對大家有所幫助,非專業(yè)數(shù)倉開發(fā)人員,如有不準確的地方,還望大家指正。
文章結(jié)構(gòu)
- 一、數(shù)據(jù)倉庫是什么
- 二、數(shù)據(jù)倉庫有什么特點
- 三、為什么搭建數(shù)據(jù)倉庫
- 四、數(shù)據(jù)倉庫結(jié)構(gòu)
- 五、ETL
- 六、數(shù)據(jù)集市
- 七、ODS
- 八、元數(shù)據(jù)
一、數(shù)據(jù)倉庫是什么
可以理解為:面向分析的存儲系統(tǒng)。
也就是說數(shù)倉是存數(shù)據(jù)的,企業(yè)的各種數(shù)據(jù)往里面塞,主要目的是為了有效分析數(shù)據(jù),后續(xù)會基于它產(chǎn)出供分析挖掘的數(shù)據(jù),或者數(shù)據(jù)應用需要的數(shù)據(jù),如企業(yè)的分析性報告和各類報表,為企業(yè)的決策提供支持。
上面的意思先理解著,接下來從頭講起,先看關(guān)系型數(shù)據(jù)庫,它可以被劃分為兩大基本類型:操作型數(shù)據(jù)庫和分析型數(shù)據(jù)庫。
1. 操作型數(shù)據(jù)庫
主要面向應用,用于業(yè)務(wù)支撐,支持對實際業(yè)務(wù)的處理,也可以叫業(yè)務(wù)型數(shù)據(jù)庫。
可以理解為通常意義上的數(shù)據(jù)庫(后端開發(fā)同學口中的經(jīng)常提到的就是這種)。
2. 分析型數(shù)據(jù)庫
主要面向數(shù)據(jù)分析,側(cè)重決策支持,作為公司的單獨數(shù)據(jù)存儲,負責利用歷史數(shù)據(jù)對公司各主題域進行統(tǒng)計分析。
由于分析型數(shù)據(jù)庫中的操作都是查詢,因此也就不需要嚴格滿足關(guān)系型數(shù)據(jù)庫一些設(shè)計規(guī)范,這樣的情況下再將它歸為數(shù)據(jù)庫不太合適,也容易不引起混淆,所以稱之為數(shù)據(jù)倉庫。
這里可以說一下,數(shù)據(jù)處理大致可以分成兩大類:OLTP(聯(lián)機事務(wù)處理)和OLAP(聯(lián)機分析處理)。
- OLTP(聯(lián)機事務(wù)處理)就是操作型數(shù)據(jù)庫的主要應用,更側(cè)重于基本的、日常的事務(wù)處理,包括數(shù)據(jù)的增刪改查。
- OLAP(聯(lián)機分析處理)就是分析型數(shù)據(jù)庫的主要應用,以多維度的方式分析數(shù)據(jù), 這個后續(xù)會整理。
二、數(shù)據(jù)倉庫有什么特點
相對于數(shù)據(jù)庫,數(shù)據(jù)倉庫有以下特點
(1)面向主題
數(shù)據(jù)倉庫通過一個個主題域?qū)⒍鄠€業(yè)務(wù)系統(tǒng)的數(shù)據(jù)加載到一起,為了各個主題(如:用戶、訂單、商品等)進行分析而建,操作型數(shù)據(jù)庫是為了支撐各種業(yè)務(wù)而建立。
(2)集成性
數(shù)據(jù)倉庫會將不同源數(shù)據(jù)庫中的數(shù)據(jù)匯總到一起。
(3)歷史性
較之操作型數(shù)據(jù)庫,數(shù)據(jù)倉庫的數(shù)據(jù)是為企業(yè)數(shù)據(jù)分析而建立,所以數(shù)據(jù)被加載后一般情況下將被長期保留,前者通常保存幾個月,后者可能幾年甚至幾十年。
(4)時變性
是指數(shù)據(jù)倉庫包含來自其時間范圍不同時間段的數(shù)據(jù)快照,有了這些數(shù)據(jù)快照以后,用戶便可將其匯總,生成各歷史階段的數(shù)據(jù)分析報告。
(5)穩(wěn)定性
數(shù)據(jù)倉庫中的數(shù)據(jù)一般僅執(zhí)行查詢操作,很少會有刪除和更新。但是需定期加載和刷新數(shù)據(jù)。
三、為什么搭建數(shù)據(jù)倉庫
簡單來說,就是為了有效分析數(shù)據(jù) 。
你說直接從業(yè)務(wù)數(shù)據(jù)庫中取數(shù)據(jù)來做分析?
也不是不可以,就是業(yè)務(wù)系統(tǒng)多,業(yè)務(wù)復雜時,會發(fā)現(xiàn)結(jié)構(gòu)復雜,數(shù)據(jù)臟亂,難以理解,缺少歷史,大規(guī)模查詢緩慢這些問題。
業(yè)務(wù)到一定規(guī)模,大家需要面臨的問題越來越復雜和深入,數(shù)據(jù)需求不再只是昨日的營收,上月的uv這些,而是“28到45歲女性在社區(qū)的活躍度與公司策劃的專題內(nèi)容活動的關(guān)系”這類精細化的分析,而從數(shù)據(jù)庫是很難取出這類數(shù)據(jù)的。
畢竟業(yè)務(wù)型數(shù)據(jù)庫是為了支撐業(yè)務(wù)設(shè)計的,不是為了查詢和分析數(shù)據(jù)。
四、數(shù)據(jù)倉庫結(jié)構(gòu)
用AXURE畫了個結(jié)構(gòu)圖,如下:簡單來說,就是把各數(shù)據(jù)源的數(shù)據(jù)ETL到數(shù)倉中,數(shù)倉再對數(shù)據(jù)進行集成和統(tǒng)計,然后再輸出給各數(shù)據(jù)應用,圖中涉及的模塊,接下來會分別介紹。
五、ETL
ETL分別代表:抽取extraction、轉(zhuǎn)換transformation、加載load。
(1)抽取(Extract)
從數(shù)據(jù)來源提取指定數(shù)據(jù),數(shù)據(jù)是需要指定的,不是所有的數(shù)據(jù)都要抽取過來, 某些源數(shù)據(jù)對于分析而言沒有價值,或者其可能產(chǎn)生的價值,遠低于儲存這些數(shù)據(jù)所需要的數(shù)據(jù)倉庫的實現(xiàn)和性能上的成本,就不會抽取了。
(2)轉(zhuǎn)換(Transform)
將數(shù)據(jù)轉(zhuǎn)換為指定格式并進行數(shù)據(jù)清洗保證數(shù)據(jù)質(zhì)量。
數(shù)據(jù)轉(zhuǎn)換,如包括編碼轉(zhuǎn)換(m/f->男/女),字段轉(zhuǎn)換(balance->bal),度量單位的轉(zhuǎn)換(cm->m),數(shù)據(jù)粒度的轉(zhuǎn)換。業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲非常明細的數(shù)據(jù),而數(shù)據(jù)倉庫中數(shù)據(jù)是用分析的,不需要非常明細,會將業(yè)務(wù)系統(tǒng)數(shù)據(jù)按照數(shù)據(jù)倉庫粒度進行聚合。
數(shù)據(jù)清洗,如會對不完整數(shù)據(jù),錯誤數(shù)據(jù)和重復數(shù)據(jù)等臟數(shù)據(jù)進行清洗。
(3)加載(Load)
將轉(zhuǎn)換過后的數(shù)據(jù)加載到目標數(shù)據(jù)倉庫,加載可分為兩種:
- 全量加載:一次對全部數(shù)據(jù)進行加載。
- 增量加載:一般首次需要全量加載,但是在第二次周期或者第三次周期的時候仍然全量加載的話,耗費了極大的物理和時間資源。有可能部分數(shù)據(jù)源并未發(fā)生變化,而有的數(shù)據(jù)源可能只是增加了少量的數(shù)據(jù)。 對數(shù)據(jù)源中的數(shù)據(jù)只考慮新修改的記錄和新插入的記錄就是增量加載。
ETL很可能是數(shù)據(jù)倉庫開發(fā)中最耗時最耗資源的一個環(huán)節(jié),因為該環(huán)節(jié)要整理各大業(yè)務(wù)系統(tǒng)中雜亂無章的數(shù)據(jù),并協(xié)調(diào)元數(shù)據(jù)上的差別,工作量很大,但也是構(gòu)建數(shù)據(jù)倉庫的重要環(huán)節(jié),對數(shù)據(jù)倉庫的后續(xù)環(huán)節(jié)影響比較大。
六、數(shù)據(jù)集市
數(shù)據(jù)集市(DM)可以理解為是一種“小型數(shù)據(jù)倉庫”,一般面向部門、單個主題或特定應用,且之間互不影響。
可以分為以下兩種:
- 獨立數(shù)據(jù)集市:有自己的源數(shù)據(jù)庫和ETL架構(gòu);
- 非獨立數(shù)據(jù)集市:沒有自己的源數(shù)據(jù),它的數(shù)據(jù)來自數(shù)據(jù)倉庫。當用戶或者應用程序不需要/不必要/不允許訪問整個數(shù)倉數(shù)據(jù)時,就可以直接訪問數(shù)據(jù)集市,為用戶提供一個數(shù)據(jù)倉庫的“子集”。
簡單理解就是一個結(jié)構(gòu)完全和數(shù)倉一樣,有ETL,然后自己存儲和計算;另一種就是直接用數(shù)倉處理過的數(shù)據(jù),再次進行組合集成??赡芎竺娼Y(jié)合數(shù)據(jù)分層更好理解。
七、ODS
ODS:全稱是Operational Data Store,操作數(shù)據(jù)存儲。
存儲各大業(yè)務(wù)型數(shù)據(jù)庫ETL后的數(shù)據(jù),是最接近數(shù)據(jù)源中數(shù)據(jù)的一層,主要目的是為了數(shù)據(jù)集中。
總體上大多是按照源業(yè)務(wù)系統(tǒng)的分類方式而分類的,因此會具有鮮明的業(yè)務(wù)數(shù)據(jù)庫的特征,甚至還具有一定的關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)范式的組織形式。
但是不等同于原始數(shù)據(jù),數(shù)據(jù)格式按照數(shù)倉要求統(tǒng)一,并經(jīng)過簡單的清洗。
八、元數(shù)據(jù)
元數(shù)據(jù)(Meta Date),即數(shù)據(jù)的數(shù)據(jù),元數(shù)據(jù)可分為技術(shù)元數(shù)據(jù)和業(yè)務(wù)元數(shù)據(jù)。
技術(shù)元數(shù)據(jù)為開發(fā)和管理數(shù)據(jù)倉庫的IT 人員使用,描述了與數(shù)據(jù)倉庫開發(fā)、管理和維護相關(guān)的數(shù)據(jù),包括數(shù)據(jù)源信息、數(shù)據(jù)轉(zhuǎn)換描述、數(shù)據(jù)倉庫模型、數(shù)據(jù)清洗與更新規(guī)則、數(shù)據(jù)映射和訪問權(quán)限等。
而業(yè)務(wù)元數(shù)據(jù)為管理層和業(yè)務(wù)分析人員服務(wù),從業(yè)務(wù)角度描述數(shù)據(jù),包括商務(wù)術(shù)語、數(shù)據(jù)倉庫中有什么數(shù)據(jù)、數(shù)據(jù)的位置和數(shù)據(jù)的可用性等,幫助業(yè)務(wù)人員更好地理解數(shù)據(jù)倉庫中哪些數(shù)據(jù)是可用的以及如何使用。
寫到這里,發(fā)現(xiàn)內(nèi)容已經(jīng)很多了,像數(shù)倉建模、數(shù)據(jù)分層、olap、BI這些留到下篇再講吧。
提一下數(shù)據(jù)分析報告,去年爬了3份數(shù)據(jù),本來準備寫三篇數(shù)據(jù)報告,結(jié)果寫了一篇之后,就再也沒有下文了,前段時間又重新爬了份,準備至少再寫一篇,雖然現(xiàn)在還沒開始動筆。
本文由 @?蘇徐 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自 Pexels,基于 CC0 協(xié)議
大家期待已久的《數(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)品運營等人群。
課程會從基礎(chǔ)概念,到核心技能,再通過典型數(shù)據(jù)分析平臺的實戰(zhàn),幫助大家構(gòu)建完整的知識體系,掌握數(shù)據(jù)產(chǎn)品經(jīng)理的基本功。
學完后你會掌握怎么建指標體系、指標字典,如何設(shè)計數(shù)據(jù)埋點、保證數(shù)據(jù)質(zhì)量,規(guī)劃大數(shù)據(jù)分析平臺等實際工作技能~
現(xiàn)在就添加空空老師(微信id:anne012520),咨詢課程詳情并領(lǐng)取福利優(yōu)惠吧!
可以介紹一下數(shù)據(jù)匯聚的幾個維度詳情嗎
?? 給大佬鞠躬!
寫的真好,比有些書里寫的還好,容易理解,專門登錄評論表示感謝!
寫的真心好,而且很全。并且通俗易懂 講的明白說的清楚。謝謝了兄弟。
問一個小白的問題,非關(guān)系型數(shù)據(jù)庫能否搭建數(shù)據(jù)倉庫
可以的 其實到現(xiàn)在 可以把數(shù)倉看做一個單獨的概念 可以是關(guān)系型 也可以是非關(guān)系型
可以
絕對干貨,對于我這個小白,剛好要了解啥是數(shù)據(jù)倉庫來說太有用了?。?!
感謝感謝 有人認可才有動力 一起學習進步
不錯不錯,了解到了
好謝謝了