跳到主要内容
版本:2.x

通过心跳表监测数据同步链路

Tapdata 通过心跳表的设计,每隔 10 秒向源库写入时间戳信息,通过检查心跳表中的时间戳信息,我们可以快速判断数据源的活跃性和链路健康状况,从而更好地监测数据同步链路,保障数据同步链路的稳定性和可靠性。

适用场景

  • 源库经常长时间无 DML 类操作(如插入数据),需要在任务列表通过增量时间点快速判断增量任务状态,从而确保链路状态和增量日志获取正常。

    增量时间点

  • 源库的 DML 类操作非常多,需要避免 Tapdata 记录的增量断点日志被归档删除,导致无法获取增量时间点的情形。

注意事项

  • 由于心跳表功能需要在源库中,自动完成表的创建和时间戳更新,您需要开启前确保数据库账号已授予相关权限,以 MySQL 为例,您需要确保账号具有 CREATEINSERTUPDATE 权限,更多权限的介绍,见数据源准备工作
  • 心跳表的名称为 _tapdata_heartbeat_table,请确保心跳表的数据完整性和可靠性,避免在源库上对其操作(如删除表)。

为数据源开启心跳表

  1. 登录 Tapdata 平台。

  2. 在左侧导航栏,单击连接管理

  3. 找到已创建的数据源,单击其操作栏的编辑

    如需在新建数据源时设置,配置方法相同,更多介绍,见连接数据源

  4. 下翻至页面底部,打开心跳表开关。

    开启心跳表

    提示

    如果尚未看到该开关,您需要检查页面中的连接类型设置,确保选择为源头和目标。此外,部分数据源不支持同时作为源头和目标,更多介绍,见支持的数据源

  5. 单击保存

查看心跳表任务

为数据源开启心跳表后,当该数据源在数据复制/开发任务引用并启动后,心跳任务任务才会启动,此时您可以再次进入该数据源的编辑页面,即可单击查看心跳任务

心跳表任务

如上图所示,Tapdata 借助 Dummy 数据源,每隔 10 秒向源库写入一条时间戳信息,从而实现增量时间点的持续更新,更好地监测数据源和链路状态。

常见问题

  • 问:心跳表任务可以删除和编辑吗?

    答:不可以,您无需手动操作,该数据源关联的任务全部停止后,心跳表任务会自动停止,如果删除了该数据源,心跳任务也会自动删除。

  • 问:心跳表的结构和数据内容是什么样的?

    答:以 MySQL 为例,表结构和数据如下所示:

    --查看心跳表结构
    DESC _tapdata_heartbeat_table;

    --返回结果
    +-------+-------------+------+-----+--------------------------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-------+-------------+------+-----+--------------------------+-------+
    | id | varchar(64) | NO | PRI | 641a726eb1837461c70caa9d | |
    | ts | datetime(6) | YES | | NULL | |
    +-------+-------------+------+-----+--------------------------+-------+

    --查看心跳表数据
    SELECT * FROM _tapdata_heartbeat_table;

    --返回结果
    +--------------------------+----------------------------+
    | id | ts |
    +--------------------------+----------------------------+
    | 6438cdbef713082e37eb0a05 | 2023-04-14 04:03:28.963000 |
    +--------------------------+----------------------------+