【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
现在同一集群有A库和B库,A为生产,B为测试,想实时同步A库的数据到B库,可以通过 cdc 处理吗?可以的话配置文件应该怎么写,有文档或者 demo 示例吗。只要增量数据同步到B库就可以。
TiCDC 可以同步增量数据至同一集群的另一个schema中;配置文件和同步到其他下游数据库一样的
是的
[filter]
rules = [‘A.*’]
ignore-txn-start-ts = [0]
[mounter]
worker-num = 16
[sink]
dispatchers = [
{matcher = [‘A.*’], topic = “B.{schema}_{table}”},
]
不知道是不是这样配置就可以了
topic 是写到kafka的 ,不是写类 MySQL 数据库的。问了厂家,cdc 暂时没有route的功能
一样啊,当然可以,只不过上下游是同一个集群罢了
文档上没有说明啊,有实践或测试过吗?
这个也不是说的同一个集群
可以看看我之前提的一样的问题
没有试过同一集群内的同步增量数据,可以在测试环境测试
当然可以
嗯 我直接把 A库的数据用 cdc 抽出来写到 kafka 里,然后用 canal 消费 kafka 中的数据回写到同一集群的另一个 schema 里
是啊,他的要求是同一集群的另外一个schema中
如果测试这边对性能要求不高,可以创建个同名视图指向生产的表。如果测试库的代码,查询过程中可以指定库名的话,可以直接给测试的用户授个单独对象的只读权限。
如果上述都不行,现阶段最高效的办法是写个脚本定期import into。
不支持了
没有实际操作过,但查看cdc的配置,对于兼容mysql类(含tidb)的同步,应该不可行。
在changefeed中配置mysql兼容的数据库中(含tidb),其中配置支持表过滤与事件过滤(https://docs.pingcap.com/zh/tidb/stable/ticdc-changefeed-config),但其不提供table_name和schema_name的映射转换的功能。只有sink中可以在filter与sink中配置映射转换。
路由功能cdc目前还不支持,后续可能会开发出来
支持同步ddl,根据ddl然后自己处理一下再处理变更
主要不支持路由功能,所以做不了
ticdc不支持路由功能