地理區域分區總覽

本頁面將介紹地理區隔,並說明其在 Spanner 中的運作方式。

Spanner 提供地區和多區域執行個體設定,可讓您在不同地理位置間複製資料。您也能使用地理區域分區功能,為不同執行個體設定中的資料庫資料表,進一步區隔及儲存資料列資料。

優點及用途

地理區域分區可讓您將資料庫中的資料列分區,帶來下列優點:

  • 全球資料庫中的區域延遲:Spanner 會使用地理區域分割功能,在分散的地理位置中,透過單一統一資料庫管理您的資料,同時確保區域存取的低延遲時間。相較於管理多個分割資料庫,使用地理區隔功能可簡化作業並降低複雜度。
  • 全球資料庫功能:地理區隔功能提供資料庫功能,例如全域交易、區域間的資料移動,以及跨地理區域實施的唯一性。
  • 資料落地法規遵循:Spanner 會在刊登位置層級提供資料落地承諾。如需相關資訊,請參閱使用地理分區的資料庫資料留存地點相容性

以下是常見用途:

  • 使用者相關資料:將使用者相關資料依地理區域分割,以便在距離使用者最近的區域處理及儲存資料。

  • 本地資料:特定地區的資訊,例如交通和特殊事件。

地理區隔的運作方式

所有 Spanner 例項都有一個主要例項分區,稱為 default 分區。如果您未建立其他分區,所有資料庫物件都會儲存在預設分區中,該分區與執行個體設定位於相同位置。如果您想在資料庫中分割資料,必須在執行個體中建立其他分區。

如要在資料庫中使用地理分區,請按照下列步驟操作:

  1. 在執行個體中建立其他分區。這些由使用者建立的分區都有各自的設定 (區域或多區域) 和節點數量。

  2. 按照平常的方式建立資料庫。資料庫具有與執行個體預設分割區相關聯的預設刊登位置。

  3. 在資料庫中建立存放位置,並與其他分區建立關聯。資料庫可以與在相同執行個體中建立的其他分區互動。

  4. 建立具有刊登位置鍵屬性的刊登位置資料表。您必須在 DML 陳述式中使用放置鍵,指定資料列資料位於哪個分區。如果您在資料庫中建立非刊登資料表,Spanner 會將該資料儲存在預設分區中。

刊登位置表格中每個資料列的刊登位置鍵必須指派給下列其中一個:

  • 與使用者為該資料庫定義的其中一個位置名稱相符的值;或

  • 放置位置鍵值 default,可在預設放置位置儲存資料。

如需分區使用方式的操作說明,請參閱「建立及管理分區」。

重要事項

建立分區、刊登位置和刊登位置表格前,請考量下列事項:

  • 區隔位置:請仔細選取最能為應用程式帶來效益的區隔區域。

    雖然您可以在執行個體中使用地區執行個體設定建立區隔,但建議您在執行個體中使用多地區執行個體設定建立區隔,這樣預設區隔位置也會在多地區設定中。

    此外,請選取多區域預設分割區位置,其中包含讀取/寫入區域和唯讀區域,涵蓋應用程式所需的所有管轄區。接著,請使用與多區域預設區域相符的領袖區域,建立其他區域 (可為區域)。

  • 分區數量:分區過多可能會導致額外負擔,而分區過少則可能無法提供足夠的效益。每個執行個體最多可建立十個區隔。

限制

預先發布版期間,下列限制會套用,但在 GA 發布後或之後,可能會有所變更或移除:

  • 您無法使用雙區域設定建立執行個體區隔。
  • 每個分割區的運算能力至少須為一個節點 (1, 000 個處理單元)。
  • 對於特定執行個體,您只能建立一個使用相同基本執行個體設定的執行個體區段。舉例來說,在 test-instance 中,您無法建立兩個分區,partition-1partition-2 都使用 us-central1 做為分區設定。
  • 您最多可為分區中的每個節點放置 1 億個刊登位置資料列。您可以在 Google Cloud 控制台的「Partitions」(區隔) 頁面上,查看已放置在各個區隔中的刊登位置列數量。
  • 對於目的地執行個體分區中的每個節點,Spanner 每秒可移動約 10 個刊登位置資料列。
  • 您無法在免費試用執行個體或小於一個節點 (1000 個處理單元) 的精細執行個體中建立分割區。
  • 您無法為含有分區的執行個體建立備份。
  • 您無法為含有分區的執行個體使用客戶自行管理的加密金鑰
  • 您無法在已啟用代管自動配置器的執行個體中建立執行個體區隔。
  • 您無法將分割區移至其他執行個體設定。
  • 您無法移動含有分區的執行個體。(您可以將個別資料列移至不同的分區,因此不需要移動執行個體)。
  • 使用區隔功能並不保證符合法規要求。
  • 變更串流不支援分割資料。
  • 如要使用地理區隔,您必須建立新的空資料庫,並將 opt_in_dataplacement_preview 選項設為 true。詳情請參閱「建立及管理分割區」。
  • 如果您為刊登位置資料表使用 INSERTDELETE DML 陳述式,該陳述式必須是交易中唯一的陳述式。
  • 在讀寫交易模式中,您只能在 WHERE 子句中參照刊登位置資料表的主鍵。如果您需要在 WHERE 子句中參照刊登位置資料表的非主要索引欄,可以使用下列任一替代做法:
    • 如果您只需要唯讀存取權,請切換至唯讀交易模式。
    • 如果需要進行更新,請使用分區 DML 交易模式,或在只讀交易查詢中找出主索引鍵,然後在個別讀寫交易中,參照 WHERE 子句中傳回的主索引鍵。
  • 您無法使用命名結構定義

使用 IAM 控管存取權

您必須具備 spanner.instancePartitions.createspanner.instancePartitions.updatespanner.instancePartitions.delete 權限,才能建立及管理分割區。如果您只需要查看分區,就必須具備 spanner.instancePartitions.listspanner.instancePartitions.get 權限。詳情請參閱身分與存取權管理總覽

如要進一步瞭解如何授予 Spanner IAM 權限,請參閱「套用 IAM 權限」。

監控

Spanner 提供多個指標,協助您監控區隔。建立其他分區後,您會在 Google Cloud 控制台的「系統洞察」頁面上,看到「分區」的額外下拉式篩選器。預設選項會顯示「所有」區隔的指標。您可以使用下拉式選單,篩選特定分區的指標。

如要進一步瞭解如何監控 Spanner 資源,請參閱「使用 Cloud Monitoring 監控執行個體」一文。

定價

使用地理區隔功能不會產生額外費用,系統會根據執行個體使用的運算能力和資料庫使用的儲存空間量,向您收取標準 Spanner 定價。

詳情請參閱 Spanner 定價

後續步驟