數(shù)據(jù)產(chǎn)品指北:數(shù)據(jù)平臺
數(shù)據(jù)平臺其實(shí)是個概括的詞,泛指企業(yè)中的數(shù)據(jù)環(huán)境、數(shù)據(jù)形態(tài)和數(shù)據(jù)架構(gòu)等內(nèi)容。而本文就跟大家詳細(xì)介紹這些內(nèi)容。
數(shù)據(jù)環(huán)境與數(shù)據(jù)形態(tài)
數(shù)據(jù)環(huán)境指的是數(shù)據(jù)存儲、處理、轉(zhuǎn)換所處的物理環(huán)境,例如生產(chǎn)環(huán)境、分析環(huán)境和測試環(huán)境等。
生產(chǎn)環(huán)境是生產(chǎn)應(yīng)用和系統(tǒng)實(shí)時運(yùn)行所處的環(huán)境,其中的數(shù)據(jù)是會實(shí)時變化的。
分析環(huán)境是與生產(chǎn)環(huán)境解耦的一個數(shù)據(jù)環(huán)境,在數(shù)據(jù)環(huán)境中對數(shù)據(jù)進(jìn)行分析,不會影響生產(chǎn)環(huán)境的正常運(yùn)行。分析環(huán)境中的數(shù)據(jù)來源于生產(chǎn)環(huán)境中的“快照”,因此本質(zhì)上是離線的數(shù)據(jù)。
為保證分析環(huán)境的作業(yè)不對生產(chǎn)環(huán)境造成影響,我們應(yīng)該避免數(shù)據(jù)直連的方式,即將原始數(shù)據(jù)直接從生產(chǎn)系統(tǒng)導(dǎo)入分析系統(tǒng)的緊耦合方式。這種方式在數(shù)據(jù)量較小時可能不會出現(xiàn)問題,但當(dāng)數(shù)據(jù)量增大后,數(shù)據(jù)直連的弊端便會逐漸展現(xiàn)。主要體現(xiàn)在雙方環(huán)境的互相影響、安全上的隱患、平臺擴(kuò)展性差等方面。因此更合理的辦法是在生產(chǎn)環(huán)境和分析環(huán)境之間設(shè)置數(shù)據(jù)緩沖區(qū),作為中轉(zhuǎn)從各個系統(tǒng)接收原始數(shù)據(jù)并暫存,經(jīng)過ETL后導(dǎo)入分析環(huán)境。
至此,根據(jù)數(shù)據(jù)所處環(huán)境,可將數(shù)據(jù)定義為3種基本形態(tài):生產(chǎn)數(shù)據(jù)、原始數(shù)據(jù)和分析數(shù)據(jù)。數(shù)據(jù)和其所處環(huán)境之間的聯(lián)系如下圖所示。
數(shù)據(jù)形態(tài)及所處環(huán)境之間關(guān)系
1. 生產(chǎn)數(shù)據(jù)
生產(chǎn)數(shù)據(jù)是動態(tài)的,會隨著業(yè)務(wù)的變化而變化,例如用戶訂單狀態(tài)會因?yàn)橛脩?、商戶、物流等相關(guān)方的行為而發(fā)生變化。數(shù)據(jù)分析工作通常不會直接接觸生產(chǎn)數(shù)據(jù),相反,分析數(shù)據(jù)可能會轉(zhuǎn)化成生產(chǎn)數(shù)據(jù)。例如用戶標(biāo)簽數(shù)據(jù),是通過分析數(shù)據(jù)構(gòu)建的,但可能會形成畫像、推薦等應(yīng)用,從而轉(zhuǎn)化為生產(chǎn)數(shù)據(jù)為業(yè)務(wù)提供服務(wù)。
2. 原始數(shù)據(jù)
原始數(shù)據(jù)由生產(chǎn)系統(tǒng)中的數(shù)據(jù)解耦而得到。解耦過程通常包括了數(shù)據(jù)脫敏、篩選、批量導(dǎo)出等。原始數(shù)據(jù)的存放應(yīng)獨(dú)立于生產(chǎn)環(huán)境和分析環(huán)境,以避免不同環(huán)境間的互相影響,也就是前面提到的數(shù)據(jù)緩沖區(qū)。
3. 分析數(shù)據(jù)
分析數(shù)據(jù)由原始數(shù)據(jù)經(jīng)過ETL后得到。ETL(Extract-Transform-Load)是抽取-轉(zhuǎn)換-加載的縮寫,該過程會對原始數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換,按照統(tǒng)一的標(biāo)準(zhǔn)將數(shù)據(jù)存儲在分析環(huán)境中。例如去掉一些無效字段,對空值、異常值進(jìn)行插補(bǔ),對日期格式進(jìn)行統(tǒng)一等操作,都會在ETL過程中完成。ETL過程還可能包含對數(shù)據(jù)的優(yōu)化存儲,以提升存儲和讀取效率,比如創(chuàng)建索引、分區(qū)、分表等。
對分析數(shù)據(jù)的存儲、使用,需要依賴于數(shù)據(jù)平臺,數(shù)據(jù)平臺的性能對處理分析數(shù)據(jù)有決定性的影響。不同規(guī)模、類型的分析數(shù)據(jù),也可能適用于不同的數(shù)據(jù)平臺。
具體的數(shù)據(jù)流轉(zhuǎn)方式可參考下圖,數(shù)據(jù)緩沖區(qū)作為中轉(zhuǎn),一端連接了生產(chǎn)環(huán)境中的各類應(yīng)用系統(tǒng),另一端連接了分析環(huán)境中的各類數(shù)據(jù)平臺。
數(shù)據(jù)流轉(zhuǎn)示例
數(shù)據(jù)平臺
數(shù)據(jù)平臺是存放分析數(shù)據(jù)的平臺,也是支持?jǐn)?shù)據(jù)分析和挖掘的底層平臺。數(shù)據(jù)平臺包括了我們最為熟悉的傳統(tǒng)數(shù)據(jù)倉庫,以及一些“現(xiàn)代化”的多種數(shù)據(jù)庫產(chǎn)品。簡化的數(shù)據(jù)平臺架構(gòu)圖如下。
數(shù)據(jù)平臺架構(gòu)圖
現(xiàn)代的數(shù)據(jù)平臺融合了傳統(tǒng)的數(shù)據(jù)倉庫、大數(shù)據(jù)平臺、MPP數(shù)據(jù)庫、NoSQL數(shù)據(jù)庫等多種數(shù)據(jù)產(chǎn)品。
從平臺架構(gòu)視角來看,數(shù)據(jù)緩沖區(qū)屬于原始數(shù)據(jù)層,也叫ODS(Operational Data Store)層或貼源層。ODS層的數(shù)據(jù)粒度更細(xì),能從微觀反映細(xì)節(jié)的關(guān)鍵數(shù)據(jù),例如用戶訂單交易數(shù)據(jù)。在數(shù)據(jù)倉庫(Data Warehouse,DW)中又分為基礎(chǔ)層、主題層和數(shù)據(jù)集市層。
1. 基礎(chǔ)層
也有稱DWD(Data Warehouse Detail)層,基礎(chǔ)層對ODS層數(shù)據(jù)進(jìn)行了清洗、轉(zhuǎn)換(即前面提到的ETL過程),和輕度匯總。產(chǎn)出為數(shù)據(jù)明細(xì)、維度表、事實(shí)表等基礎(chǔ)數(shù)據(jù)。例如訂單表、商品列表以及一些日志表等。
2. 主題層
也有稱DWS(Data Warehouse Service)層,主題層對數(shù)據(jù)按照一定維度或業(yè)務(wù)邏輯進(jìn)行高度聚合,生成不同主題下的表。主題層一般已不存在具體的明細(xì)數(shù)據(jù),所有數(shù)據(jù)按照主題進(jìn)行了歸集。例如零售行業(yè),可能會根據(jù)業(yè)務(wù)分成用戶主題、商品主題、銷售主題等。
3. 數(shù)據(jù)集市
數(shù)據(jù)集市(Data Mart)也有稱ADS(Application Data Store),數(shù)據(jù)集市將主題層和基礎(chǔ)層的數(shù)據(jù)按照各業(yè)務(wù)的實(shí)際需求進(jìn)行聚合,形成寬表或數(shù)據(jù)立方體(Cube),可直接供業(yè)務(wù)部門和數(shù)據(jù)分析團(tuán)隊使用。
數(shù)據(jù)集市中主要存在的是事實(shí)表(fact)和維度表(dimension)。
- 事實(shí)表中存放著業(yè)務(wù)的詳細(xì)數(shù)據(jù),例如訂單、銷售等業(yè)務(wù)數(shù)據(jù)。
- 維度表是圍繞事實(shí)表建立的,存放著一些維度屬性,定義了可以從哪些角度分析事實(shí)表,例如時間、地域、操作系統(tǒng)等維度。
數(shù)據(jù)集市中的數(shù)據(jù)結(jié)構(gòu)一般有星型結(jié)構(gòu)(star)和雪花結(jié)構(gòu)(snow)。
星型結(jié)構(gòu)由一個事實(shí)表和一組維表組成,每個維表都有一個維作為主鍵,所有這些維的主鍵組合成事實(shí)表的主鍵。使得事實(shí)表與每個維度表產(chǎn)生關(guān)聯(lián),事實(shí)表位于中央,維度表圍繞在事實(shí)表周圍。
雪花結(jié)構(gòu)是在星型結(jié)構(gòu)上的擴(kuò)展,對一些維度表進(jìn)一步層次化,將維度表擴(kuò)展為事實(shí)表,并建立下一層的維度表。雪花結(jié)構(gòu)更加符合數(shù)據(jù)庫范式,減少數(shù)據(jù)冗余,但在數(shù)據(jù)分析時,操作也可能更復(fù)雜。下方是星型結(jié)構(gòu)和雪花結(jié)構(gòu)的對比。
星型結(jié)構(gòu)
雪花結(jié)構(gòu)
不同資料,以及不同企業(yè)內(nèi)可能對上述內(nèi)容的名稱、縮寫等有不同的定義,這個不用糾結(jié),關(guān)鍵是理解每層所代表的具體含義和作用。
Hadoop掃盲
Hadoop作為目前被廣泛應(yīng)用于大數(shù)據(jù)平臺開發(fā)的基礎(chǔ)架構(gòu),有必要單獨(dú)了解。Hadoop本身是用于大數(shù)據(jù)存儲、計算、分析的分布式存儲系統(tǒng)和分布式計算框架。下圖是其核心組件架構(gòu)。
大數(shù)據(jù)平臺核心組件
Hadoop的核心模塊提供的是離線、批量的計算,本身并不適合強(qiáng)實(shí)時環(huán)境。實(shí)時計算需要結(jié)合相關(guān)組件,如Spark、Storm等,擴(kuò)展后的Hadoop平臺具備一定的實(shí)時處理能力。下面簡單介紹下相關(guān)核心組件。
1.HDFS
HDFS(Hadoop Distributed File System)是一套分布式的文件系統(tǒng),是Hadoop平臺的文件基礎(chǔ)。HDFS適合存儲大批量的數(shù)據(jù)(PB級),但不適合低延遲場景,也不適合存儲大量小文件。HDFS主要解決的是文件實(shí)際存儲的問題。
2.MapReduce
MapReduce是Hadoop平臺的分布式計算框架,其采用“分而治之”的思想,將一個可拆解的任務(wù)分發(fā)給多個計算節(jié)點(diǎn)進(jìn)行計算,最后合并計算結(jié)果。因此MapReduce中包含了兩個部分:Map階段和Reduce階段(整個過程還可能包括Split、Shuffle等階段)。參考下圖,以經(jīng)典的單詞統(tǒng)計任務(wù)為例??梢钥闯鯩ap階段主要完成具體的分工和簡單的計數(shù),Reduce階段完成最終的計算任務(wù),即單詞數(shù)累加。
MapReduce執(zhí)行過程
MapReduce主要用于離線的海量數(shù)據(jù)(PB級以上)計算工作。
3.HBase
HBase是基于HDFS的列式存儲、非關(guān)系型(NoSQL)、分布式數(shù)據(jù)庫,HBase具有高可用、高性能、列存儲、實(shí)時讀寫等特點(diǎn)。NoSQL被解釋為Not Only SQL,不僅僅是SQL,非關(guān)系型數(shù)據(jù)庫不以SQL作為主要訪問語言。其較關(guān)系型數(shù)據(jù)庫主要在成本、查詢速度、存儲格式、擴(kuò)展性等方面的優(yōu)勢。列式存儲是非關(guān)系型數(shù)據(jù)庫中的一類,傳統(tǒng)的關(guān)系型數(shù)據(jù)庫按照行進(jìn)行存儲,而列式存儲數(shù)據(jù)庫按照每一列單獨(dú)存儲,僅查詢所需的列,因此查詢速度大幅提高。此類預(yù)備知識,在此就不做過多延伸了。
利用HBase的特性,可以在廉價的服務(wù)器上搭建一套大規(guī)模的存儲集群。
HDFS、MapReduce和HBase被稱為Hadoop的三駕馬車,是其最主要的構(gòu)成。最后在簡單介紹下其他常用組件,作為補(bǔ)充了解。包括了數(shù)據(jù)采集傳輸、數(shù)據(jù)存儲、數(shù)據(jù)計算、數(shù)據(jù)分析表達(dá)和系統(tǒng)管理幾個方面。
1. 數(shù)據(jù)采集傳輸類
1)Flume
針對非結(jié)構(gòu)化的海量日志的采集工具,主要用于收集數(shù)據(jù)到HDFS。
2)Sqoop
針對在Hadoop和結(jié)構(gòu)化數(shù)據(jù)存儲(如關(guān)系型數(shù)據(jù)庫)之間高效傳輸大批量數(shù)據(jù)的工具。主要用于從關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(如Oracle、MySQL)向Hadoop中(HDFS、Hive)導(dǎo)入數(shù)據(jù),或從Hadoop中導(dǎo)入關(guān)系型數(shù)據(jù)庫。
3)Kafk
可持久化的分布式消息隊列,用于發(fā)布訂閱消息的系統(tǒng)??膳c流式框架(如Storm)組合使用,完成實(shí)時數(shù)據(jù)的傳輸處理。
2. 數(shù)據(jù)存儲類
1)Hive
Hadoop的數(shù)據(jù)倉庫框架,基于MapReduce封裝。其將存儲在HDFS的文件映射成我們熟悉的數(shù)據(jù)表,并提供類SQL(Hive SQL/HQL)語句進(jìn)行數(shù)據(jù)表操作。是使用Hadoop平臺數(shù)據(jù)倉庫的必備技能。
2)Memcached
基于Key-Value的、高性能、分布式內(nèi)存對象緩存系統(tǒng),解決了大數(shù)據(jù)量緩存的問題,可在內(nèi)存中緩存數(shù)據(jù)查詢結(jié)果。
3)Redis
基于Key-Value的、可持久化的日志型內(nèi)存數(shù)據(jù)庫。Redis與Memcached類似,但支持更多的存儲類型。另外,Redis可以將內(nèi)存中的數(shù)據(jù)寫入硬盤中,做持久化的保存。也可以設(shè)置key的過期時間,過期自動刪除緩存。
3.數(shù)據(jù)計算類
1)Spark
不以MapReduce為執(zhí)行引擎、基于內(nèi)存計算的數(shù)據(jù)處理框架,用于大數(shù)據(jù)分析處理的集群計算系統(tǒng)。相比于MapReduce主要處理離線數(shù)據(jù),Spark可以進(jìn)行實(shí)時流式數(shù)據(jù)的分析處理。同時,其在內(nèi)存中存儲工作數(shù)據(jù)集的特點(diǎn)使其性能領(lǐng)先于MapReduce,對內(nèi)存的消耗自然也較大。當(dāng)任務(wù)對實(shí)時性要求較高時,可考慮選擇Spark。
2)Storm
全內(nèi)存計算的流式計算框架,定位是分布式實(shí)時計算系統(tǒng)??商幚碓丛床粩嗔魅氲臄?shù)據(jù),來一條數(shù)據(jù)處理一條,是真正的純實(shí)時。
3)Flink
針對流數(shù)據(jù)+批數(shù)據(jù)的計算框架。把批數(shù)據(jù)看作流數(shù)據(jù)的一種特例,延遲性較低(毫秒級),且能夠保證消息傳輸不丟失不重復(fù)。
4.數(shù)據(jù)分析及可視化
1)Zeppelin
數(shù)據(jù)分析工具,包含了大數(shù)據(jù)分析和可視化功能,可以通過Web頁面新建Notebook來完成數(shù)據(jù)的查詢、分析和導(dǎo)出。
2)ELK
是ElasticSearch, Logstash, Kibana的統(tǒng)稱,其是一套實(shí)時數(shù)據(jù)收集,存儲,索引,檢索,統(tǒng)計分析及可視化的解決方案。ElasticSearch是一個分布式存儲及檢索引擎,可快速實(shí)時地存儲和查詢數(shù)據(jù),常用于快速檢索內(nèi)容。Logstash是一個收集實(shí)時流式數(shù)據(jù)(例如日志)的數(shù)據(jù)收集引擎,可用于接收、處理和轉(zhuǎn)發(fā)日志。Kibana是一個數(shù)據(jù)分析和可視化的平臺。可對ElasticSearch索引中存儲的數(shù)據(jù)進(jìn)行搜索和查詢,并實(shí)現(xiàn)高級數(shù)據(jù)分析和可視化功能。最新版本已經(jīng)改名為Elastic Stack,并加入了采集數(shù)據(jù)的Beats項(xiàng)目
5.系統(tǒng)管理
1)Zookeeper
是一個分布式協(xié)調(diào)服務(wù),為應(yīng)用提供統(tǒng)一命名、配置維護(hù)、域名服務(wù)、分布式同步等一致性服務(wù)。
2)YARN
是Hadoop的集群資源管理系統(tǒng)。可作為框架管理器,對計算框架進(jìn)行管理和資源調(diào)度,例如MapReduce、Spark、Storm和Flink等。
數(shù)據(jù)平臺篇對于非技術(shù)出身的產(chǎn)品及相關(guān)人員,閱讀起來會感覺非常枯燥,學(xué)習(xí)和理解也確實(shí)有一定難度。但如果能對相關(guān)知識進(jìn)行充分了解,將在未來的數(shù)據(jù)工作中起到很大幫助,在與技術(shù)同學(xué)溝通時也會更加順暢。所以還是建議硬著頭皮啃下來的。
數(shù)據(jù)平臺篇到此結(jié)束。
作者:Rowan;公眾號:羅老師別這樣
本文由 @Rowan 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
數(shù)據(jù)產(chǎn)品好難,好多關(guān)鍵詞記得頭暈?zāi)X脹
一ilskalkkallapmasjskdi
贊!
數(shù)據(jù)集市(ADS)層里面放的不是事實(shí)表和維度表吧,這里放的不是具體的業(yè)務(wù)需求的數(shù)據(jù)嗎?事實(shí)表和維度表不是在第二層嗎?
大家期待已久的《數(shù)據(jù)產(chǎn)品經(jīng)理實(shí)戰(zhàn)訓(xùn)練營》終于在起點(diǎn)學(xué)院(人人都是產(chǎn)品經(jīng)理旗下教育機(jī)構(gòu))上線啦!
本課程非常適合新手?jǐn)?shù)據(jù)產(chǎn)品經(jīng)理,或者想要轉(zhuǎn)崗的產(chǎn)品經(jīng)理、數(shù)據(jù)分析師、研發(fā)、產(chǎn)品運(yùn)營等人群。
課程會從基礎(chǔ)概念,到核心技能,再通過典型數(shù)據(jù)分析平臺的實(shí)戰(zhàn),幫助大家構(gòu)建完整的知識體系,掌握數(shù)據(jù)產(chǎn)品經(jīng)理的基本功。
學(xué)完后你會掌握怎么建指標(biāo)體系、指標(biāo)字典,如何設(shè)計數(shù)據(jù)埋點(diǎn)、保證數(shù)據(jù)質(zhì)量,規(guī)劃大數(shù)據(jù)分析平臺等實(shí)際工作技能~
現(xiàn)在就添加空空老師(微信id:anne012520),咨詢課程詳情并領(lǐng)取福利優(yōu)惠吧!