複製功能總覽

Cloud BigTable 的複製功能可從多個地區或同個地區的多個區域複製您的資料,從而提高資料的可用性及耐用性。您也可以將不同類型的要求轉送到不同的叢集,藉此區隔工作負載。

本頁說明複製功能在 Cloud Bigtable 中的運作方式,並說明常見的複製功能案例。同時也解釋當複製功能啟動時,Cloud Bigtable 使用的一致性模型,並描述當一個叢集的容錯移轉到另一個叢集時會發生什麼事情。

  • 關於您可以用來實施常見使用案例的設定值範例,請參閱複製功能設定值範例
  • 若要瞭解如何建立使用複製功能的執行個體,請參閱建立執行個體
  • 如要瞭解如何啟用現有執行個體的複製功能,請參閱新增叢集
  • 如要瞭解與複製功能相關的費用,請參閱定價

在您閱讀本頁之前,請先熟悉 Cloud BigTable 總覽的內容。

複製功能如何運作

如要在 Cloud BigTable 執行個體中使用複製功能,請建立新的執行個體 (其中應包含 1 個以上的叢集),或是在現有執行個體中新增叢集

在可使用 Cloud Bigtable 服務的 Google Cloud Platform 區域中,Cloud Bigtable 支援最多 4 個複寫叢集。執行個體的叢集必須位於不同區域。您可以在提供 Cloud Bigtable 的任何區域內建立其他叢集。將叢集放在不同的區域或地區,就能確保萬一某個 GCP 區域或地區無法使用時,您還是可以存取資料。

當您建立具有多個叢集的執行個體時,Cloud Bigtable 會立即開始同步處理不同叢集的資料,並在執行個體存有叢集的每個區域,另外為資料建立獨立複本。同樣地,當您新增叢集到現有執行個體時,Cloud Bigtable 會將現有資料從原始叢集區域複製到新叢集的所在區域,然後再同步處理區域之間的變更。

Cloud Bigtable 會自動複製您的資料發生的任何變化,包括下列所有類型的變更︰

  • 現有資料表中資料的更新
  • 新的和被刪除的資料表
  • 新增和被移除的欄位系列
  • 欄位系列垃圾收集政策的改變

Cloud Bigtable 把您的執行個體中的每一個叢集都當做主叢集,因此您可以在每一個叢集進行讀取與寫入操作。您也可以設定您的執行個體,讓來自不同類型應用程式的要求轉送到不同叢集。

使用案例

本節說明 Cloud Bigtable 複製功能的一些常見應用。若需要各種應用的最佳設定範例,以及其他應用的實施秘訣,請參閱複製功能設定值範例

將伺服應用程式與批次讀取隔離

如果您使用單一叢集來執行需要多次大量讀取作業的批次分析工作,以及需要混合進行讀寫作業的應用程式,龐大的批次工作會影響使用者操作應用程式的體驗。複製功能可讓您搭配使用應用程式設定檔和單一叢集轉送功能,將批次分析工作和應用程式流量轉送至其他叢集,避免批次工作對應用程式的使用者造成影響。 進一步瞭解如何實施此應用做法

提升可用性

如果執行個體只有 1 個叢集,資料的耐用性和可用性將受限於該叢集所在的區域。複製功能會將資料的複本分別儲存在多個區域或地區,並視需要自動在叢集之間進行容錯移轉,進而改善耐用性和可用性。 進一步瞭解如何實施此應用做法

提供近乎即時的備份

在某些情況下 (例如,您無法負擔讀取過時資料的成本時),您總是需要將要求轉送到單一叢集。然而,您仍然可以用一個叢集處理要求,並讓另一個叢集保持近乎即時的備份。如果提供服務的叢集無法使用,您可以手動容錯移轉到備份叢集,讓停機時間降到最短。 進一步瞭解如何實施此應用做法

確保您的資料遍及全球

您可在全球多個地區設定複製功能,將資料存放在距離客戶較近的位置。舉例來說,您可以在美國、歐洲和亞洲都建立具有複寫叢集的執行個體,然後將應用程式設定檔設為把應用程式流量轉送到最近的叢集。 進一步瞭解如何實施此應用做法

一致性模型

根據預設,Cloud Bigtable 的複製功能具有最終一致性。這個術語是指如果您將一項變更寫入某個叢集,等系統將這項變更複製到各叢集後,最終您一定可以從這些叢集讀取到這項變更。

如果您的執行個體運行正常,複製的延遲時間通常只需幾秒鐘或幾分鐘,不用耗費數小時。然而,如果您將大量資料寫入某一叢集,或如果某一叢集負載過重或暫時無法使用,複製功能可能要花一段時間才能趕上。而且要是叢集彼此距離很遠,複製延遲時間也會拉長。因此,請勿假設您每次都能讀取到寫入的最新值,或認為在寫入後幾秒鐘 Cloud Bigtable 就能複製該項變更。

如果您需要其他一致性保證,Cloud Bigtable 也可在複製功能啟用的情況下提供讀寫一致性,確保應用程式讀取到的資料不會比應用程式本身最近寫入的資料更舊。如果要讓同組應用程式獲得讀寫一致性,則該群組中的所有應用程式都必須使用針對單一叢集轉送而配置的應用程式設定檔,而且所有的應用程式設定檔都必須將要求轉送到同一個叢集。您可以同時將執行個體的其他叢集做為其他用途使用。

Cloud Bigtable 也可在複製功能啟用的情況下提供同步一致性,確保您所有應用程式的資料狀態都相同。為了達成同步一致性,您使用的單叢集轉送應用程式設定檔設定應符合上述的讀寫一致性。不過,除非您必須容錯移轉到其他叢集,否則「不應」使用執行個體中的另一個叢集。

應用程式設定檔

如果某一個執行個體使用複製功能,您可以使用應用程式設定檔 (或稱 app 設定檔),以控制由哪一個叢集處理從您的應用程式傳入的要求。應用程式設定檔也決定您是否可以進行單一資料列交易,包括讀取─修改─寫入操作 (包括遞增和附加),以及檢查─變異操作 (又稱為條件式變異或條件式寫入)。

若要瞭解詳細內容,請參閱應用程式設定檔。 如需可實施常見應用的設定值範例,請參閱複製功能設定值的範例

容錯移轉

如果某個 Cloud BigTable 叢集沒有回應,複製功能可讓連入流量容錯移轉至同一個執行個體中的另一個叢集。容錯移轉可以手動或自動執行,這取決於應用程式使用的應用程式設定檔,以及應用程式設定檔的設定方式。

詳情請參閱容錯移轉

複製功能啟動時刪除資料列範圍

Cloud Bigtable Admin API 使您可以根據資料列索引鍵從資料表刪除連續範圍的資料列。在不使用複製功能的執行個體中,Cloud Bigtable 可以迅速有效率地刪除資料列範圍。然而,當複製功能啟動時,刪除資料列範圍的速度和效率會變得非常低。

相關資源

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Cloud Bigtable 說明文件