什麼是資料湖泊?

資料湖泊以非階層式格式儲存大量資料。

學習目標

閱讀本文後,您將能夠:

  • 定義「資料湖泊」
  • 瞭解如何在物件儲存體中使用資料湖泊
  • 對比資料湖泊與資料倉儲

複製文章連結

什麼是資料湖泊?

資料湖泊是一種以其自然(或原始)格式儲存資料的存放庫。資料湖泊也稱為「資料集區」,是物件儲存體的一項功能,物件儲存體是一種基於雲端的儲存系統,設計用於處理大量結構化和非結構化資料。

與更傳統的檔案型儲存系統相比,資料湖泊的非階層結構使其成為一種靈活且可擴展的選項。但是由於其組織設計和復雜的資料輸出定價,從資料湖泊組織和擷取資料可能既緩慢又昂貴。

資料湖泊如何儲存資料?

要瞭解資料湖泊如何儲存資料,重要的是先瞭解物件儲存體的運作方式。傳統的檔案型儲存體將資料儲存在資料夾和檔案的階層中,與此不同的是,物件儲存體在同一位置收集單個資料(或多個物件),並使用可自訂的中繼資料進行標記。

這些中繼資料是指用於識別檔案的資訊(例如名稱、類型、大小或唯一識別碼),可協助使用者或應用程式定位和擷取資料,而無需遵循資料夾之間的特定路徑。由於資料湖泊設計用於包含大量資料,因此指派給每個物件的中繼資料可以非常詳細,這有助於加快擷取速度。

為了說明階層式和非階層式資料儲存之間的區別,我們假設 Bob 想要儲存數千張黑膠唱片。使用階層式儲存系統,他可以將唱片整理到按音樂類型分類的大儲存箱(或資料夾)中。這讓他能夠快速找到任何唱片,但是如果他獲得了更多該類型的唱片,他可能會用完儲存箱中的空間。這種方法類似於檔案型儲存體,在這種儲存體中,必須對資料進行整理分類並將其儲存在特定位置。

相比之下,非階層式儲存系統允許 Bob 以他想要的任何順序將他的所有唱片放在一個房間(或資料湖泊)內。每張唱片都將貼上顯示其類型的標籤。採用這種方法,將無法快速識別單張唱片,但允許 Bob 將更多唱片新增到他的集合中,而無需將它們儲存在特定的儲存箱中。這種方法類似於物件儲存體,在這種儲存體中,可以將大量資料儲存在同一位置。

如需此過程的深入說明,請閱讀什麼是物件儲存體?

什麼是資料湖泊架構?

資料湖泊架構是指用於在資料湖泊中儲存、轉換、存取和保護資料的流程和工具。雖然此架構可能位於雲端也可能位於內部,但它通常都具有以下幾個元件:

  • 資料來源:資料的原始格式,無論是結構化(即適合表格結構的資料,如 SQL 資料庫)、半結構化(即難以放入表格結構的資料,如 HTML 檔案)還是非結構化(例如影片、音訊檔案和影像)
  • 資料擷取:擷取、載入、轉換 (ELT) 是一個多步驟過程,涉及將資料從其原始來源移動到資料湖泊的原始區域,然後對其進行修改使其變得更可用
  • 資料攝取和儲存:將資料新增到資料湖泊的方法——即時攝取(在獲取資料時新增資料)或批次攝取(定期新增資料群組)。無論採用何種攝取方法,所有資料最初都儲存在原始儲存資料區段中;換句話說,它以其最初的原始格式新增到資料湖泊中
  • 資料持久性和編目:將中繼資料新增到原始資料以使其更容易存取和擷取的過程
  • 資料處理:原始資料的不同轉換。包括資料清理(消除不準確或不一致)、資料正規化(對資料重訂格式,使其全部以相同的形式存在)、資料豐富(新增上下文或必要的資訊)和資料結構化(將半結構化或非結構化資料轉換為結構化資料)
  • 資料沿襲:追蹤資料從最初原始格式到其轉換後狀態的過程
  • 資料安全性與治理:確保資料安全性與存取控制、資料沿襲、資料品質以及資料分析與稽核的不同方法

資料湖泊使用案例

資料湖泊可用於多種用途,包括資料分析和探索、物聯網 (IoT) 管理、個人化消費者體驗、進階機器學習等等。資料湖泊也有助於訓練人工智慧 (AI) 模型,此類訓練通常需要非常大的資料集才能產生有效的輸出。

例如,假設一家旅遊公司想要向他們的客戶提供量身定制的自動化旅行建議。利用資料湖泊,他們可以攝取與常見旅行模式、熱門目的地、停留時間、住宿類型和活動相關的大量客戶資料。然後,他們可以使用這些資料來訓練 AI 模型,以編寫更進階的建議,並在理想情況下確保更高的客戶滿意度。

資料湖泊有哪些好處?

  • 靈活性:根據設計,資料湖泊可以儲存任何格式的資料,而無需壓縮或重訂格式
  • 可擴展性:資料湖泊可以處理幾乎無限量的資料,對於需要處理和儲存大量(且不斷增長的)資料的組織而言,這成為了更受歡迎的選擇
  • 可搜尋性:資料湖泊允許透過高度可自訂和詳細的中繼資料進行直接的資料擷取
  • 簡單性:所有資料都儲存在同一個資料湖泊中,而沒有複雜的階層設定

資料湖泊有哪些限制?

  • 可靠性問題:當在沒有有效分類和轉換的情況下向存放庫新增太多資料時,資料湖泊可能會變成資料沼澤,導致資料湖泊不可靠且難以使用
  • 效能低下:儘管資料湖泊設計用於大規模運作,但過多的資料(或無效的查詢引擎)會影響查詢時間和整體效能
  • 資料輸出費用:資料輸出(或資料傳輸)是從組織的雲端儲存提供者中擷取資料的過程。雲端服務提供者通常會對這些傳輸收取費用,並且費用可能會根據組織需要移動的資料量而暴漲

資料湖泊與資料倉儲

資料湖泊是結構化和非結構化資料的大型存放庫。它們的主要優勢是能夠經濟高效地大規模運作,但與其他類型的資料處理和儲存體相比,它們的規模和分類系統的複雜性可能使其效率低下。

與資料湖泊一樣,資料倉儲也是大型資料存放庫。與資料湖泊不同的是,它們僅儲存結構化資料,並使用傳統的檔案階層來組織、儲存和擷取資料。這種架構可實現更快的資料擷取和效能,但它的擴展成本可能比資料湖泊高得多。

一些雲端廠商提供一種稱為資料湖倉 (data lakehouse) 的混合方法,它結合了資料湖泊與倉儲的核心功能和優勢。組織不必將結構化和非結構化資料分開存放在單獨的系統中,而是可以使用資料湖倉來處理和儲存所有類型的資料,它具有資料倉儲的組織功能和高效能以及資料湖泊經濟高效的可擴展性。這種方法還讓組織能透過自動化資料治理和合規性工具,確保更高的資料完整性和可靠性。

Cloudflare 是否支援資料湖泊?

Cloudflare R2 是一種無輸出費用的物件儲存解決方案,可讓組織開發自己的資料湖泊。以 Cloudflare 的全球網路作為後盾,R2 透過多次複製物件來協助確保最佳的資料持久性和可靠性,進而使它們易於存取,並對區域故障和資料遺失具有高度抵抗性。

進一步瞭解R2,以及全球連通雲如何降低在雲端之間移動資料時的輸出費用。