解绑全局表

本文介绍如何通过 Java SDK 为全局表移除一个或多个分布位置。

注意事项

  • 解绑过程仅移除副本表与全局表的关联关系,副本表及其数据将保留。后续可通过DeleteTable接口单独删除副本表。

  • 此操作只是发起解绑请求,完成解绑需要一段时间,请耐心等待,可通过查询全局表信息获取全局表的状态确认是否完成解绑。当全局表状态重新返回为active时表示解绑成功。

前提条件

初始化客户端

方法说明

public UnbindGlobalTableResponse unbindGlobalTable(UnbindGlobalTableRequest request) throws TableStoreException, ClientException

UnbindGlobalTableRequest参数说明

  • globalTableId(必选)String:全局表ID。

    说明

    如果未记录全局表ID,可通过调用DescribeTable操作查询表副本的详细信息。当表副本属于全局表时,DescribeTable操作的返回结果中会包含对应全局表ID。

  • globalTableName(必选)String:全局表名称,必须与基础表名称相同。

  • Removals(必选)List<Removal>:要移除的分布位置列表,包含以下参数:

    名称

    类型

    说明

    regionId(必选)

    String

    地域ID。

    instanceName(必选)

    String

    实例名称。

示例

private static void unbindGlobalTableExample(SyncClient client) {
    // 构造请求
    UnbindGlobalTableRequest request = new UnbindGlobalTableRequest(
                // 全局表 ID
                "gt-ee1b54db-f5d9-43f3-ad36-ec44********",
                // 全局表名称
                "my-global-table"
    );
                
    // 构建要移除的副本列表(Removals)
    List<GlobalTableTypes.Removal> removals = new ArrayList<>();

    // 示例:计划移除华东1(杭州)地域的副本
    GlobalTableTypes.Removal hangzhouRemoval = new GlobalTableTypes.Removal(
                // 副本所在地域 ID
                "cn-hangzhou",
                // 副本所属实例名称
                "instance-replica-hz"
    );

    // 示例:计划移除华东2(上海)地域的副本
    GlobalTableTypes.Removal shanghaiRemoval = new GlobalTableTypes.Removal(
                // 副本所在地域 ID
                "cn-shanghai",
                // 副本所属实例名称
                "instance-replica-sh"
    );
    
    removals.add(hangzhouRemoval);
    removals.add(shanghaiRemoval);
    request.setRemovals(removals);

    // 发起请求
    UnbindGlobalTableResponse response = client.unbindGlobalTable(request);
    System.out.println("Unbind start. Request ID: " + response.getRequestId());
}