2013年6月23日 星期日

Big Data Lifecycle — 價值流轉與產業發展

Big Data 素養 6


~ 素養,是個人與外界作合理而有效的溝通或互動所需具備的條件 


如果我們將數位資料從產生、流動、儲存、到運算、應用、呈現,依照 Big Data 常見的討論範疇來劃分,那麼可以得出如下列圖 1. 所標示的 6 個不同階段:「生、流、存、算、用、看」。

圖 1. Big Data Lifecycle 與產業發展

在不同的階段,可以對應到不同的產品與技術,也有不同的軟、硬體發展重點。


Big Data Lifecycle 的 6 階段價值流轉
  1. 生 (Data Source)



    數位資料的生成。如各種行動裝置、感應器 (Sensor)、GPS 裝置、RFID 標籤、PC/NB、電信設備、網路設備等 Machine Data (機器產生的資料),最常見的,就是具有結構或半結構的文數型 Log 日誌檔案。人類也可透過在數位裝置上輸入資料或進行內容創作,創造所謂的 Human-generated content (人類產生的資料),如 IM 聊天傳訊、撰寫部落格文章、拍照、攝影、貼文、留言等非結構的 Full-text (全文) 或 Binary (二進位) 資料。
     
  2. 流 (Data Flow)



    數位資料的流動。資料在被機器或人類生成後,除非只留存在本地端,不然一定要透過某種通訊方式,才能被彙整收納,以便進行各種處理。

    無論是有線 (Wired) 還是無線 (Wireless),區域網路 (LAN) 還是廣域網路 (WAN),現在最通用的通訊協定,乃是以 IP (Internet Protocol) 為主。人們常聽到的 Internet、3G/3.5G、4G、Wi-Fi、ADSL、光纖到府、都是 IP-based 的通訊,乘載著現今世界的大量數位資訊流動。除此之外,我們用 USB disk 將檔案 Copy 來 Copy 去的,也可視為是一種數位資料的流動方式,只是它的連結必須靠人來介入完成。
     
  3. 存 (Data Storage)



    數位資料的儲存。資料流動必有途徑 (Routing)、必有所往 (Destination)。儲存系統 (Storage System) 是很常見的資料留存中途點或終點。

    在 Big Data 的應用中,放在儲存系統中的,常常是 Warm DataHot Data,是等著要被 Real-time、Near real-time、In-time、或是 Batch 處理的線上資料,而比較不著墨於 Cold Data 這類只存不算的離線資料。

    在雲端科技領域,兼具橫向擴充性 (Scale-out) 與高可用度 (High Availability) 的分散式檔案系統 (Distributed File System,如 Hadoop Core 中的 HDFS),是在探討 Big Data 儲存系統時,一定要論及的新興技術。
     
  4. 算 (Data Computing)



    數位資料的運算。傳統方法要對一批資料進行運算時,首先要面對的,是一次或分批把資料從 Cold Data Storage (SAN/NAS/Tape) 搬運到運算資源 (CPU/RAM) 所在的地方。這個資料傳輸作業,在資料量很大的時候,將耗費一定的時間,若是分批傳輸、分批運算,還得付出更多的 Overhead。為何 Hadoop 可以成為 Big Data 處理的主流技術平台,就是因為它實踐了 Data Locality (資料本地性),運算資源與被運算的資料,擺在同一台電腦內,任務即啟即算,資料不必從 Cold Data Storage 傳輸過來,省卻了許多時間。

    一個資料有多份 (Replica) 同時存在 HDFS 上,加上 Map/Reduce 平行運算架構,讓一個含多個工作節點的 Hadoop 叢集,可以在運算大量資料上,比傳統運算方法更有效率,也更節省成本,因為電腦只要使用 x86 規格的硬體就可以了 (CPU:Intel 或 AMD  / RAM:DDR / HDD:SATA, SAS 或 SSD) 。

    Big Data 在「算」這個階段的任務,通常是在為下一個階段「用」,進行處理或預處理。熟悉傳統資料倉儲的朋友,可以想像這階段是在對多結構化資料進行 ETL 的料理操作。料理方式是要煎、煮、炒、炸、滷、燜、煨,就看後面的各種應用要如何擺盤承接;又或者應該反過來說,是因為要成就怎樣的一道好菜,所以就該有對應的料理方式。等下一「用」階段,我們再來仔細說明。

    在這個資料預處理運算階段,有工具就用工具,沒工具就全手工來撰寫資料處理程式。
     
  5. 用 (Data Application)



    數位資料的應用。舉些大家經常在使用的 Big Data 應用,藉此來理解「生、留、存、算」與「用」之間的關係:

    關鍵字搜尋 (Keyword Search) 應用:它的前置處理包含要爬取網站資料 (生、流)、儲存資料 (存)、進行索引 (算),之後才是提供搜尋的人機介面 (用)。

    個人化推薦 (Personalized Recommendation) 應用:它的前置處理包含要接取使用者在網站留下的點擊行為資料 (生、流)、儲存資料 (存)、執行推薦演算 (算),之後才是提供個人化的推薦清單給網頁設計者進行介面的整合 (用)。

    更多的 Big Data 應用,如顧客洞察 (Customer Insight)、各種的即時查詢 (Real-time Query),都可以找出對應的前置處理流程與最後應用的模式。

  6. 看 (Data Visualization)



    數位資料的視覺呈現。資料的視覺化,本來就是資料應用的一種,但因為它具有特殊性,屬於資料價值產出的一環。因為重要,所以我們特別把它獨立成一個階段。

    我們預期資料科學家是一個會說故事的人,我們從小也被教導「一圖勝千文」,一份設計良好的視覺化圖表,往往是讓故事更容易地被理解、為故事增添精彩劇情的關鍵武器。市場上本來就有許多的資料視覺化工具 (Visualization Tool),內建了許多的統計、分析模型。另外,以 GIS (地理資訊系統) 也是一種很常見的資料呈現工具。若標準工具表現不出特殊的需求,客製化一份精美的 Infographic (資訊圖表),可以更適切地傳達故事的精華、展現洞見,或直指問題的核心。

    存在企業已久的報表 (Report)、數位儀表板 (Dashboard),本來就是「看」資料的工具。在 Big Data 的浪潮下,以上所有的資料視覺化工具,除了原本就有的資料庫、資料倉儲介接功能,往往也會新增連結 Hadoop 的能力,以便擴大資料的視野。

Big Data Lifecycle 與產業發展

對,我知道:有沒有具備發展成為一個新產業的潛力,或是不是能夠為既有產業加值的可能性,往往是台灣「產官學研」探討一個新興技術的重要角度。從前述「生、流、存、算、用、看」各階段的說明,我們可以歸結:發展 Big Data 相關的產品與應用,應該不是為了要創造一個新興的產業,而是應該著重在提高既有 ICT 相關硬體、軟體、服務業者的價值。

姑且先撇開諮詢顧問、教育訓練等專業服務,以及代理/經銷的純銷售,讓我們從「設計與生產」的行為切入。Big Data 市場的白地,並不是從頭打造一個新的產業,而是在既有的產業上,開創出新的產品類別與營收。







軟體
平台/工具軟體 (ISV)
應用/工具軟體 (ISV)
軟體專案 (SI/VAR)
ICT 硬體
表 1. Big Data Lifecycle 與相關市場商機對應表

從表 1. 可知,Big Data 的「生、流、存、算」,從數位終端、通訊/網路、到後端的儲存系統、伺服器,每一個環節都可以幫 ICT 硬體廠商創造新的商機。而「存、算、用、看」,都是軟體業者可以著墨的空間,但因為軟體行業中又有以發展標準化產品或解決方案為主的 ISV (獨立軟體開發商)、也有以客製化專案為主要市場的 SI (系統整合商) 或 VAR (加值經銷商),他們各自都可以有更細化的發展重點。

結語:讓數據價值引領 Big Data 市場走向康莊大道

在 Big Data 還處於早期市場的現階段,廠商唯有多說說數據價值、應用、案例、方法、服務,邀請客戶一同參與發展,而非僅談技術、架構,才能夠及早跨越那道市場的鴻溝,引發龍捲風暴、邁向康莊大道。




4 則留言:

  1. 寫得真棒,不過個人覺得其實還有資料收集與資料清洗,這兩個也是重要流程與商機,所以可以說是資料收集→資料流動→資料儲存→資料清洗→資料運算→資料應用→資料呈現→資料決策,簡單說就是收→流→存→洗→算→用→看→策。

    資料收集(Data Collection)與資料清洗(Data cleansing)也有許多公司在做,像是Data Collection Services、Blue Donkey 等。

    而資料清洗在知識挖掘(KDD)的流程中,又叫做資料前置處理(data pre-processing)。

    回覆刪除
  2. Hi Jerry, 感謝您的留言。

    有時候,相同的事情,闡釋或理解的角度或許不同,但不影響事情的本質與料理的方法。在 Client/Server 架構中,Client side 的"收" 或許就是 "生";在 Server side 的"算",或許就包含了 "洗",或是 "預處理" (ETL/ELT/Pre-processing);至於 "策",則可能有機器的自動 (Machine Learning),或是人的手動 (Human Decision)。前者,我是把它歸到 "用" 中。

    另外值得注意的是:這些階段劃分,在不同的 Use Case 上,有時順序不一見得是這篇文章所述及的這樣。比如在 streaming data 的處理上,更多時候是 "流" -> "算" (-> "存" 或 "不存")。

    可見「生、流、存、算、用、看」六階段劃分,也是一種簡化的歸納嘗試,只是便於討論而提出的一種架構。

    回覆刪除
  3. Dear Fred

    謝謝您的分析,Jerry獲益良多!!

    回覆刪除
  4. 謝謝你的分析 讓我對BIG DATA的知識更加的有概念

    回覆刪除