BI, 資料倉儲,ETL, 資料開發,有什麼區別

dbLenis發表於2019-02-16

BI: Business Intelligence.

為商業提供一切智慧化操作,判斷與管理的手段,都可以歸攏到 BI 範疇。即便是 AI (Artificial Intelligence)只要其能提供上述功能,依舊可以成為 BI 的一部分。

什麼是智慧化的商業操作,判斷與管理?

“啤酒與尿布”的故事,在這個行業廣為人知了。年輕的爸爸在購買尿布的同時,會捎帶上一打啤酒,因此沃爾瑪超市有意將兩者放在同一貨架上,提高了兩者的銷售量。

如果說這版本你沒有切身體驗,那麼請你開啟亞馬遜 app 或者網站,你輸入 data warehouse, 是不是會看到一連串的帶有 data warehouse 標題的書,選擇第一本點進去,你將看到如下的畫面:

BI, 資料倉儲,ETL, 資料開發,有什麼區別

這就是最典型的一個應用案例。所有促使這一切生成的技術都可以歸納到 BI 中來。

BI 一個概念級的企業部門,要落實到具體工作,還是講究其實現技術。

上面亞馬遜購書案例,體現的是一個 BI 應用概念,即推薦。那麼怎麼實現這個應用,我們還是需要具體講解其實現的技術細節。每個細節上將會安排特定的工程師來實現,每個工程師分配到了題中涉及到的這些職務。

BI, 資料倉儲,ETL, 資料開發,有什麼區別

(圖摘自 Google, 版權原著所有)

亞馬遜購書是個時尚的事兒,也給亞馬遜提供了豐富的使用者“軌跡”資料。通過記錄這些使用者行為資料,亞馬遜整了一個資料倉儲,將你我他的購書記錄放在了一張表裡,通過 SQL 技術,將購買組合當做特殊購買行為儲存了下來。當網友購買我們買過的書時,通過先前儲存的“特殊購買行為”向這些網友提供推薦的書。

整個圖中所有負責技術實現的人,都可以叫做資料人(Data Engineer);更精確的從 ETL 往右開始稱為 BI 人;更細化些, 實現 ETL 的稱為 ETL 工程師, Data Warehouse 的模型設計者稱為資料模型工程師(Data Modeler ), 負責視覺化設計的叫做 BI Reporter.

早期的 BI 實現僅靠資料倉儲。

實現資料倉儲,得提到 2 個人物,Inmon 和 Kimball. 兩人提出的資料倉儲理論基本奠定了我們這個時代對數倉的理解。

BI, 資料倉儲,ETL, 資料開發,有什麼區別

(圖來自 Google,版權原作者所有)

kimball 的資料倉儲理論,傾向於大而統一的 Data Warehouse, 而 Inmon 則偏向專題性的 Data Mart, 主張將 Data Mart 中資料迴流給應用,促成業務進行。前面的推薦系統則是 Data Mart 的原型應用。

現代的 BI 實現就豐富多了:小資料的玩法,大資料的玩法,統計報表,即席查詢,分散式計算,流式計算,推薦系統,知識圖譜,NLP,語音互動,模式識別。所以又新增了資料探勘,資料科學家以及資料分析師,負責大資料技術實現的就叫大資料工程師了。

之所以切分了現代的 BI,主要也是資料爆發帶來的分散式應用增多。

基於當前的 BI 技術在大資料背景煥發了第二春,實現架構也越發複雜。我這裡選擇常用的 **Lamba Architecture **來主講。

2010 年前後,大資料開始隨著 Hadoop 進入人們的視野。這時資料倉儲技術還方興未艾,暫時還沒有替換掉這種技術架構的打算,因為前期的投入和本身的價值繼續發揮著預熱。但新的資料需求不得不採取新的計算架構,所以很多公司採用了傳統資料倉儲技術以及以 Hadoop 為基礎的分散式架構並存的策略。大致如下:

BI, 資料倉儲,ETL, 資料開發,有什麼區別

(圖來自網路,版權原作者所有)

粉紅色的部分屬於新興的資料處理技術(以 Hadoop, Spark, Hive, Kafka,Machine Learning 等為主),綠色部分還是常規的資料應用。

到了後現代 BI 架構中,隨著 Hadoop 等技術越發成熟,慢慢替換掉了原來傳統的資料倉儲技術,全部使用了分散式儲存和計算,就形成了 Lambda Architecture. 即部分資料沿用了 Batch 處理,而另一部分資料用實時(Storm,Flink)和準實時(Spark)來處理,以完成對資料時效性的要求。

BI, 資料倉儲,ETL, 資料開發,有什麼區別

(圖摘自 Google, 版權原作者所有)

可見,資料的搬運工還是 ETL, 我覺得這是一門長期熱門的職位, 若能架構整個資料應用,那就更好,這就是炙手可熱的 Data Architect (資料架構師).

人工智慧

適當延展下,BI 中還會用到 AI 技術。亞馬遜購書一例中就是如此。下面出給 Gantner 2018 在人工智慧技術方向的成熟度曲線:

BI, 資料倉儲,ETL, 資料開發,有什麼區別

像 Machine Learning, NLP, Intelligence Application 都可以用來服務 BI. 所以 BI 的外延越來越難以清晰劃分,越來越多職位都統稱為 Data Engineer, Data Scientist 了.

一點個人看法,不喜勿噴,歡迎探討。

相關文章