共用方式為


資料標準化

數據會以各種格式抵達 Data Lake 帳戶。 這些格式包括人類可讀取的格式,例如 JSON、 。CSV 或 XML 檔案,以及壓縮的二進位格式,例如.tar或.gz。 傳入的數據可能有許多不同的大小,從幾個已編輯的檔案到整個 SQL 資料表的匯出。 資料也可以成為大量的小型檔案,每個只有幾 kB,例如來自 IoT 解決方案的即時事件資料。

雖然 Azure Data Lake Storage Gen2 支援所有類型數據的儲存且沒有任何限制,但您應該仔細考慮您的數據格式,以確保處理流程的效率並優化成本。

許多組織現在會標準化其內嵌格式,並將計算與記憶體分開。 因此,Delta Lake 格式已成為將數據擷取到擴充層的慣用標準。 從擴充層,您的數據應用程式小組可以將數據提供成反映其使用案例的格式。

備註

使用 Delta Lake 支援批次和串流使用案例,從初始數據匯入到增強層。

本文提供 Delta Lake 的概觀、其效能,以及其如何協助您達成合規性支援,以及如何在數據從來源流向擴充層時標準化數據。

三角洲湖

Delta Lake 是一個開放原始碼的儲存層,能為大數據工作負載和 Apache Spark 帶來 ACID(原子性、一致性、隔離性和持久性)交易。 Azure Databricks 與 Linux Foundation Delta Lake 兼容。

Delta Lake 主要功能

特徵 / 功能 說明
ACID 交易 數據湖通常會透過多個進程和管線來填入,其中有些會同時寫入數據與讀取。 過去,數據工程師曾經需要經歷一個手動且容易出錯的流程,以確保數據完整性,直到 Delta Lake 和交易功能開始使用。 Delta Lake 會將熟悉的 ACID 交易帶入 Data Lake。 它提供最強的隔離等級、可串行化性。 如需詳細資訊,請參閱 深入解析 Delta Lake:剖析交易記錄檔
可調整的元數據處理 在巨量數據中,即使是元數據也可以是「巨量數據」。 Delta Lake 會將元數據視為與其他數據相同。 它會使用Spark的分散式處理能力來處理所有元數據。 因此,Delta Lake 可以輕鬆地處理具有數十億個分割區和檔案的 PB 級別數據表。
時間移動 (資料版本控制) 復原更改或返回先前版本的能力是事務處理的一項重要功能。 Delta Lake 提供數據的快照集,可讓您還原為舊版的數據以進行稽核、復原或重現實驗。 在介紹 Delta Lake Time Travel for Large Scale Data Lake深入瞭解。
開啟格式 Delta Lake 的基準格式 Apache Parquet 可讓您套用有效率的壓縮和編碼配置。
整合批次和串流來源和接收 Delta Lake 中的資料表同時是批次資料表和串流來源與接收端。 數據擷取串流、批次歷程記錄回填和互動式查詢全都已現成運作。
架構強制執行 綱要強制檢查可協助您確保您具有正確的資料類型和必需的欄位,以避免因錯誤資料導致數據不一致。 如需詳細資訊,請參閱 跳入 Delta Lake:架構強制執行和演進
架構演進 Delta Lake 可讓您對數據表架構進行自動套用的變更,而不需要撰寫移轉 DDL。 如需詳細資訊,請參閱 跳入 Delta Lake:架構強制執行和演進
稽核歷程記錄 Delta Lake 事務歷史記錄會記錄您對數據所做的每項變更的詳細數據。 這些記錄提供所有變更的完整稽核線索。
更新和刪除 Delta Lake 支援適用於各種功能的 Scala、Java、Python 和 SQL API。 合併、更新和刪除作業支援可協助您符合合規性需求。 如需詳細資訊,請參閱宣佈 Delta Lake 0.6.1 版本宣佈 Delta Lake 0.7 版本,以及使用 Python API 在 Delta Lake 數據表上執行簡單、可靠的 Upserts 和 Deletes(其中包括合併、更新和刪除 DML 命令的代碼段)。
100% 與 Apache Spark API 相容 您的開發人員可以以最小的變更使用 Delta Lake,因為它與現有的 Spark 實作完全相容。

如需詳細資訊,請參閱 Delta Lake 專案

如需完整的文件,請瀏覽 Delta Lake 文件頁面

績效

使用許多小型文件通常會導致讀取和列出操作頻繁,帶來不足的效能以及更高的成本。 Azure Data Lake Storage Gen2 已針對較大的檔案進行優化,讓您的分析作業執行速度更快且成本較低。

Delta Lake 包含許多功能,可協助您 使用檔案管理將效能優化

範例包括:

  • 事務歷史記錄會將昂貴的 LIST 作業降到最低。
  • Z-Ordering(多維度叢集)使您的查詢篩選條件可以進行優化的述詞下推。
  • 原生快取和查詢優化可減少所需的記憶體掃描量。 如需詳細資訊,請參閱 使用快取優化效能
  • 優化會將小型檔案合併成較大的檔案。

讓這些優化成為數據載入程式的一部分,以維護數據新鮮度和效能。

Data Lake 分區

數據分割牽涉到在數據存放區中組織數據,讓您可以管理大規模的數據並控制數據存取。 分區可以改善延展性、減少爭用,以及最佳化效能。

分割資料湖時,請確定您的設定:

  • 不會危害安全性
  • 具有清楚的隔離,並與您的數據授權模型保持一致
  • 非常適合您的數據擷取流程
  • 具有定義完善的路徑,以獲得最佳數據存取
  • 支援管理和維護工作

一般實務

數據分割設計的一般作法如下:

  • 在早期專注於您的安全性考量,並搭配授權設計數據分區。
  • 您可能想要允許資料備援以交換安全性。- 定義命名慣例並遵守它。
  • 您可以巢狀多個資料夾,但要確保它們保持一致。
  • 在您的資料夾結構和檔名中包含時間元素。
  • 請勿使用日期分割來啟動資料夾結構。 最好將日期保持在較低資料夾層級。
  • 請勿在單一資料夾結構中結合混合檔格式或不同的數據產品。

小提示

您的資料夾結構應該有可優化存取模式和適當檔案大小的分割策略。 在規劃區域中,根據最佳檢索來設計結構,請謹慎選擇高基數的分割索引鍵,這會導致過度分割,進而導致不理想的檔案大小。

如需 Data Lake 區域的詳細資訊,請參閱 Data Lake 區域和容器

合規性支援

Delta Lake 會新增交易層,以提供數據湖之上的結構化數據管理。 此新增功能可大幅簡化並加快您在消費者要求下尋找和移除個人資訊(也稱為「個人資料」的能力。 交易層支援 DELETE、UPDATE 和 MERGE 等作業。 如需詳細資訊,請參閱 最佳做法:使用 Delta Lake 的 GDPR 合規性

總結

將本文所列的數據標準化套用至您的平臺。 以 Delta Lake 格式開始,然後開始新增優化與合規性的程式。 您可以決定建立依排程執行某些優化路由的服務,或建立移除個人資訊的合規性服務。

後續步驟