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