TiCDC 可否一个 changefeed 按 db or db.table 输出到不同的 kafka topic?

https://docs.pingcap.com/tidb/stable/manage-ticdc#configure-sink-uri-with-kafka

看文档,一个 changefeed 只能配置一个 topic name,虽然我可以通过 filter.rules 来配置一个 changefeed 只同步一张表,但这意味着我需要根据表的个数来创建很多的 changefeed,新建表后也要记得去新建 changefeed,非常不便。

我知道这样会破坏跨表事务,不过 TiCDC 的文档里提到只保证单表事务,所以也没增加更多坏处。

1赞

正在做这方面的开发,可以关注
https://github.com/pingcap/tiflow/issues/4423

3赞

已经新增了文档了,还做了合并,确实可以支持了


https://github.com/pingcap/tiflow/blob/master/docs/design/2022-01-20-ticdc-mq-sink-multiple-topics.md

不过这个使用场景感觉不多… :grinning:

另外还有sink的
https://github.com/pingcap/tiflow/blob/master/docs/design/2021-10-13-ticdc-mq-sink-column-selector.md

2赞

非常赞! 有计划在哪个版本发布吗?

@xfworld 发的链接看,column selector 只支持 canal-json, multiple topics 只测试 canal-json, 我理解是 multiple topics 是支持所有 protocols,包括 canal-json , open-protocol , canal , avro and maxwell 吧?

column selector 省掉一些 column 会破坏 schema,是因为这个原因暂时不支持其它协议?也许可以考虑配置 placeholder 来替代这些列,而不是省掉,这样就不破坏 schema 了。

非常赞! 有计划在哪个版本发布吗?

可能要到 6.1 或者 6.2 了

column selector 只支持 canal-json 是因为它在 5.4 中 GA 了。当时做这个功能也是想先在 canal-json 中 GA。后续做完了对主要支持的协议也会陆续测试和 GA。

multiple topics 会支持所有协议。

2赞