DeltaLake介紹

概述

DeltaLake是DataBricks的一個開源項目,它是帶ACID的開源存儲層,可爲數據湖(data lake)帶來可靠性。它和Spark的API完全兼容。

總體架構圖

在這裏插入圖片描述

DeltaLake的關鍵特點和優勢

ACID事務(ACID Transactions)

Data lakes(數據湖)通常具有多個數據管道併發讀取和寫入數據,並且由於缺少事務,數據工程師必須經過繁瑣的過程才能確保數據完整性。Delta Lake將ACID事務引入數據湖。它提供了可序列化性,和最強的隔離級別。

說明:在進行數據讀取或寫入時經常需要考慮該過程的完整性,而要保證該性質需要多做很多額外的工作,Data lakes把這個過程進行了封裝,讀取和寫入數據事務性。

可伸縮的元數據處理(Scalable Metadata Handling)

在大數據中,元數據本身也可以是“大數據”。Delta Lake將元數據像數據一樣對待,利用Spark的分佈式處理能力來處理其所有元數據。因此,Delta Lake可以輕鬆處理具有數十億個分區和文件的PB級表。

時間回溯(數據版本控制)(Time Travel (data versioning))

Delta Lake提供了數據快照,使開發人員可以訪問和還原到較早版本的數據以進行審計,回滾或重現實驗。可以在這篇文章中瞭解更多這方面的信息。

說明:Data lakes可以保留數據集的歷史版本,這對於數據處理提供了可靠性的保證。

開放格式(Open Format)

Delta Lake中的所有數據均以Apache Parquet格式存儲,從而使Delta Lake能夠利用Parquet固有的高效壓縮和編碼方案。

統一批處理和流源和接收器(Unified Batch and Streaming Source and Sink)

Delta Lake中的表既是批處理表,又是流式數據源的接收器。流數據提取,批處理歷史回溯和交互式查詢都可以直接使用。

說明:把批和流的數據源的接入進行了抽象,這樣可以統一接入流或批處理的多個數據源。

強制表結構(Schema Enforcement)

Delta Lake提供了指定和強制表結構的功能。這有助於確保數據類型正確和存在必需的列,從而防止不良數據導致數據損壞。有關更多信息,請參考:《Delta Lake:表結構實現和演變》。

說明:強制表結構,可以保證數據正確性,特別是爲機器學習進行特徵計算時,這種強制的特性讓特徵的計算更加可靠。

表結構演變(Schema Evolution)

大數據在不斷變化。Delta Lake使您能夠修改可自動應用的表結構,而無需繁瑣的DDL。有關更多信息,請參考:《Delta Lake:表結構實現和演變》。

說明:方便對錶結構進行自動應用的修改。

歷史操作審查(Audit History)

Delta Lake事務日誌記錄有關數據所做的每項更改的詳細信息,從而提供對更改的完整審覈跟蹤。

更新和刪除數據

Delta Lake支持Scala / Java API合併,更新和刪除數據集。這使您可以輕鬆遵守GDPR和CCPA,還可以簡化諸如變更數據捕獲之類的用例。有關更多信息,請參閱使用Python API在Delta Lake Tables上宣佈Delta Lake 0.3.0版本和簡單,可靠的更新和刪除,其中包括用於合併,更新和刪除DML命令的代碼段。

說明:可以更加方便的對數據集進行修改和刪除。

100%與Apache Spark API兼容

開發人員可以與現有的數據管道一起使用Delta Lake,而只需很少的更改,因爲它與常用的大數據處理引擎Spark完全兼容。

說明:可以轉成df或rdd,這樣就可以使用spark原生態的算子,也可以很容易的轉成Data lakes。

總結

本文介紹了Delta Lake數據湖的基本概念和優勢。
該數據湖很多的特性都非常有用,對於數據集的管理和數據處理提供了很好的工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章