2015年4月26日 星期日

企業資料經濟第二講:為企業打造一座生態豐富的 Data Lake,給 Data Team

2015 上半年,缺水,在台灣各地成為民生的熱議問題。議論缺水問題,免不得要談到水庫。水庫是一個儲水、養水的容積物,它的建構,可以是天然形成,或是人工打造的湖泊。

湖水的補充來源,可以是來自天上的雨水,或是周邊匯集注入的溪江河。除了水資源本身,一座湖很重要的價值,還來自它所涵養的生態系統:各類大小魚群、浮游生物、悠遊鴨鵝、湖中水草、湖邊林木、湖上翱翔的鳥群……展現豐富的生物多樣性與關聯旺盛的生命力。

在多結構化 Big Data 的環境下,Data Team 需要打造的,即是相同概念的企業資料湖 ── Enterprise Data Lake,它匯集與涵養各種的內外部資料,時間跨度更長,內容更接近原始型態,讓 Data Team 成員可以潛入、探索、實驗各種的資料產品。

圖 1. Enterprise Data Lake,現代企業必備的 Data Infrastructure 
(「賽里木湖日出」by fred chiang)

水是湖的基本組成,資料是資料湖的基本組成;而資料的源頭,可以是來自以下的資料批次轉入,或是資料流即時串接:

  • 資料庫 (結構化資料)
  • 資料倉儲 (結構化資料)
  • Web Click-stream (半結構化資料)
  • App Click-stream (半結構化資料)
  • 網頁爬蟲 (非結構化資料)
  • 各種軟硬體工作日誌 (半結構化資料)
  • CSV/XML/JSON 檔案 (半結構化資料)
  • IoT Sensor (半結構化資料)
  • 嵌入式設備 (半+結構化資料)
  • 流媒體 (半+非結構化資料)
  • 多媒體檔案 (半+非結構化資料)
  • 各種格式的檔案 (半+非結構化資料)

Data Lake vs. Bottled Water

Data Lake 這個概念,源自 Pentaho CTO James Dixon 2010.10.14 在他部落格發表的文章《Pentaho, Hadoop, and Data Lakes》,其比較概念是 Data Warehouse 中的 Data Mart (資料市集 ) :每一個 Data Mart 都必須有預先定義好的 Data Model,就好像瓶裝水 (Bottled Water) ── 被淨化、妥善包裝、結構化過。

Data Mart 的運作是 Schema-on-Write,使用上有以下特性:
  • 需要依據商業問題去事先定義 Schema,再存入資料,所以通常不會包含所有 Data Warehouse 中的資料。
  • 資料在 Schema 層級被整合過,喪失原始資料的可視度;亦即無法往下展開詳情 (Drill-down)。 
發展了近二十年的 Data Warehouse/Data Mart 不是不好,而是商業運作的時空背景已經變遷,在網路、行動、社群的時代,企業面對的是高度動態的環境,市場競爭、客戶體驗、精準行銷、產線效能、供應鏈管理等等,內部需要整合,外部需要競爭,「事先定義」這件事,在反應速度與洞察深度兩方面,是不是能夠符合現代企業的管理需求,做到隨需應用?

Schema-on-Write vs. Schema-on-Read

以下問題是值得慣用 Data Mart 製作分析報表的 Data Team 來好好思考的:
  1. Data Model 或報表需求改變,要做哪些事、要用多久的時間才得以完成?
  2. 要回答新的商業問題,需要製作新的報表、增加資料來源、處理新的資料格式、增添儲存與運算資源。若是採用擴充 Data Warehouse 的方式,成本是不是符合經濟效益?
企業的 Data Team,必須引入現代的 Data Lake,在 IT 管理的「事先定義」思維之外,加上商業價值的「探索」思維。亦即,一個可在應用時動態決定 Schema (Schema-on-Read)、不會喪失資料細節、很容易隨需橫向擴充、成本又不會太高的 Big Data 平台,是值得導入的。而 Hadoop,可說是目前企業建構 Data Lake 的首選系統。


圖 2. Etu Data Lake 由 Etu Manager 組成,Hive/Impala 為其中重要的 Hadoop 生態組件

讓 Data Warehouse、RDBMS 與 Data Lake 互注活水

一旦選擇了 Hadoop 來建構企業的 Data Lake,更棒的是,既有的 Data Warehouse 與 RDBMS,都可以成為資料注入與流出的支系,讓它們留在整個資料生態系統中,就「事先定義」的運作範疇,繼續發揮傳統 OLAP 與 OLTP 的角色。

  

沒有留言:

張貼留言