本頁面將介紹地理區隔,並說明其在 Spanner 中的運作方式。
Spanner 提供地區和多區域執行個體設定,可讓您在不同地理位置間複製資料。您也能使用地理區域分區功能,為不同執行個體設定中的資料庫資料表,進一步區隔及儲存資料列資料。
優點及用途
地理區域分區可讓您將資料庫中的資料列分區,帶來下列優點:
- 全球資料庫中的區域延遲:Spanner 會使用地理區域分割功能,在分散的地理位置中,透過單一統一資料庫管理您的資料,同時確保區域存取的低延遲時間。相較於管理多個分割資料庫,使用地理區隔功能可簡化作業並降低複雜度。
- 全球資料庫功能:地理區隔功能提供資料庫功能,例如全域交易、區域間的資料移動,以及跨地理區域實施的唯一性。
- 資料落地法規遵循:Spanner 會在刊登位置層級提供資料落地承諾。如需相關資訊,請參閱使用地理分區的資料庫資料留存地點相容性。
以下是常見用途:
使用者相關資料:將使用者相關資料依地理區域分割,以便在距離使用者最近的區域處理及儲存資料。
本地資料:特定地區的資訊,例如交通和特殊事件。
地理區隔的運作方式
所有 Spanner 例項都有一個主要例項分區,稱為 default
分區。如果您未建立其他分區,所有資料庫物件都會儲存在預設分區中,該分區與執行個體設定位於相同位置。如果您想在資料庫中分割資料,必須在執行個體中建立其他分區。
如要在資料庫中使用地理分區,請按照下列步驟操作:
在執行個體中建立其他分區。這些由使用者建立的分區都有各自的設定 (區域或多區域) 和節點數量。
按照平常的方式建立資料庫。資料庫具有與執行個體預設分割區相關聯的預設刊登位置。
在資料庫中建立存放位置,並與其他分區建立關聯。資料庫可以與在相同執行個體中建立的其他分區互動。
建立具有刊登位置鍵屬性的刊登位置資料表。您必須在 DML 陳述式中使用放置鍵,指定資料列資料位於哪個分區。如果您在資料庫中建立非刊登資料表,Spanner 會將該資料儲存在預設分區中。
刊登位置表格中每個資料列的刊登位置鍵必須指派給下列其中一個:
與使用者為該資料庫定義的其中一個位置名稱相符的值;或
放置位置鍵值
default
,可在預設放置位置儲存資料。
如需分區使用方式的操作說明,請參閱「建立及管理分區」。
重要事項
建立分區、刊登位置和刊登位置表格前,請考量下列事項:
區隔位置:請仔細選取最能為應用程式帶來效益的區隔區域。
雖然您可以在執行個體中使用地區執行個體設定建立區隔,但建議您在執行個體中使用多地區執行個體設定建立區隔,這樣預設區隔位置也會在多地區設定中。
此外,請選取多區域預設分割區位置,其中包含讀取/寫入區域和唯讀區域,涵蓋應用程式所需的所有管轄區。接著,請使用與多區域預設區域相符的領袖區域,建立其他區域 (可為區域)。
分區數量:分區過多可能會導致額外負擔,而分區過少則可能無法提供足夠的效益。每個執行個體最多可建立十個區隔。
限制
在預先發布版期間,下列限制會套用,但在 GA 發布後或之後,可能會有所變更或移除:
- 您無法使用雙區域設定建立執行個體區隔。
- 每個分割區的運算能力至少須為一個節點 (1, 000 個處理單元)。
- 對於特定執行個體,您只能建立一個使用相同基本執行個體設定的執行個體區段。舉例來說,在
test-instance
中,您無法建立兩個分區,partition-1
和partition-2
都使用us-central1
做為分區設定。 - 您最多可為分區中的每個節點放置 1 億個刊登位置資料列。您可以在 Google Cloud 控制台的「Partitions」(區隔) 頁面上,查看已放置在各個區隔中的刊登位置列數量。
- 對於目的地執行個體分區中的每個節點,Spanner 每秒可移動約 10 個刊登位置資料列。
- 您無法在免費試用執行個體或小於一個節點 (1000 個處理單元) 的精細執行個體中建立分割區。
- 您無法為含有分區的執行個體建立備份。
- 您無法為含有分區的執行個體使用客戶自行管理的加密金鑰。
- 您無法在已啟用代管自動配置器的執行個體中建立執行個體區隔。
- 您無法將分割區移至其他執行個體設定。
- 您無法移動含有分區的執行個體。(您可以將個別資料列移至不同的分區,因此不需要移動執行個體)。
- 使用區隔功能並不保證符合法規要求。
- 變更串流不支援分割資料。
- 如要使用地理區隔,您必須建立新的空資料庫,並將
opt_in_dataplacement_preview
選項設為true
。詳情請參閱「建立及管理分割區」。 - 如果您為刊登位置資料表使用
INSERT
或DELETE
DML 陳述式,該陳述式必須是交易中唯一的陳述式。 - 在讀寫交易模式中,您只能在
WHERE
子句中參照刊登位置資料表的主鍵。如果您需要在WHERE
子句中參照刊登位置資料表的非主要索引欄,可以使用下列任一替代做法:- 如果您只需要唯讀存取權,請切換至唯讀交易模式。
- 如果需要進行更新,請使用分區 DML 交易模式,或在只讀交易查詢中找出主索引鍵,然後在個別讀寫交易中,參照
WHERE
子句中傳回的主索引鍵。
- 您無法使用命名結構定義。
使用 IAM 控管存取權
您必須具備 spanner.instancePartitions.create
、spanner.instancePartitions.update
和 spanner.instancePartitions.delete
權限,才能建立及管理分割區。如果您只需要查看分區,就必須具備 spanner.instancePartitions.list
或 spanner.instancePartitions.get
權限。詳情請參閱身分與存取權管理總覽。
如要進一步瞭解如何授予 Spanner IAM 權限,請參閱「套用 IAM 權限」。
監控
Spanner 提供多個指標,協助您監控區隔。建立其他分區後,您會在 Google Cloud 控制台的「系統洞察」頁面上,看到「分區」的額外下拉式篩選器。預設選項會顯示「所有」區隔的指標。您可以使用下拉式選單,篩選特定分區的指標。
如要進一步瞭解如何監控 Spanner 資源,請參閱「使用 Cloud Monitoring 監控執行個體」一文。
定價
使用地理區隔功能不會產生額外費用,系統會根據執行個體使用的運算能力和資料庫使用的儲存空間量,向您收取標準 Spanner 定價。
詳情請參閱 Spanner 定價。
後續步驟
- 瞭解如何建立及管理分區。
- 瞭解如何建立及管理資料刊登位置。