這兩種系統的主要差異在於資料結構和使用方式。資料湖泊適用於原始的非結構化資料,資料倉儲則專門用來處理結構化、經過處理的資料。
功能 | 資料湖泊 | 資料倉儲 |
資料類型 | 所有資料 (原始、結構化、非結構化) | 經過處理的結構化資料 |
Purpose | 尚未定義 | 定義明確 |
使用者 | 資料科學家、資料工程師 | 資料分析師、商業智慧分析師 |
無障礙功能 | 高度靈活,輕鬆變更 | 難以變更,較為僵化 |
處理中 | 讀取時執行結構定義 (使用時定義) | 寫入時執行結構定義 (儲存前定義) |
優點 |
|
|
功能
資料湖泊
資料倉儲
資料類型
所有資料 (原始、結構化、非結構化)
經過處理的結構化資料
Purpose
尚未定義
定義明確
使用者
資料科學家、資料工程師
資料分析師、商業智慧分析師
無障礙功能
高度靈活,輕鬆變更
難以變更,較為僵化
處理中
讀取時執行結構定義 (使用時定義)
寫入時執行結構定義 (儲存前定義)
優點
假設您正在開發一款手機遊戲。您希望追蹤每位使用者的每次按鈕點擊,但目前還無法確定哪些點擊資料對下次的更新很重要。您可以將所有這些原始的 JSON 事件直接傳送至資料湖泊。隨後,資料科學家便能執行指令碼,在這堆原始資料中找出使用型態。
另一個例子是 IoT 感應器。假設有數千個感應器每秒不斷傳送溫度資料,您可以將這些原始資料傾印至湖泊。如此一來,您就能完整保留事件記錄,不必擔心資料的格式化問題。
假設一間零售公司需要追蹤銷售業績。每天晚上,系統會擷取當日的所有訂單、清理地址、計算稅金,然後將資料儲存至資料倉儲。隨後,經理便能執行報表,查看在芝加哥售出的藍色襯衫數量。此時的資料整齊乾淨,可直接用於圖表。
銀行也可能使用資料倉儲來追蹤帳戶。他們必須在任何時刻,都能精確掌握每位客戶的餘額。銀行需要的不是原始記錄,而是能夠看到結構化的資料表,清晰顯示每筆交易。
資料科學家通常需要建構 AI 模型,以便即時偵測並攔截詐欺預訂。由於這些資料來自多處,例如網站記錄、行動應用程式事件和第三方合作夥伴,因此資料湖泊最適合用來訓練 AI 模型。
首先,設定一個管道,將每個原始事件全數傳送至 Cloud Storage。包括來自網站的雜亂 JSON 檔案,以及行動應用程式的二進位記錄。這個階段您完全不必擔心資料的格式化問題,因為 Cloud Storage 就是專為這種大量規模的儲存需求而打造。
為了讓 AI 模型能使用資料,您需要清理資料。您可以使用 Google Cloud Service for Apache Spark 執行無伺服器 Apache Spark 工作。這項服務可將數百萬筆原始記錄轉換為結構化格式,且無需管理任何伺服器或叢集。
資料準備就緒後,即可將資料輸入機器學習工具。由於原始資料仍保留在資料湖泊,您可以隨時返回查看「隱藏」的詳細資料,進一步提升模型成效。
資料湖泊能以低成本儲存所有資料,並在建構模型時只處理必要的資料。
接著來看看零售商的資料科學應用實例。您可以預測公司下個月的冬季外套銷售量。由於銷售資料已清理完畢並儲存在資料庫,建議您使用資料倉儲來完成這項工作。
首先是 BigQuery,這項服務可做為公司的中央資料倉儲。銷售資料已整理成清楚的資料表,包含日期、價格和產品 ID 欄。由於資料已結構化,因此您不必花時間清理。
編寫 SQL 查詢,用來查看過去五年的冬季銷售資料。即使多達數十億資料列,BigQuery 也能在幾秒內找出答案。這種速度可讓您嘗試不同構想,並快速修正預測結果。
預測結果準備就緒後,您可以使用內建工具建立資訊主頁。行銷團隊現在可以準確掌握需要訂購多少件外套。BigQuery 是無伺服器服務,公司只需支付執行查詢的費用,因此成本相當低。
在這個用途中,資料倉儲是最佳工具,因為它能使用已處理為可用格式的資料,快速可靠地回答特定業務問題。
選擇資料湖泊或資料倉儲,取決於您想建構的內容。如果您有大量原始資料,並想透過程式碼探索資料,建議從資料湖泊著手。如果您有特定的業務問題,並希望快速取得可靠的報表,資料倉儲可能是較好的選擇。許多企業會同時使用這兩種服務,兼顧兩者優點。