當跨地區業務需要低延遲訪問和高可用性保障時,可使用全域表(Global Table)功能的多地區自動資料同步實現跨地區容災,支援就近讀寫和容災切換。
工作原理
全域表基於Table Store的多地區複製技術,在多個地區執行個體間建立資料同步通道。當某個地區的表發生資料變更時,變更會自動同步到其他地區的副本表,實現資料的跨地區一致性。表副本支援在不同執行個體和地區上動態擴充和解除。
整個複製過程在後台全自動運行,無需人工幹預。該機制能夠在確保資料一致性的前提下達成可接受的復原點目標(RPO),有效滿足多數業務系統的容災與連續性要求。
在日常使用中,使用者或應用程式可就近訪問副本進行讀寫操作,顯著降低訪問延遲。當發生地區性故障或重大災難(例如資料中心中斷、自然災害等)時,使用者可基於多副本快速發起容災切換操作,重建關鍵應用與資料,有效保障商務持續性。
功能特性
| 多地區容災 跨Region的表副本,當發生地區層級的故障時,其他地區的副本仍可提供服務 |
| 低延遲訪問 使用者或應用程式可以在就近副本上讀取和寫入資料,大大降低操作延遲 | ||
| 資料最終一致 採用最終一致性模型,多個副本間非同步同步,資料最終一致 |
| 自動衝突解決 系統基於LLW(Last Write Win)演算法自動處理多地並發寫入衝突 |
適用範圍
適用於對高可用性、跨地區低延遲讀寫和跨地區容災有強需求的業務情境。典型情境如下:
跨地區備份:在主地區發生故障時,可切換到備地區繼續提供讀服務,保障商務持續性。例如某電商系統使用者表的主表和備表分別儲存在華東1(杭州)地區和華北2(北京)地區的Table Store中,當華東1(杭州)地區出現故障時,由華北2(北京)繼續提供查詢服務。
一地寫入、多地讀取:在就近地區寫入資料,其他地區也就近讀取,適合異地訪問加速的情境。例如業務主寫到華東1(杭州)地區,華北2(北京)和華東2(烏蘭察布)地區部署唯讀副本,滿足跨地區低延遲讀取的需求。
全域表地區支援:目前支援華東1(杭州)、華東2(上海)、華北1(青島)、華北2(北京)、華北3(張家口)、華北5(呼和浩特)、華北6(烏蘭察布)、華南1(深圳)、華南3(廣州)和西南1(成都)地區。
建立全域表
開通服務和建立執行個體,請分別在主地區和目標副本地區建立執行個體。
步驟一:準備基礎資料表
在主地區建立作為全域表基礎的資料表。
如需使用已有資料表作為全域表的基礎資料表,請確保資料表滿足資料生命週期為-1、最大版本數為1、資料有效版本偏差為MaxInt32(2147483647)且開啟行模式表的配置要求。
由於非行模式的存量表不支援建立全域表。如需使用,請聯絡支援人員開通。
進入執行個體管理頁面。
在頁面上方,選擇資源群組和地區。
在概覽頁面,單擊執行個體別名或在執行個體操作列單擊執行個體管理。
在執行個體詳情頁簽,單擊建立資料表。
在建立資料表對話方塊,設定資料表名稱和表主鍵。
開啟進階設定開關後,開啟快捷設定全域表依賴開關,系統會自動設定全域表相關依賴項。
參數
全域表的值要求
說明
資料生命週期
-1
資料永不到期。
最大版本數
1
最大版本數為1。
是否支援行版本
開啟
設定為行模式表。
說明開啟是否支援行版本後不支援關閉。開啟行版本後存在如下限制:
單行資料最多支援 256 列。
寫入資料時不支援手動指定版本號碼,只能由系統自動產生。
執行 Update 操作時,系統需先讀取當前行版本,因此會帶來少量額外的讀取負載。
資料有效版本偏差
MaxInt32 (2147483647)
版本偏差設定為Int32最大值,表示不限制。

單擊建立。
步驟二:建立全域表
將基礎資料表轉換為全域表,並添加副本地區。建立完成後,系統會自動在選定的副本地區建立對應的資料表,並建立資料同步鏈路。
在主地區的資料表列表頁簽,單擊基礎資料表操作列的建立全域表。
說明單擊資料表名稱後,在全域表頁簽,單擊建立全域表同步關係,也可進行後續操作。
在建立全域表對話方塊,設定當前資源。
選擇資料表為當前表。
設定全域同步模式為主備模式(跨地區複製)。

在目標表地區,選擇目標執行個體所在地區和執行個體名稱。
系統支援一次添加多個目標執行個體,建立全域表後,系統會自動在所選地區的執行個體中建立目標表,目標表名與當前基礎資料表名相同。
說明如果目標執行個體中存在與全域表同名的資料表,則會導致全域表建立失敗。
單擊確定。
在建立全域表對話方塊,單擊去列表查看,在全域表頁簽,可查看全域表。

步驟三:驗證並使用全域表功能
建立完成後,驗證資料同步功能並進行基本的讀寫測試。
寫入測試資料:在主地區的資料表中寫入測試資料。
在主地區的資料表列表頁簽,單擊基礎資料表操作列的查詢/搜尋。
在資料管理頁簽,單擊插入資料。
在插入資料對話方塊,設定主鍵,單擊增加屬性列添加屬性,然後單擊確定。
驗證資料同步:等待1-3秒後,在副本地區查詢資料驗證同步效果。
在主地區的資料表列表頁簽,單擊基礎資料表操作列的查詢/搜尋。
在基礎資料表的全域表頁簽,單擊副本地區的副本表名稱。
在副本表的資料管理頁簽,即可看到從主地區基礎資料表中同步到副本地區表的資料。
全域表讀寫
實際讀取時請擷取相應副本表所在執行個體的Endpoint進行讀取。
在主備模式中,只有主副本允許通過所在執行個體的Endpoint寫入,其他副本禁止寫入(除了主備切換時)。
修改主備關係
主備模式下,當主副本表出現故障或者應用程式層需切換寫入region時,可將其他副本表設為新主副本表繼續提供服務。
在全域表頁簽,單擊備表操作列的切換為主表。
在修改主備關係對話方塊,提交主表切換任務並啟動資料同步。
重要資料同步將會持續進行,同步時間長度與資料規模、系統資源等相關,請耐心等待。資料同步過程中,主副本表和選作新主的副本表均為可讀寫,可能存在資料不一致風險。
在資料同步步驟中,單擊開始資料同步。

在主備表切換對話方塊,單擊查看詳情,查看資料同步的RPO情況。
切換應用程式層寫鏈路。
確認主備表資料一致性後再進行應用程式層寫鏈路切換操作。
單擊任一表同步模式列的確認寫鏈路切換。
在應用程式層寫鏈路切換步驟中,確認資料同步完成,並且已在您的應用中將所有寫入端修改為新主的Endpoint後,單擊已完成寫鏈路切換。

確認切換為主表。
在寫鏈路切換完成後請儘快進行主表切換確認操作。
重要操作後,原主表的寫入能力將被關閉。
單擊任一表同步模式列的查看。
在確認切換主表步驟中,單擊同步完成,立即切換主表。
說明如需取消主備表切換,請單擊取消主表切換後完成取消確認。

在確認對話方塊中,單擊確定。
修改成功後,原主副本將只提供唯讀能力,新的主副本開始提供讀寫能力。
增加全域地區
為全域表添加一個或多個全域地區。
在全域表頁簽,單擊副本表操作列的增加全域地區。
在增加全域地區對話方塊,選擇目標執行個體的地區和執行個體名稱。
如需添加多個全域地區,請單擊添加執行個體後繼續操作。
說明如果目標執行個體中存在與全域表同名的資料表,則會導致全域地區添加失敗。
單擊確定。
解除同步關係
為全域表解除同步關係。
如需停止全域表的所有地區的同步,請分別對各副本表進行綁定關係解除操作,且必須先操作備表,然後操作主表。如需移除某個地區的同步關係,僅對待解除的副本表進行操作即可。
在全域表頁簽,任選一種方式開始解除同步關係。
單個解除:單擊副本表操作列的解除同步關係。
批量解除:選擇待解除的副本表,單擊列表下方解除同步關係。
在確認對話方塊中,單擊確定。
開發整合
可通過Java SDK使用全域表。
應用於生產環境
全域表操作建議
為存量表建立全域表:原有讀寫API不變,資料自動同步到新的副本,新的副本可分擔讀負載。
從0全新建立全域表:確定好表結構,建立基礎資料表後再建立全域表。全域表不支援修改表結構,請確保基礎資料表測試通過後再進行全域表建立。
動態綁定新的副本:使用全域表過程中,可動態添加新的副本,不影響已有副本的讀寫。新的副本將具備全域表內最新的資料。
解除綁定一些已有的副本:運行一段時間後,如果某個副本表已不再需要,可先將其解除綁定。解除綁定後,該副本將不再同步其他副本的資料,但表及其資料仍存在。如需刪除該副本,請在解除綁定副本後再手動刪除。
合理選擇地區組合:根據使用者分布和業務需求就近選擇合適的主地區和備地區。
主地區故障切換:主備模式下,當主地區不可用時,可通過控制台先選到新主副本表再切換上層應用寫鏈路,然後等待資料同步到新主副本表後切換為主副本表。切換過程中可能有短暫的寫入中斷,建議業務側實現重試機制。
重要請業務應用自行保障應用與服務的切換順序和時間點,避免出現資料丟失。
配額與限制
更多資訊,請參見全域表使用限制。
表類型限制:僅支援資料表,不支援時序表、多元索引和二級索引的跨地區同步。
副本數量:單個全域表最多支援10個地區。
同步延遲:同步RPO一般在數秒內,具體取決於地區、網路情況和資料量。
暫不支援功能說明:
資料轉送延時的可靠性保障暫不提供,即暫不提供RTC。
全域表不支援修改表屬性,例如修改TTL配置、增加預定義列。
已有資料表預設建立為列模式,暫不支援直接升級為全域表。
當二次使用全域表功能時,已有重複表格不支援重新關聯同步關係,需先刪除多元索引和二級索引再刪除表,然後建立全域表。
說明二次使用是指曾建立過全域表但已被解除同步關係的資料表,再次將其建立為全域表的情境。
計費說明
使用全域表時,將產生資料存放區費用、資料讀取費用、資料寫入費用以及跨地區複製流量費用。
各副本表在資料存放區和讀寫操作上的計費方式與資料表一致。具體計費規則請參見計費概述。
各項費用說明如下:
資料存放區費用:各副本表均隔離儲存區 (Isolated Storage)資料,按各表所在地區實際儲存資料量分別計費。
資料讀取費用:所有副本表的本地讀操作所產生的費用。
資料寫入費用:寫入操作僅在可寫副本上執行,寫入費用僅發生在被直接寫入的表上;副本表通過非同步複製同步資料,不產生寫入費用。
跨地區複製流量費用:向各副本表非同步複製資料時產生跨地區資料轉送流量。
重要各副本的跨地區複製流量費單獨計算,費用均計量到被拉取資料的執行個體。
常見問題
如何修改全域表的配置,例如設定TTL、添加自訂欄?
目前不支援直接修改全域表的表配置。如需修改,請先將全域表完全解除綁定再修改,然後重新建立全域表即可。重新建立全域表前,請將讀寫操作全部指向主副本(防止影響上層讀寫)後,再刪除其他副本。
如何刪除副本表?
先將副本表從全域表中解除綁定,待解除綁定成功後在控制台執行個體的表列表中刪除副本表。
主備模式下,如何讀取非主執行個體的副本表?
在主執行個體中基礎資料表的全域表頁簽,查看關聯副本表的執行個體名稱,然後使用該執行個體的Endpoint讀取資料。
行模式下,在不同地區通過UpdateRow介面先後更新了同一行不同列的值(假設a先更新、b後更新),該行資料會是什麼樣的?
該行資料最終是一致的,最終值是b所在副本上的整行資料,具體資料可能會是以下兩種情況之一:
如果更新b前,當前副本表還未同步到a,則行上有值b,但無值a。
如果更新b前,當前副本表已經同步到a,則行上同時有值b和值a。
是否支援在不同國家的地區之間建立全域表?
由於資料合規等原因,目前暫不支援跨國建立全域表,全域表當前支援地區請參見功能和地區支援列表。



