共用方式為


分支

這很重要

Lakebase 自動擴展在以下地區處於 Beta 階段:eastus2westeuropewestus

Lakebase 自動縮放是 Lakebase 的最新版本,具備自動縮放運算、縮放至零、分支及即時還原功能。 關於與 Lakebase Provisioned 的功能比較,請參見「選擇版本」。

在 Lakebase 中分支讓你能安全地進行版本化、測試和演進資料環境,類似於在 Git 中分支程式碼。 你可以即時建立獨立且功能完整的分支,用於開發、實驗或測試架構變更,且不會影響生產工作負載。

預設情況下,Lakebase 在建立新專案時會建立單一 production 分支。 這是你的預設分支,用來存放應用程式的生產資料。

你可以根據需要建立額外的分支,以配合你的工作流程。 例如,新增 development 一個用於建置與測試的分支、 staging 一個用於生產前測試的分支,或建立每個開發者專屬的分支以實現完全隔離。 每個分支獨立運作——子節點的變更不會影響其父節點。 透過分支重置,你可以從父分支更新任何子分支,取得最新的結構和資料版本,無需初始化資料或拆除操作腳本。

分支運作原理

父子關聯性

每個分支(根節點除外)都有父分支。 這會形成一個階層結構:

production (root branch)
├── staging (child of production)
│   └── feature-test (child of staging)
└── development (child of production)
    └── bugfix-branch (child of development)

這種階層結構提供了關鍵的隔離:你對子分支所做的變更不會影響到父分支,且對父分支的變更不會自動反映在子分支中。 當你需要從主分支取得更新資料時,可以重置子分支。 你也可以從父歷程記錄中的任何時刻建立分支,這對於時間點還原、針對歷史資料進行測試或合規情境都很有用。

當你建立分支時,你可以選擇是從目前資料初始化,還是從特定時間點初始化。 請參閱 「建立分支 」以了解每個選項的逐步說明與細節。

寫時複製儲存

Lakebase 採用寫時複製技術,提升父子分支結構的效率。 當你建立新分支時,它會繼承父節點的結構和資料,但透過指向相同資料的指標共享底層儲存空間。 只有當你修改資料時,Lakebase 才會寫入新的資料。 也就是說:

  • 你的樹枝立刻出現;資料庫大小不會影響分支建立時間
  • 你只為分行間實際變動的資料付費
  • 建立分支對你的生產工作量沒有效能影響
production branch                child branch (at creation)
┌─────────────────┐       ┌─────────────────┐
│  [Data A]       │◄──────│  → Data A       │  (shared)
│  [Data B]       │◄──────│  → Data B       │  (shared)
│  [Data C]       │◄──────│  → Data C       │  (shared)
└─────────────────┘       └─────────────────┘

After modifying data in child branch:
┌─────────────────┐       ┌─────────────────┐
│  [Data A]       │◄──────│  → Data A       │  (shared)
│  [Data B]       │       │  [Data B']      │  (changed)
│  [Data C]       │◄──────│  → Data C       │  (shared)
└─────────────────┘       └─────────────────┘
                          Only changed data is stored separately

與分支合作

分支重置

分支重置會立即更新子分支,使其與父分支的當前狀態相符。 當您想要用最新的上游資料刷新您的開發或中繼分支時,這會非常有用。 操作可透過寫入複製技術瞬間完成,連線細節保持不變。

分支重置僅在一個方向上有效(父節點→子節點)。 要將變更從子節點移到父節點,請使用標準遷移工具套用結構變更。 詳見 「重置分支 」以了解詳細步驟與情境。

時間點復原

你可以在還原視窗中從特定時間點建立分支,這對於從資料錯誤(如意外刪除)中恢復、調查過去問題,或存取歷史資料以進行稽核與合規非常有用。 例如,如果昨天上午 10:23 有個關鍵資料表被丟棄,你可以建立一個設為 10:22 AM 的分支來提取遺失的資料。 同樣地,你也可以根據資料庫狀態在特定日期建立分支,用於財務對帳、監管審計或法醫分析。 與分支重置(即原地更新現有分支)不同,點即時恢復會從歷史資料建立新的根分支,而保留原有分支不變且運作正常。 詳情請參見「時間點還原」。

特殊分支類型

默認分支

當你建立 Lakebase 專案時,會自動獲得一個預設的 production 分支。 它從空的狀態開始,準備接收你的資料。 你可以建立子分支以進行開發和測試——在子分支中測試你的結構變更,然後當你确信這些變更可行時,對 production 執行相同的遷移。

你的預設分支永遠不會縮放到零,確保即使其他分支在閒置期間縮小規模,它仍然可用。

受保護的分支

受保護的分支設有防止意外變更的防護措施。 這些檔案無法從父檔案刪除或重置,且因未啟用而免於自動歸檔。 受保護分支也會在專案存在時阻擋刪除,確保你不會意外移除關鍵基礎設施。 使用受保護的分支來處理像生產環境這類關鍵資料。 詳情請參見 受保護的分支

分支如何影響資源消耗

使用分支,你只需支付真正使用的費用。

儲存:你只為變動的資料付費。 如果您建立開發分支並修改 100GB 資料庫中的 1GB 資料,您需要支付的儲存費用大約是 1GB 的空間,而不是要支付 200GB 的儲存費用。 未更改的 99GB 則在分支間共享。

計算:每個分支都有自己的計算,你可以獨立擴展。 你只為活躍運算時數付費。 閒置時會將規模縮放至零。 這代表你偶爾使用的開發分支成本遠低於全天候運行專用開發伺服器。

預設分支:你的預設分支運算永遠不會縮放到零,確保你的生產工作負載持續可用。

分支策略

以下是一些常見的團隊組織分支方式:

簡單(個人與小團隊)

用你預設的分支搭配單一開發分支:

production
└── development

你的 development 分支是你安全建構新功能的地方。 你可以修改結構、新增測試資料並進行實驗,且不會對生產分支造成任何風險。 準備好後,用遷移工具執行測試過的結構遷移 production ,然後重置 development ,用全新資料開始下一個功能。

與舞台設計

新增一個預備階段分支用於預生產測試:

production
├── staging
└── development

如果你需要生產前測試,可以維持 staging 一個與生產分支資料鏡像的分支。 在那裡部署你的應用程式,針對真實數據進行整合與效能測試,並在上線前累積信心。 定期將 stagingproduction 重置,以刷新您的測試資料。

按開發商分類

每位開發者都完全獨立工作:

production
└── development
    ├── dev-alice
    ├── dev-bob
    └── dev-charlie

這種模式避免開發者互相干擾,並讓每個人都能獨立測試結構變更。 每位開發者都可以自行嘗試架構變更與資料修改,而不影響他人,然後在準備好時將測試過的遷移套用到共享 developmentproduction 分支。

後續步驟