当跨地域业务需要低延迟访问和高可用性保障时,可使用全局表(Global Table)功能的多地域自动数据同步实现跨地域容灾,支持就近读写和容灾切换。
工作原理
全局表基于表格存储的多地域复制技术,在多个地域实例间建立数据同步通道。当某个地域的表发生数据变更时,变更会自动同步到其他地域的副本表,实现数据的跨地域一致性。表副本支持在不同实例和地域上动态扩展和解除。
整个复制过程在后台全自动运行,无需人工干预。该机制能够在确保数据一致性的前提下达成可接受的恢复点目标(RPO),有效满足多数业务系统的容灾与连续性要求。
在日常使用中,用户或应用程序可就近访问副本进行读写操作,显著降低访问延迟。当发生区域性故障或重大灾难(例如数据中心中断、自然灾害等)时,用户可基于多副本快速发起容灾切换操作,重建关键应用与数据,有效保障业务连续性。

功能特性
| 多地域容灾 跨Region的表副本,当发生地域级别的故障时,其他地域的副本仍可提供服务 |
| 低延迟访问 用户或应用程序可以在就近副本上读取和写入数据,大大降低操作延迟 | ||
| 数据最终一致 采用最终一致性模型,多个副本间异步同步,数据最终一致 |
| 自动冲突解决 系统基于LLW(Last Write Win)算法自动处理多地并发写入冲突 |
适用范围
适用于对高可用性、跨地域低延迟读写和跨地域容灾有强需求的业务场景。典型场景如下:
跨地域备份:在主地域发生故障时,可切换到备地域继续提供读服务,保障业务连续性。例如某电商系统用户表的主表和备表分别存储在华东1(杭州)地域和华北2(北京)地域的表格存储中,当华东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配置、增加预定义列。
已有数据表默认创建为列模式,暂不支持直接升级为全局表。
当二次使用全局表功能时,已有重复表不支持重新关联同步关系,需先删除多元索引和二级索引再删除表,然后创建全局表。
说明二次使用是指曾创建过全局表但已被解除同步关系的数据表,再次将其创建为全局表的场景。
计费说明
使用全局表时,将产生数据存储费用、数据读取费用、数据写入费用以及跨地域流量费用。
各副本表在数据存储和读写操作上的计费方式与数据表一致。具体计费规则请参见计费概述。
各项费用说明如下:
数据存储费用:各副本表均独立存储数据,按各表所在地域实际存储数据量分别计费。
数据读取费用:所有副本表的本地读操作所产生的费用。
数据写入费用:写入操作仅在可写副本上执行,写入费用仅发生在被直接写入的表上;副本表通过异步复制同步数据,不产生写入费用。
跨地域流量费用:向各副本表异步复制数据时产生跨地域数据传输流量。
重要各副本的跨地域流量费单独计算,费用均计量到被拉取数据的实例。
常见问题
如何修改全局表的配置,例如设置TTL、添加自定义列?
目前不支持直接修改全局表的表配置。如需修改,请先将全局表完全解绑再修改,然后重新创建全局表即可。重新创建全局表前,请将读写操作全部指向主副本(防止影响上层读写)后,再删除其他副本。
如何删除副本表?
先将副本表从全局表中解绑,待解绑成功后在控制台实例的表列表中删除副本表。
主备模式下,如何读取非主实例的副本表?
在主实例中基础表的全局表页签,查看关联副本表的实例名称,然后使用该实例的Endpoint读取数据。
行模式下,在不同地域通过UpdateRow接口先后更新了同一行不同列的值(假设a先更新、b后更新),该行数据会是什么样的?
该行数据最终是一致的,最终值是b所在副本上的整行数据,具体数据可能会是以下两种情况之一:
如果更新b前,当前副本表还未同步到a,则行上有值b,但无值a。
如果更新b前,当前副本表已经同步到a,则行上同时有值b和值a。
是否支持在不同国家的地域之间创建全局表?
由于数据合规等原因,目前暂不支持跨国创建全局表,全局表当前支持地域请参见功能和地域支持列表。









