【 TiDB 使用环境】生产环境
【 TiDB 版本】v8.3.0
【遇到的问题:问题现象及影响】
我们的 CDC 运行在 PD 服务器上,因此当 CDC 遇到批量操作时,它会卡住并停止工作。
我们正在处理的场景涉及批量数据操作,我们希望将这些操作从上游 TiDB 复制到下游系统时排除。例如:
批量数据导入操作:
这包括我们使用像 LOAD DATA 或 TiDB Lightning 这样的工具进行大规模数据导入到上游 TiDB 的场景。这样的操作可能会显著增加复制的数据量,可能导致下游系统过载或产生不必要的处理开销。
批量插入:
在执行批量插入操作(例如用于分析或归档的场景)时,这些数据通常不需要出现在下游系统中。
我们的目标是确保这些批量操作不会干扰正常的事务数据复制(例如 INSERT、UPDATE、DELETE),这些数据对于我们下游的应用程序至关重要。通过过滤这些操作,我们可以保持下游系统的最佳性能,并避免不必要的资源利用。
之前我们一直认为基于 write_source
属性进行事件过滤是实现这一目标的有效方法,因为它能清晰地区分不同类型的操作。但是ticdc不支持write source。
看过文档里的Event Filter Rules部分
如果我们应用这个,它将忽略所有的插入操作, 我们希望只有在触发批量操作时,才会防止插入操作。