查询全局表信息

本文介绍如何通过Java SDK查询全局表的详细信息。

前提条件

初始化客户端

方法说明

public DescribeGlobalTableResponse describeGlobalTable(DescribeGlobalTableRequest request) throws TableStoreException, ClientException

DescribeGlobalTableRequest参数说明

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

    说明

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

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

  • returnRpo(可选)boolean:是否同时返回RPO。默认值为false,表示不返回。返回RPO耗时较长,非必要时不建议使用。

  • phyTable(可选)GlobalTableTypes.PhyTable:筛选物理表的条件,包含以下参数:

    名称

    类型

    说明

    regionId(可选)

    String

    物理表所在地域ID。

    instanceName(可选)

    String

    物理表所在实例名称。

DescribeGlobalTableResponse返回值说明

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

  • status(必选)GlobalTableTypes.GlobalTableStatus:全局表状态。取值如下:

    状态

    说明

    INIT

    初始化中。全局表第一次创建后进入初始化状态。

    RE_CONF

    重新配置中。全局表的所有的副本或者部分副本在配置中。配置中可能是建表、同步历史数据或绑定解绑全局表的成员导致。

    ACTIVE

    已激活。

  • phyTables(必选)List<PhyTable>:物理表信息,包含以下参数:

    名称

    类型

    说明

    regionId(必选)

    String

    物理表所在地域ID。

    instanceName(必选)

    String

    物理表所在实例名称。

    tableName(必选)

    String

    物理表名称。

    status(必选)

    PhyTableStatus

    物理表状态。取值如下:

    • PENDING:排队中。等待其他副本表配置完成后继续处理。

    • INIT:初始化中。创建或配置副本表中。

    • SYNCDATA:同步中。同步存量数据,并开启增量数据同步。

    • READY:准备完成。副本表存量数据同步完成且增量通道开启完成,不可写。

    • ACTIVE:已激活,同步中。副本表可正常读写。

    • UNBINDING:解绑中。正在从当前全局表上解绑。解绑时未删除当前副本表和表数据。

    • UNBOUND:已解绑。当前副本表已从全局表中解绑。解绑时未删除当前副本表和表数据。

    statusTimestamp(可选)

    long

    状态更新时间戳。单位为毫秒。

    writable(必选)

    boolean

    是否可写。

    role(可选)

    String

    物理表在服务模式中的角色。

    rpo(可选)

    Instant

    物理表当前数据的RPO。

    tableId(可选)

    String

    物理表ID。

    stage(可选)

    SyncStage

    数据同步阶段。

    isFailed(必选)

    boolean

    是否处于失败状态。

    message(可选)

    String

    物理表状态附加信息(例如失败原因)。在创建全局表或绑定解绑同步关系时,如果处理过程出现失败IsFailed,则会显示相应原因。

示例

private static void describeGlobalTableExample(SyncClient client) {
    // 构造请求
    DescribeGlobalTableRequest req = new DescribeGlobalTableRequest(
        // 全局表 ID。
        "gt-ee1b54db-f5d9-43f3-ad36-ec44********",
        // 全局表名称
        "t-gt-test-1"
    );

    // 发起请求
    DescribeGlobalTableResponse descResp = client.describeGlobalTable(req);

    // 输出全局表基本信息
    System.out.println("Status: " + descResp.getStatus());
    System.out.println("Global Table ID: " + descResp.getGlobalTableId());

    // 输出副本部署信息(Placement)
    List<GlobalTableTypes.PhyTable> placements = descResp.getPhyTables();
    for (GlobalTableTypes.PhyTable p : placements) {
        System.out.println("Replica in " + p.getRegionId() +
                ", Instance: " + p.getInstanceName() +
                ", Writable: " + p.isWritable());
    }
}