创建通道

如果需要实时消费表中数据,您需要调用CreateTunnel接口为数据表创建一个通道,一张数据表上可以创建多个通道。在创建通道时需要指定数据表名称、通道名称和通道类型。

前提条件

  • 已初始化TunnelClient。

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

参数

请求参数

参数

说明

TableName

创建通道的数据表名称。

TunnelName

通道的名称。

Type

通道的类型,支持全量(BaseData)、增量(Stream)和全量加增量(BaseAndStream)三种。

创建增量或者全量加增量类型的通道时,系统默认创建通道后写入的数据为增量数据。如果要消费指定时间点后的增量数据,请配置增量数据的起始时间戳(startTime)。

  • 起始时间戳的取值范围为[当前系统时间-Stream过期时间+5分钟 , 当前系统时间],单位为纳秒

    说明

    Stream过期时间为增量日志过期时长的毫秒单位时间戳,最大值为7天。您可以在为数据表开启Stream功能时设置,过期时长一经设置不能修改。

  • 您也可以配置增量数据的结束时间戳(endTime),结束时间戳的取值必须大于起始时间戳。

响应参数

参数

说明

TunnelId

通道的ID。

ResponseInfo

返回的一些其它字段,包括当次请求的RequestId。RequestId用于唯一标识此次请求。

示例

以下示例用于为数据表创建一个全量加增量类型的通道。

req := &tunnel.CreateTunnelRequest{
   TableName:  "<TABLE_NAME>",
   TunnelName: "<TUNNEL_NAME>",
   Type:       tunnel.TunnelTypeBaseStream, //创建全量加增量类型的Tunnel。
}
resp, err := tunnelClient.CreateTunnel(req)
if err != nil {
   log.Fatal("create tunnel failed ", err)
}
log.Println("tunnel id is", resp.TunnelId)

常见问题

使用通道服务消费数据时报错OTSTrimmedDataAccess Requested stream data is already trimmed or does not exist

相关文档