TiCDC canal-json 协议下 WATERMARK Event 消息是什么?

请问 WATERMARK Event 是什么?有大佬可以展示一下 WATERMARK Event 长啥样吗?还有这个 WATERMARK Event 的业务意义是啥

Canal-JSON 协议本是为 MySQL 设计的,其中并不包含 TiDB 专有的 CommitTS 事务唯一标识等重要字段。为了解决这个问题,TiCDC 在 Canal-JSON 协议格式中附加了 TiDB 扩展字段。在 sink-uri 中设置 enable-tidb-extensiontrue 后,TiCDC 生成 Canal-JSON 消息时的行为如下:

  • TiCDC 发送的 DML Event 和 DDL Event 类型消息中,将会含有一个名为 _tidb 的字段。
  • TiCDC 将会发送 WATERMARK Event 消息。·

https://docs.pingcap.com/zh/tidb/v5.4/ticdc-canal-json#watermark-event

我消费了下,不知这个有啥业务的价值,等待大佬出现

{
	"id": 0,
	"database": "",
	"table": "",
	"pkNames": null,
	"isDdl": false,
	"type": "TIDB_WATERMARK",
	"es": 1659085352032,
	"ts": 1659085354502,
	"sql": "",
	"sqlType": null,
	"mysqlType": null,
	"data": null,
	"old": null,
	"_tidb": {
		"watermarkTs": 434919270523076621
	}
}

您好,Watermark Event 提供的 Watermark TS 字段主要用于流式计算中,为提高计算同步数据实时性提供一个功能。有一篇关于 Flink 支持 Watermark Event 的博客,可以研究一下。Flink最佳实践 - Watermark原理及实践问题解析_event time skew-CSDN博客

另外在使用实现方面,ticdc 也有一篇文档有助您了解 tiflow/docs/distributed-scheduling.md at 7e5026f844fbcaacd56df764591cb489ce53ecfb · pingcap/tiflow · GitHub

Watermark 用来处理消息的重复和乱序等异常情况。见回答 TiCDC事件的表级排序的问题

该主题在最后一个回复创建后60天后自动关闭。不再允许新的回复。