通道服务

通道服务(Tunnel Service)是基于表格存储数据接口上的全增量一体化服务。通道服务提供了增量、全量、增量加全量三种类型的分布式数据实时消费通道。通过为数据表建立数据通道,您可以简单地实现对表中历史存量和新增数据的消费处理。

创建通道

为数据表创建一个通道。

命令格式

create_tunnel -n name

配置项说明请参见下表。

配置项

是否必填

示例值

说明

-t,--table

mytable

数据表名称。

-n,--name

t1

通道名称。

-m,--mode

stream_data_only

通道类型。取值范围如下:

  • base_data_only:全量类型。只能消费处理全量数据。

  • stream_data_only(默认):增量类型。只能消费处理增量数据。

  • base_and_stream:全量加增量类型。全量数据消费处理完成后,再消费处理增量数据。

示例

为数据表创建t1通道。

create_tunnel -n t1

返回结果如下:

New tunnel created, its id is '9933470d-8a5e-4972-a5b0-b7ae6f836460'.

获取通道信息

获取通道的Tunnel信息以及Channel信息。

命令格式

describe_tunnel -n name

配置项说明请参见下表。

配置项

是否必填

示例值

说明

-t,--table

mytable

数据表名称。

-n,--name

t1

通道名称。

-o,--output

D:\\otstest\\mytunnel.txt

将返回结果保存到本地文件中。

示例

获取t1通道的信息。

describe_tunnel -n t1

返回结果如下:

Tunnel Info:
+--------------------------------------+------------+------------+---------------+---------+
| TunnelId                             | TunnelName | TunnelType | Stage         | Expired |
+--------------------------------------+------------+------------+---------------+---------+
| 9933470d-8a5e-4972-a5b0-b7ae6f836460 | t1         | Stream     | ProcessStream | false   |
+--------------------------------------+------------+------------+---------------+---------+

Channel Info:
+-------------------------------------------------------+-------------+---------------+----------+-------------------------------+
| ChannelId                                             | ChannelType | ChannelStatus | ClientId | ChannelRPO                    |
+-------------------------------------------------------+-------------+---------------+----------+-------------------------------+
| cfd2c05b-54b6-48ec-aa6f-feb427f0ca57_1635771329155688 | Stream      | OPEN          |          | 1970-01-01 08:00:00 +0800 CST |
+-------------------------------------------------------+-------------+---------------+----------+-------------------------------+

模拟通道消费

创建通道后,通过模拟数据消费可以预览通道中的数据格式。

命令格式

consume_tunnel -n name -m mock_consume

配置项说明请参见下表。

配置项

是否必填

示例值

说明

-c,--channel

cfd2c05b-54b6-48ec-aa6f-feb427f0ca57_1635771329155688

Channel ID。如果不设置此项,则表示消费所有Channel。

-t,--table

mytable

数据表名称。

-n,--name

t1

通道名称。

-m,--mode

mock_consume

消费模式。取值范围如下:

  • shadow_copy(默认):复制线上Tunnel消费流量。

  • mock_consume:模拟消费数据,但不会更新断点记录信息。

  • real_consume:真实消费数据,会同时更新断点记录信息。不推荐使用此模式。

示例

t1通道上模拟数据消费。

consume_tunnel -n t1 -m mock_consume

执行命令后,当向表中写入数据时,屏幕中会显示数据消费记录,返回示例如下:

Starting consume tunnel 't1' of table 'mytable', it may take a few seconds to start, please wait...
{"Type":0,"Timestamp":1636360028961786,"SequenceInfo":{"Epoch":0,"Timestamp":1636360028961786,"RowIndex":1},"PrimaryKey":{"PrimaryKeys":[{"ColumnName":"uid","Value":"86"},{"ColumnName":"pid","Value":6771}]},"Columns":[{"Type":0,"Name":"name","Value":"redchen","Timestamp":1636360028962},{"Type":0,"Name":"country","Value":"china","Timestamp":1636360028962}]}

删除通道

删除不需要的通道。

命令格式

drop_tunnel -n name -y

配置项说明请参见下表。

配置项

是否必填

示例值

说明

-t,--table

mytable

数据表名称。

-n,--name

t1

通道名称。

-y,--yes

不涉及

显示确认信息。命令中必须带有此配置项。

示例

删除t1通道。

drop_tunnel -n t1 -y