一、數倉的前世今生
- 起源
商業智能(Business Intelligence)誕生在上個世紀 90 年代,它是將企業已有的數據轉化為知識,幫助企業做出經營分析決策。這些都離不開大量的數據分析。而數據分析需要聚合多個業務系統的數據,比如需要集成交易系統的數據,需要集成倉儲系統的數據等等,同時需要保存歷史數據,進行大數據量的范圍查詢。傳統數據庫面向單一業務系統,主要實現的是面向事務的增刪改查,已經不能滿足數據分析的場景,這促使數據倉庫概念的出現。
2.建模方法
比爾·恩門 和金博爾(Kimball) 共同開創的數倉建模的設計方法,這個方法對於后來基於數據湖的現代數據倉庫的設計有重要的意義,所以你有必要了解。
-
恩門提出的建模方法自頂向下(這里的頂是指數據的來源,在傳統數據倉庫中,就是各個業務數據庫),基於業務中各個實體以及實體之間的關系,構建數據倉庫。
-
金博爾建模與恩門正好相反,是一種自底向上的模型設計方法,從數據分析的需求出發,拆分維度和事實。(工作開發普遍在用,推薦!!!)
二、Hadoop到數據湖
-
Hadoop出現
2003 年開始,互聯網巨頭谷歌先后發表了 3 篇論文:《The Google File System》《MapReduce:Simplified Data Processing on Large Clusters》《Bigtable:A Distributed Storage System for Structed Data》,這三篇論文奠定了現代大數據的技術基礎。
但 2005 年 Hadoop 出現的時候,大數據技術才開始普及。你可以把 Hadoop 認為是前面三篇論文的一個開源實現,我認為 Hadoop 相比傳統數據倉庫主要有兩個優勢:
-
完全分布式,易於擴展,可以使用價格低廉的機器堆出一個計算、存儲能力很強的集群,滿足海量數據的處理要求;
-
弱化數據格式,數據被集成到 Hadoop 之后,可以不保留任何數據格式,數據模型與數據存儲分離,數據在被使用的時候,可以按照不同的模型讀取,滿足異構數據靈活分析的需求。
-
-
數據湖提出
數據湖概念的提出,我認為是 Hadoop 從開源技術走向商業化成熟的標志。企業可以基於 Hadoop 構建數據湖,將數據作為一種企業核心資產。
數據湖拉開了 Hadoop 商用化的大幕,但是一個商用的 Hadoop 包含 20 多種計算引擎, 數據研發涉及流程非常多,技術門檻限制了 Hadoop 的商用化進程。那么如何讓數據的加工像工廠一樣,直接在設備流水線上完成呢?數據工廠時代:大數據平台興起
三、數據工廠時代:大數據平台興起
對於一個數據開發,在完成一項需求時,常見的一個流程是首先要把數據導入到大數據平台中,然后按照需求進行數據開發。開發完成以后要進行數據驗證比對,確認是否符合預期。接下來是把數據發布上線,提交調度。最后是日常的任務運維,確保任務每日能夠正常產出數據。
提出大數據平台的概念,就是為了提高數據研發的效率,降低數據研發的門檻,讓數據能夠在一個設備流水線上快速地完成加工。
大數據平台是面向數據研發場景的,覆蓋數據研發的完整鏈路的數據工作台
Hive、Spark、Flink、Impala 提供了大數據計算引擎:
- Hive、Spark 主要解決離線數據清洗、加工的場景,目前,Spark 用得越來越多,性能要比 Hive 高不少;
- Flink 主要是解決實時計算的場景;
- Impala 主要是解決交互式查詢的場景。
四、數據中台崛起
時間到了 2016 年前后,互聯網高速發展,背后對數據的需求越來越多,數據的應用場景也越來越多,有大量的數據產品進入到了我們運營的日常工作,成為運營工作中不可或缺的一部分。在電商業務中,有供應鏈系統,供應鏈系統會根據各個商品的毛利、庫存、銷售數據以及商品的輿情,產生商品的補貨決策,然后推送給采購系統。
大規模數據的應用,也逐漸暴露出現一些問題。
業務發展前期,為了快速實現業務的需求,煙囪式的開發導致企業不同業務線,甚至相同業務線的不同應用之間,數據都是割裂的。兩個數據應用的相同指標,展示的結果不一致,導致運營對數據的信任度下降。如果你是運營,當你想看一下商品的銷售額,發現兩個報表上,都叫銷售額的指標出現了兩個值,你的感受如何? 你第一反應肯定是數據算錯了,你不敢繼續使用這個數據了。
-
如果你是運營,當你想要一個數據的時候,開發告訴你至少需要一周,你肯定想是不是太慢了,能不能再快一點兒?
-
如果你是數據開發,當面對大量的需求的時候,你肯定是在抱怨,需求太多,人太少,活干不完。
-
如果你是一個企業的老板,當你看到每個月的賬單成指數級增長的時候,你肯定覺得這也太貴了,能不能再省一點,要不吃不消了。
這些問題的根源在於,數據無法共享。2016 年,阿里巴巴率先提出了“數據中台”的口號。數據中台的核心,是避免數據的重復計算,通過數據服務化,提高數據的共享能力,賦能數據應用。