Lakebase 將儲存與運算分離。 你的資料庫資料存在於 Databricks 管理的分散式儲存層,獨立於執行查詢的運算實例。 無論運算正在運行、暫停或擴展,儲存空間都會持續存在並保持高度可用。
關於計算層與儲存層如何協同運作,包括安全管理員與頁面伺服器,請參閱 Lakebase 架構。
Note
在 Azure 上,Lakebase 會將資料持久化到 Azure Blob 儲存體 作為雲端物件儲存層。 根據區域不同,儲存會使用本地冗餘儲存(LRS)或區域冗餘儲存(ZRS)。 LRS 能在同一資料中心內複製多個副本,提供區域內的高耐久性。 ZRS 能在多個可用性區域複製資料。 Databricks 負責管理儲存冗餘層。 它無法由客戶自行設定。
儲存層
Lakebase 採用分散式儲存架構。 沒有任何一台機器能掌握你資料庫的權威狀態。 Lakebase 也會將資料持久化至 Databricks 管理的雲端物件儲存,這是整個儲存層的耐久性基礎。 雲端物件儲存設計為極高的耐久性,且不依賴非同步複製,因此複製延遲不會影響耐用性。 Azure Databricks 管理儲存冗餘配置。
在 Azure 上,Lakebase 會將資料持久化到 Azure Blob 儲存體 作為雲端物件儲存層。
儲存冗餘與運算 HA 無關
Azure Databricks 獨立於高可用性(HA)計算設定之外,管理 Lakebase 的儲存冗餘與可用性。 啟用或停用 HA 不會影響儲存冗餘。
高可用性是運算層的一項特性。 它會在另一個可用區域中預先佈建次要運算執行個體,以便自動進行容錯移轉。 儲存冗餘與運算 HA 是獨立的層。
| 特徵 | 儲存體備援 | 運算高可用性(HA) |
|---|---|---|
| 強制的 | Yes | No |
| 可由客戶設定 | No | Yes |
| 它所保護的是什麼 | 資料的耐久性與可用性 | 執行查詢的能力 |
儲存分離如何促成其他功能
儲存與運算分離使 Lakebase 能具備多項功能:
- 零資料遺失(RPO = 0): 因為 Lakebase 會在確認之前,先在儲存層中永久記錄所有已提交的交易,所以當運算失敗、重啟、縮放到零或故障轉移時,你不會失去任何已提交的資料。
- 即時分支: Lakebase 以共享儲存為基礎,透過寫入時複製(copy-on-write)建立分支。 此過程不會重複資料。
- 閱讀複本: 多個運算實例從同一共享儲存層讀取資料。 此方法不需資料複製。
- 擴縮至零: 運算會暫停,但儲存仍會保留。 當運算恢復時,資料立即可用。
- 快速故障轉移: 由於儲存與運算分離,故障轉移不涉及資料移動。 Lakebase 會推廣一個次要的運算實例,連接到現有的儲存空間。