获取通道的具体信息

创建通道后,您可以使用DescribeTunnel接口获取某个通道内的具体信息,例如通道信息、通道内的Channel信息等。

前提条件

  • 已初始化TunnelClient。

  • 已为数据表创建通道。具体操作,请参见创建通道

参数

请求参数

参数

说明

TableName

需要获取通道信息的数据表名称。

TunnelName

通道的名称。

响应参数

参数

说明

TunnelConsumePoint

通道消费增量数据的最新时间点,其值等于Tunnel中消费最慢的Channel的时间点,默认值为197011日(UTC)。

TunnelInfo

通道信息的列表,包含如下内容:

  • TunnelId:通道的ID。

  • TunnelType:通道的类型,包括全量(BaseData)、增量(Stream)和全量加增量(BaseAndStream)三种。

  • TableName:该通道所在的数据表名称。

  • InstanceName:该通道所在的实例名称。

  • Stage:该通道所处的阶段,包括初始化(InitBaseDataAndStreamShard),全量处理(ProcessBaseData)和增量处理(ProcessStream)三种。

  • Expired:数据是否超期。

    如果该值返回true,请及时通过钉钉联系表格存储技术支持。

List<ChannelInfo>

通道中的Channel信息列表,包含如下信息:

  • ChannelId:Channel对应的ID。

  • ChannelType:Channel的类型,包括全量(BaseData)和增量(Stream)两种。

  • ChannelStatus:Channel的状态,包括等待(WAIT)、打开(OPEN)、关闭中(CLOSING)、关闭(CLOSE)和结束(TERMINATED)五种。

  • ClientId:通道客户端的ID标识,默认由客户端主机名(可以在TunnelWorkerConfig中自定义)和随机串拼接而成。

  • ChannelConsumePoint:Channel消费增量数据的最新时间点,默认值为197011日(UTC),全量类型无此概念。

  • ChannelCount:Channel同步的数据条数。

RequestId

当次请求的Request ID。

示例

以下示例用于查询指定通道的具体信息,例如数据消费时间位点、通道信息、通道内Channel信息。

//数据消费时间位点(ConsumePoint)和RPO(Recovery Point Objective)为增量类型专用属性值,全量类型无此概念。
//Tunnel增量:TunnelInfo中Stage的值为ProcessStream;Channel增量:ChannelInfo中的ChannelType为Stream。
private static void describeTunnel(TunnelClient client, String tableName, String tunnelName) {
    DescribeTunnelRequest request = new DescribeTunnelRequest(tableName, tunnelName);
    DescribeTunnelResponse resp = client.describeTunnel(request);
    System.out.println("RequestId: " + resp.getRequestId());
    //通道消费增量数据的最新时间点,其值等于Tunnel中消费最慢的Channel的时间点,默认值为1970年1月1日(UTC)。
    System.out.println("TunnelConsumePoint: " + resp.getTunnelConsumePoint());
    System.out.println("TunnelInfo: " + resp.getTunnelInfo());
    for (ChannelInfo ci : resp.getChannelInfos()) {
        System.out.println("ChannelInfo::::::");
        System.out.println("\tChannelId: " + ci.getChannelId());
        //Channel的类型,包括BaseData(全量)和增量(Stream)两种。
        System.out.println("\tChannelType: " + ci.getChannelType());
        //客户端的ID标识,默认由客户端主机名和随机串拼接而成。
        System.out.println("\tClientId: " + ci.getClientId());
        //Channel消费增量数据的最新时间点。
        System.out.println("\tChannelConsumePoint: " + ci.getChannelConsumePoint());
        //Channel同步的数据条数。
        System.out.println("\tChannelCount: " + ci.getChannelCount());
    }
}

相关文档

  • 关于API说明的更多信息,请参见DescribeTunnel

  • 如果要快速使用通道服务消费数据,请参见快速使用通道服务文档进行操作。

  • 如果要查看指定表的所有通道信息,您可以通过获取表内的通道信息实现。更多信息,请参见获取表内的通道信息

  • 如果不再使用某个通道,您可以删除相应通道。更多信息,请参见删除通道