淺談資料湖泊(Data Lake)

資料湖泊 (Data Lake) 的概念最早出現在 2011 年 Forbes 雜誌中的一篇文章 ”Big Data Requires a Big, New Architecture” 當中。

有別於資料倉儲 (Data Warehouse) 的資料通常品質較高而且有被預先處理過,資料湖泊 (DL) 可以容納任何類型、大量且龐雜的資料,作為資料素材 (Data Material) 的儲存池 (Pool) ,方便人們未來分析、使用。

一、為何引入資料湖泊

在現今資訊快速流通的時代,巨量資料帶來效率與生產力的龐大效益無庸置疑,企業若能深入分析資料,就能發揮龐大的潛能,讓決策更精準、明確與迅速。

過去企業靠著導入資料庫、資料倉儲、發展商業智慧,得以面對不斷增長的資料及資料應用問題。隨著科技發展,資料量持續增加、類型漸趨複雜,傳統架構將不敷使用,也促使新架構的產生。面對巨量資料的挑戰,引入資料湖泊可以協助我們解決以下問題:

1. 無法有效處理非結構化資料、新的資料探索及挖掘需求

2. 傳統關聯式資料庫及資料倉儲系統,從使用者需求確認、建立資料模型、資料導入及驗證的整個過程曠日廢時

3. 很多時候在蒐集資料的當下,不確定資料模型該如何建立

4. 擴充成本居高不下、受限於垂直擴充架構

Big Bear Lake, CA

二、資料湖泊的特色

概念仍在發展階段

Pentaho 的技術長 James Dixon 創造出的這個詞彙已在業界流傳好幾年,但將資料湖泊實現成為企業組織資源的這個概念仍在初期階段。資料湖泊的定義是超大規模且成本相對低廉的儲存空間,例如 Hadoop 可以儲存任何類型的資料,直到組織需要作企業分析或資料探勘 (Data Mining) 時才把資料取出來。資料湖泊儲存的資料是最原始的形式,未經過任何處理及管理。

不是產品而是概念

就跟資料倉儲一樣,資料湖泊只是一種概念而非技術。我們可以使用許多技術來建構資料湖泊,但本質上,資料湖泊的意義是一種資料儲存的策略。

可容納大規模、各種形式的資料

資料湖泊的設計主要是為了攝取資料,其中包含聚集、匯入資料以及為了儲存資料所作的一些必要處理等程序。

當資料倉儲的儲存成本模型不適合某些大規模的資料輸入情境時,資料湖泊就可以派上用場。此外,資料湖泊不需要使用者在取得資料前事先建立好資料結構 (schema),它可以最簡單的方式輸入資料,並在讀取資料時才建立及套用資料結構。

資料湖泊專案需要不同團隊共同參與

資料湖泊是整個組織共有的資源,而非 IT 部門專有。因此,任何相關團隊都必須參與資料湖泊專案的規劃。它是公司巨量資料架構的核心,因此不應該由某個部門閉門造車。

資料湖泊的最大價值並非技術本身

資料湖泊的商業價值與組織選用的底層技術的關連性不大,相反地,其商業價值來自於組織取用資料湖泊時所施展的資料科學技巧。

資料湖泊不是既有分析平台或架構的取代方案,而是用來彌補既有架構的不足,並協助組織探索新的問題。一旦組織找到新的問題,就可以接著設法給出「最佳解」。最佳化的過程意謂著可能必須由湖泊中取出資料,導入到資料超市 (Data Mart) 或資料倉儲進行處理。

三、架構簡介

當前,Hadoop 是實現資料湖泊的最常用技術手段。Forbes 刊登了一篇文章叫 ”The Data Lake Dream”,將資料湖泊依成熟度分為四個級別。

1. 第一級是在尚未引入 Hadoop 之前。這時各個大型應用都有自己的資料庫,也有自己的資料倉儲來做數據分析,是目前企業主要的資料架構。

各資料庫相互獨立,僅少部分資料庫傳到資料倉儲做分析應用

2. 第二級是企業引入了 Hadoop。企業的應用數據開始和 Hadoop 產生連結。

資料庫將部分資料往 Hadoop 傳遞,透過 Hadoop 進行 ETL (資料萃取、轉換、讀取)

3. 第三級是資料湖泊的成長期。Hadoop 成為預設配置,新系統直接支援 Hadoop,所有應用 (資料庫) 以及外部的數據也引入資料湖泊中。資料倉儲只在某些特定場景之下使用。

Hadoop 成為所有資料儲存的目的地,方便企業進行資料治理 (Data Governance)

4. 第四階段就是資料湖泊和應用雲階段。目前僅有少數獨角獸企業可以做到。在這個階段大量採用 Hadoop,因此必須在資料安全 (Data Security) 與資料治理 (Data Governance) 的部分進行重點加強。

強化資料安全與資料治理

資料湖泊除了使用 Hadoop,好比現在 SQL Database 有 Oracle、MySQL、MS SQL 等,NoSQL Database 有 MongoDB、CouchDB 等,仍存在很多選擇。以現行狀況來說,Hadoop 是國際間處理大數據較為穩定的技術,因此被廣泛地使用。

在應用端,對於穩定結構化且需要高效資料查詢及分析的工作,仍可以資料倉儲的方式建置;而對於非結構化資料、新的資料探索及挖掘需求、不確定的資料模型,以及解決擴充成本及受限於垂直擴充架構等等問題,則可以適時地善用 Hadoop 來扮演優化資料倉儲的角色。

總結

21 世紀 IT 的價值從已經從應用往資料遷移,傳統的大型應用形成孤島,每個應用都有自己的資料。通過引入資料湖泊的概念,企業可以將資料整合起來,並在此基礎上構建資料倉儲及分析環境,最後再將應用開發放上雲端,以新的 IT 架構增加企業競爭力。