在 Microsoft Fabric 中實作獎牌 Lakehouse 結構
本文章將介紹獎牌 Lakehouse 結構,以及如何在 Microsoft Fabric 中實作 Lakehouse。 本文有多個目標對象:
- 資料工程師:設計、建置和維護基礎結構與系統的技術人員,讓組織能夠收集、儲存、處理和分析大量資料。
- 卓越中心、IT 和 BI 團隊:負責監督整個組織中分析作業的團隊。
- Fabric 管理員:負責監督組織中 Fabric 的管理員。
獎牌 Lakehouse 結構 (通常稱為獎牌結構) 是組織用來以邏輯方式在Lakehouse 中組織資料的設計模式。 這是 Fabric 的建議設計方法。
獎牌結構包含三種不同的層級 (或區域)。 每一層都會指出儲存在 Lakehouse 中的資料品質,而較高層級代表較高的品質。 這個多層式方法可協助您為企業資料產品建置單一事實來源。
重要的是,當資料在層級中進行處理時,獎牌結構會保證不可部分完成性、一致性、隔離性和持久性 (ACID) 等屬性。 從未經處理資料開始,一系列驗證和轉換作業會將資料最佳化以進行有效率分析。 一共有三個獎牌階段:銅級 (原始)、銀級 (經驗證) 和金級 (擴充)。
如需詳細資訊,請參閱什麼是獎牌 Lakehouse 結構?(機器翻譯)。
Fabric 中的 OneLake 和 Lakehouse
新式資料倉儲的基礎是資料湖。 Microsoft OneLake 是整個組織的單一、統一、邏輯資料湖。 這會隨每個 Fabric 租用戶自動佈建,且旨在成為所有分析資料的單一位置。
您可以使用 OneLake 達成下列目標:
- 移除孤島並減少管理工作。 所有組織資料都會在一個資料湖資源內受到儲存、管理和保護。 因為已使用您的 Fabric 租用戶佈建 OneLake,所以不會再佈建或管理任何資源。
- 減少資料移動和重複情形。 OneLake 的目標是只儲存資料的唯一複本。 較少的資料複本會產生較少的資料移動流程,進而提升效率並降低複雜度。 如有必要,您可以建立捷徑來參考儲存在其他位置的資料,而不是將其複製到 OneLake。
- 搭配多個分析引擎使用。 OneLake 中的資料會以開放式格式儲存。 如此一來,各種分析引擎皆可查詢資料,包括 Analysis Services (由 Power BI 使用)、T-SQL 和 Apache Spark。 其他非 Fabric 應用程式也可以使用 API 和 SDK 來存取 OneLake。
如需詳細資訊,請參閱 OneLake 即為適用於資料的 OneDrive。
若要將資料儲存在 OneLake 中,您可以在 Fabric 中建立 Lakehouse。 Lakehouse 是一種資料結構平台,用於在單一位置儲存、管理和分析結構化和非結構化資料。 其可以輕鬆地擴充為所有檔案類型和大小的大量資料,而且因為其儲存在單一位置,所以可以輕鬆地在整個組織中共用和重複使用。
每個 Lakehouse 都有一個內建的 SQL 分析端點,可讓您在不需要移動資料的情況下部署資料倉儲功能。 這表示您可以使用 SQL 查詢在 Lakehouse 中查詢資料,而不需要任何特殊設定。
如需詳細資訊,請參閱什麼是 Microsoft Fabric 中的 Lakehouse? (機器翻譯)。
資料表和檔案
當您在 Fabric 中建立 Lakehouse 時,系統會自動為資料表和檔案佈建兩個實體儲存位置。
- 資料表是一個受控區域,用於裝載 Apache Spark 中所有格式的資料表 (CSV、Parquet 或 Delta)。 所有資料表 (無論是自動還是明確建立) 都會由系統辨識為 Lakehouse 中的資料表。 此外,任何 Delta 資料表 (也就是具有檔案型交易記錄的 Parquet 資料檔案) 也會由系統辨識為資料表。
- 檔案是一個非受控區域,用於以任何檔案格式儲存資料。 儲存在此區域中的任何 Delta 檔案都不會自動辨識為資料表。 如果您想要在非受控區域中的 Delta Lake 資料夾上建立資料表,您必須使用指向 Apache Spark 中包含 Delta Lake 檔案之非受控資料夾的位置,明確建立捷徑或外部資料表。
受控區域 (資料表) 與非受控區域 (檔案) 之間的主要區別為是否具有自動資料表探索和註冊流程。 此流程只會在受控區域中建立的任何資料夾上執行,但不會在非受控區域中執行。
在 Microsoft Fabric 中,Lakehouse 總管會提供整個 Lakehouse 的統一圖形表示法,讓使用者得以瀏覽、存取及更新其資料。
如需自動資料表探索的詳細資訊,請參閱自動資料表探索和註冊。
Delta Lake 儲存體
Delta Lake 是最佳化的儲存體層級,可提供用於儲存資料和資料表的基礎。 其支援巨量資料工作負載的 ACID 交易,因此是 Fabric Lakehouse 中的預設儲存體格式。
重要的是,Delta Lake 可在 Lakehouse 中提供串流和批次作業所需的可靠性、安全性和效能。 其會在內部以 Parquet 檔案格式儲存資料,但也會維護交易記錄和統計資料,以改善標準 Parquet 格式的功能和效能。
與一般檔案格式相比,Delta Lake 格式可提供下列主要優點。
- 支援 ACID 屬性 (特別是持久性),可防止資料損毀。
- 更快速地讀取查詢。
- 提升資料時效性。
- 支援批次和串流工作負載。
- 支援使用 Delta Lake 時間旅行的資料回復。
- 使用 Delta Lake 資料表歷程記錄增強法規合規性和稽核。
Fabric 會使用 Delta Lake 標準化儲存體檔案格式,而且 Fabric 中的每個工作負載引擎預設都會在將資料寫入新資料表時建立 Delta 資料表。 如需詳細資訊,請參閱Lakehouse 和 Delta Lake 資料表 (機器翻譯)。
Fabric 中的獎牌結構
獎牌結構的目標是在每一個階段進行處理時,逐步改善資料的結構和品質。
獎牌結構包含三個不同的層級 (或區域)。
- 銅級:也稱為原始區域,此第一層級會以原始格式儲存來源資料。 此層中的資料通常是僅限附加資料,而且不可變。
- 銀級:也稱為擴充區域,此層級會儲存從銅層級取得的資料。 未經處理資料已經過清理和標準化,現在已結構化為資料表 (資料列和資料行)。 其也可能會與其他資料整合,以提供所有商務實體的企業檢視 (例如客戶、產品和其他實體)。
- 金級:也稱為已策展區域,此最後層級會儲存從銀層級取得的資料。 資料會經過精簡,以符合特定的下游商務和分析需求。 資料表通常符合星型結構描述設計,可支援針對效能和可用性最佳化的資料模型開發。
重要
因為 Fabric Lakehouse 代表單一區域,所以您會為每個三個區域各建立一個 Lakehouse。
在 Fabric 中的一般獎牌結構實作中,銅區域會以與資料來源相同的格式儲存資料。 當資料來源是關聯式資料庫時,Delta 資料表是不錯的選擇。 銀和金區域包含 Delta 資料表。
提示
請透過 Lakehouse 端對端案例教學課程瞭解如何建立 Lakehouse。
Fabric Lakehouse 指引
本章節提供使用獎牌結構實作 Fabric Lakehouse 的相關指引。
部署模型
若要在 Fabric 中實作獎牌結構,您可以使用 Lakehouse (每個區域各一個)、資料倉儲或兩者的組合。 您的決策應該基於您的偏好和團隊的專業知識。 請記住,Fabric 可為您提供彈性:您可以使用不同的分析引擎,在 OneLake 中使用資料的唯一複本。
下列是要考量的兩種模式。
- 模式 1:將每個區域作為 Lakehouse 建立。 在此案例中,商務使用者會使用 SQL 分析端點來存取資料。
- 模式 2:將銅和銀區域作為 Lakehouse 建立,並將金區域作為資料倉儲建立。 在此案例中,商務使用者會使用資料倉儲端點來存取資料。
雖然您可以在單一 Fabric 工作區中建立所有 Lakehouse,但建議您在獨立的個別 Fabric 工作區中建立每個 Lakehouse。 此方法可讓您在區域層級擁有更多控制權和更佳的治理。
針對銅區域,建議您以原始格式儲存資料,或使用 Parquet 或 Delta Lake。 請盡可能保留資料的原始格式。 如果來源資料取自 OneLake、Azure Data Lake Store Gen2 (ADLS Gen2)、Amazon S3 或 Google,請在銅區域中建立 捷徑,而不是跨區域複製資料。
針對銀和金區域,因為 Delta 資料表提供額外功能和效能增強功能,所以建議您使用該資料表。 Fabric 會標準化 Delta Lake 格式,且 Fabric 中的每個引擎預設會採用此格式寫入資料。 此外,這些引擎會使用 V 順序最佳化針對 Parquet 檔案格式的寫入時間。 該最佳化可讓 Fabric 計算引擎 (例如 Power BI、SQL、Apache Spark 及其他引擎) 以極快的速度進行讀取。 如需詳細資訊,請參閱 Delta Lake 資料表最佳化和 V 順序 (機器翻譯)。
最後,現今許多組織都面臨資料量極大成長的問題,以及越來越需要以邏輯方式組織和管理這些資料,這些問題同時促進了更針對性且更有效率的使用和治理方式。 這一切都使您必須建立和管理具有治理功能的分散式或同盟資料組織。
若要符合此目標,請考慮實作資料網格結構。 資料網格是一種結構模式,著重於建立將資料作為產品提供的資料網域。
您可以藉由建立資料網域,為 Fabric 中的資料資產建立資料網格結構。 您可以建立對應至不同商務領域的網域,例如行銷、銷售、庫存、人力資源和其他領域。 接著,您可以在每個網域內設定資料區域,以實作獎牌結構。
如需網域的詳細資訊,請參閱網域。
瞭解 Delta 資料表資料儲存體
本章節說明在 Fabric 中實作獎牌 Lakehouse 結構的其他相關指引主題。
檔案大小
一般而言,當巨量資料平台有少量的大型檔案,而不是大量的小型檔案時,其效能會更好。 這是因為當計算引擎必須管理許多中繼資料和檔案作業時,就會發生效能降低的情形。 為了提升查詢效能,建議您將資料檔案的大小保持在大約 1 GB。
Delta Lake 具有稱為預測最佳化的功能。 預測最佳化可為您消除手動管理 Delta 資料表維護作業的必要。 啟用此功能時,Delta Lake 會自動識別會受益於維護作業的資料表,然後最佳化其儲存體。 該功能可以透明地將許多較小的檔案合併成大型檔案,而不會對資料的其他讀取器和寫入器造成任何影響。 雖然這項功能應該是卓越營運和資料準備工作的一部分,但 Fabric 也有能力在資料寫入期間最佳化這些資料檔案。 如需詳細資訊,請參閱 Delta Lake 的預測最佳化。
歷程記錄保留期
Delta Lake 預設會維護所有變更的歷程記錄。這表示歷程記錄中繼資料的大小會隨著時間成長。 您應該根據商務需求將歷程記錄資料保留一段時間,以降低儲存體成本。 請考慮只保留上個月的歷程記錄資料,或採用其他適當的時間週期。
您可以使用 VACUUM 命令,從 Delta 資料表移除較舊的歷程記錄資料。 不過,請注意,根據預設,您無法刪除過去七天內的歷程記錄資料,這是為了維護資料的一致性而採取的措施。 預設天數是由資料表屬性 delta.deletedFileRetentionDuration = "interval <interval>"
所控制。 該屬性會判斷檔案遭到系統視為清理作業的候選項目而進行刪除之前,必須經過時間週期。
表格分割區
當您在每個區域中儲存資料時,建議您盡可能使用分割的資料夾結構。 這項技術有助於改善資料管理性和查詢效能。 一般而言,由於資料分割剪除/刪除,資料夾結構中的資料分割會提升搜尋特定資料項目的速度。
當新資料送達時,您通常會將資料附加至目標資料表。 不過,在部份情況下,因為需要同時更新現有的資料,所以您可能會合併資料。 在此情況下,您可以使用 MERGE 命令來執行 upsert 作業。 當您的目標資料表已經過分割時,請務必使用分割區篩選來加速作業。 如此一來,引擎就可以排除不需要更新的分割區。
資料存取
最後,您應該規劃和控制需要存取 Lakehouse 中特定資料的人員。 您也應該瞭解這些人員在存取此資料時要使用的各種交易模式。 然後,您就可以使用 Delta Lake Z 順序索引定義合適的資料表資料分割配置及資料集合。
相關內容
如需實作 Fabric Lakehouse 的詳細資訊,請參閱下列資源。