資料與商業智慧詞彙表

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
W
X

Data lake

什麼是資料湖?

資料湖是用於儲存結構化和非結構化資訊的地方,通常以檔案或 blob 的形式儲存。您可以將資料湖視為所有資料的傾倒場,無論其結構、格式或預期用途為何。「湖」的概念在很大程度上是行銷術語,但水生比較來自於資料湖中的資訊以比更嚴格和階層式的資料倉儲更「自然」的狀態流動的想法。而且由於它們可以保存不需要遵守特定結構描述的原始資料,因此在擴展以儲存大量資訊(達到 PB 級)時,資料湖往往具有成本效益。

由於一開始無需定義結構描述,因此資料湖的設定可能很簡單;您可以載入資料以供特定用途或只是為了將其保留以備將來使用,即使您尚不確定需要在其上執行哪些類型的查詢。但是,一旦您完成設定,配置實際讓您的資料湖發揮作用所需的工具可能會變得複雜且昂貴 — 通常需要資料工程師的專業知識。這些工程師將根據需要設定 ETL,甚至根據您的資料湖中的部分資料訓練機器學習模型。

資料湖依賴讀取時結構描述系統,這表示資料只有在從資料湖中提取以進行查詢時,才會根據結構描述進行驗證,而不是在首次寫入時進行驗證。然而,這確實意味著從資料湖中提取和利用資料湖需要更多的工作。僅僅因為資料湖允許更大的彈性,並不表示您應該將所有資料治理都拋諸腦後;進入您的湖泊的資訊仍應具有良好的品質,經過清理和註解,以便您的 ETL 或查詢引擎(以及需要資料的人員)可以充分利用它。

何時使用資料湖

如果您需要分析大量的半結構化和/或非結構化資訊(例如您是一家 IoT 公司),那麼資料湖可能是一個不錯的選擇。由於在寫入資料時無需強制執行總體結構描述,因此如果您同時處理多種類型的資料來源(例如串流資料、結構化應用程式資料庫、來自 IoT 裝置的資料、社群媒體或網路流量),則資料湖也可能是一個有效的解決方案。

最終,具有複雜資料需求的組織可能不會完全依賴資料湖或資料倉儲(甚至資料湖倉),而是建構可以整合兩者的資料架構,同時考慮到組織的整體策略、使用者的需求以及使用者需要執行的查詢類型。

設定資料湖

假設您想要設定資料湖。從廣義上講,流程看起來會像這樣

  1. 選擇雲端儲存供應商。 有一些資料湖服務可以幫助您設定所需的各種層和工具,但其核心是您的「湖」是您的儲存層 — 無論您將結構化和非結構化資料儲存在哪裡(例如在 AWS S3 或 Microsoft Azure 中)。

  2. 識別您的資料來源。 這些資料來源可能是結構化的(例如應用程式資料庫)、半結構化的(例如 XML 或 JSON 檔案)或非結構化的(例如社群媒體貼文、圖片或文字文件)。

  3. 清理並擷取來自這些來源的資料。 在此階段,您將註解這些資料來源(尤其是半結構化和非結構化的資料來源),新增中繼資料並根據您可能對該資料提出的問題類型對其進行標記和分類。一旦清理了這些資料,這些註解的副本就會載入到您的資料湖中,可能以柱狀格式(如 parquet)載入,這種格式更適合分析查詢。

  4. 根據需要建立 ETL 並查詢您的資料湖。 由於其格式混雜且通常是非結構化的性質,工程師和資料科學家通常是直接存取資料湖的人員。像您的資料分析師這樣的人員將透過使用 Presto 或 SparkSQL 等查詢引擎來查詢資料湖,這些引擎在資料湖上執行 ETL,定期結構化資料,以便可以透過 SQL 查詢資料。這些查詢會在清理、註解、柱狀格式的資料副本上執行,而不是在原始資料來源本身上執行(原始資料和清理後的資料都儲存在您的資料湖中)。

重點文章

相關術語

延伸閱讀