什麼是 Delta Lake?
Delta Lake 是開放原始碼儲存層,可將 ACID (不可部分完成性、一致性、隔離和持久性)交易帶入 Apache Spark 和巨量數據工作負載。
Azure Synapse 隨附的 Delta Lake 目前版本具有 Scala、PySpark 和 .NET 的語言支援,且與 Linux Foundation 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 中深入瞭解。 |
開啟格式 | Apache Parquet 是 Delta Lake 的基準格式,可讓您利用格式原生的高效壓縮和編碼配置。 |
整合批次和串流來源和接收 | Delta Lake 中的數據表既是批次數據表,又是串流來源和接收。 串流資料內嵌、批次歷程記錄回填和互動式查詢全都是現成可用的工作。 |
架構強制執行 | 架構強制執行有助於確保數據類型正確且必要的數據行存在,以防止不正確的數據造成數據不一致。 如需詳細資訊,請參閱 跳入 Delta Lake:架構強制執行和演進 |
架構演進 | Delta Lake 可讓您變更可自動套用的數據表架構,而不需要撰寫移轉 DDL。 如需詳細資訊,請參閱 跳入 Delta Lake:架構強制執行和演進 |
稽核歷程記錄 | Delta Lake 事務歷史記錄會記錄對數據所做的每項變更詳細數據,並提供變更的完整稽核記錄。 |
更新和刪除 | Delta Lake 支援 Scala/Java/Python 和 SQL API,以取得各種功能。 支援合併、更新和刪除作業可協助您符合合規性需求。 如需詳細資訊,請參閱宣佈 Delta Lake 0.6.1 版本、使用 Python API 宣佈 Delta Lake 0.7 版本和簡單、可靠的 Upserts 和 Deletes on Delta Lake Tables,其中包含合併、更新和刪除 DML 命令的代碼段。 |
100% 與 Apache Spark API 相容 | 開發人員可以使用 Delta Lake 搭配現有的數據管線,且變更最少,因為它與現有的 Spark 實作完全相容。 |
如需完整文件,請參閱 Delta Lake 文件頁面
如需詳細資訊,請參閱 Delta Lake 專案。