LakeFS 事務:使用 ACID 原則維護資料完整性

我們最近推出了新的高級 Python SDK,它提供了與 LakeFS 互動的更友善的介面,這是我們為讓資料專業人員的生活變得更簡單而不斷努力的一部分。

在本文中,我們將向您介紹 High Level SDK 的一個很酷的新功能:交易!

繼續閱讀以了解 LakeFS 事務是什

麼以及它們如何幫助我們更輕鬆地進行資料轉換,同時確保我們遵守 ACID 原則。

什麼是交易
在資料庫領域,事務是一個工作單元,由一個或多個操作組成,例如插入、更新或刪除記錄。事務的關鍵特徵是其原子性,這意味著一個事務中的所有操作都被視為一個不可分割的單元。

交易遵循酸(一個多密性

堅持性,我安慰,Durability)屬性,確保操作可靠並保持資料完整性。

原子性保證事務中的所有操作要么成功完成,要么全部失敗,從而防止可能導致狀態不一致的部分更新。一致性確保資料庫在交易前後保持有效狀態。隔離性確保事務彼此獨立執行,防止幹擾。持久性確保交易一旦提交,其變更就是永久性的,並且不會出現系統故障。這些屬性共同有助於資料庫系統的可靠性和完整性。

LakeFS 交易雖然lakeFS不直接實

現傳統的資料庫事務,但它引入了版本控制系統和分支機制來管理資料湖中的更改,從而允許模擬事務概念。

在 LakeFS 的上下文中,我們可以 荷蘭 WhatsApp 號碼數據 將「交易」視為對資料湖所做的一系列更改,例如新增、更新或刪除物件。版本控制機制使我們能夠隨著時間的推移追蹤這些更改,並在需要時恢復到先前的狀態,從而提供一定程度的一致性和可追溯性。

在實踐中,我們可以透過從來源

分支分支出來來模擬lakeFS中的事務,執行事務中所需的所有操作,並在完成後將側分支合併回來源分支。

下圖展示了lakeFS中的事務流程:

展示 LakeFS 中事務流程的圖表

WhatsApp數據

讓我們分解一下模擬事務的lakeFS步驟:

從來源分支建立側分支
這使我們能夠自由地更改數據,同時保持來源分支的完整性(一致性)

在側分支上執行 業已經準備好這份日曆幾 物件操作
對資料執行所有必要的轉換(隔離)。

提交更改為了使變更持續存在

我們必須將它們提交到側分支(耐用性)。

將變更合併回來源分支
合併操作確保所有 埃克萊拉納賈 變更同時引入到來源分支(原子性)。

如果發生故障,來源分支不會受到影響。

清理:刪除側分支

這是一個可選(儘管建議)的步驟,以確保我們的資料湖(和 LakeFS)​​保持整潔!

復原
用 LakeFS 術語來說,回滾事務只是意味著我們不會將側分支合併回來源分支(不要忘記刪除分支)。

隔離等級

LakeFS 的高階 SDK 事務機制緊

密模擬傳統資料庫系統中的「已提交讀取」隔離等級。在這種模式下,交易只讀取已提交的數據,防止髒讀;這是透過利用 LakeFS 的版本控制機制(分支和合併)來完成的。

但是,需要注意的是,在此隔離等級中,無法保證「可重複讀取」。在整個事務期間,其他參與者可能會修改資料並將其提交到分支,這可能會在連續讀取相同資料時導致不同的結果。如果分支發生更改,這也可能導致無法完成事務,從而在嘗試完成事務時導致合併衝突。

返回頂端