数据同步要求
数据同步功能支持两个数据源之间的数据实时同步,可应用于本地数据灾备、查询与报表分流、商业智能分析(BI)及实时数据仓库等多种业务场景。
支持同步的实例类型
|
【公有云】云数据库 MariaDB/MySQL | 【公有云】云数据库 MariaDB/MySQL |
| 【公有云】云数据库 PostgreSQL |
| 【公有云】消息队列 Ckafka |
| 【专有云】云数据库 MariaDB/MySQL |
【公有云】分布式数据库 | 【公有云】分布式数据库 |
| 【公有云】消息队列 Ckafka |
| 【专有云】分布式数据库 |
支持的同步拓扑
数据库同步功能支持“一对一单向同步、一对多单向同步、级联单向同步、多对一单向同步”的串行拓扑,不支持“双向环状同步”拓扑。
支持的实例版本
MariaDB 10.0、10.1
MySQL 5.6、5.7
PostgreSQL 9.6
Ckafka 所有版本
支持的同步语法
DML 操作:INSERT、UPDATE、DELETE。
DDL 操作:CREATE TABLE、ALTER TABLE、ADD COLUMN、DROP COLUMN、RENAME COLUMN。
数据库同步对象
同步对象支持精确匹配数据库、表;支持正则匹配数据库、表。暂不支持非数据表对象,如存储过程、视图、索引、触发器等,如需非数据表对象请在目标端手动创建。
数据库同步费用
数据库同步功能目前免费。
数据库同步网络
目前仅支持腾讯云同地域内数据库实例之间及专线内的数据库同步。跨地域的数据同步或灾备需 提交工单,工单请备注两地实例 ID 和同步需求,审批通过后方可开启。 数据同步功能
数据类型转换
MariaDB/MySQL 到 PostgreSQL 的同步
MariaDB/MySQL 与 PostgreSQL 的数据类型不同,数据库同步工具将按如下规则进行转换:
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
year/date/time/datetime/timestamp | timestamp without time zone |
tinyblob/mediumblob/blob/longblob/long | |
| |
| |
| |
说明:
表中所述类型的列在转换过程中数据长度保持不变,表中未列出类型在转换过程中保持不变。
MariaDB/MySQL 到分布式数据库的同步
MariaDB/MySQL 与分布式数据库的数据类型相同,不存在数据类型转换情况。
MariaDB/MySQL 到 CKafka 的同步
分布式数据库到 CKafka 的同步
数据订阅功能
数据同步到 Ckafka 已支持数据订阅,配置前需先购买 Ckafka,详细介绍请参见 消息队列 CKafka,配置建议如下: 规格
可通过计划同步的实例每日更新数据量、日均峰值或平均值、计划保留在 Ckafka 的时间来评估 Ckafka 实例规格。
例如,某实例每日更新1000万行,每行数据2KB,日均写入峰值为2万行每秒,期望 Ckafka 选用3副本,存储数据3天。
则该实例每日更新数据20GB,转换为 JSON 后约30GB,存储3天,3副本约需要空间270GB,数据库写入峰值带宽约39MB/s,Ckafka 选3副本的吞吐量约117MB/s,选择 Ckafka 的标准型即可基本满足需求。
网络
建议与源实例处于相同的 VPC 网络下。
topic 选择
一个同步任务需占用1个 topic,多个同步任务需分别选择多个且不同的 topic,否则可能导致数据混乱。
参数选择
以下建议仅供参考,具体请根据实际需求选择。
分区数(partition):1
副本数:3
cleanup.policy:删除
min.isync.replicas:2
unclean.leader.election.enable:false
数据一致性
由于网络中断或其他原因,数据库实例生产到 Ckafka 的消息可能重复,此时消费端重放数据时,可以采用幂等方式消除。
说明:
幂等,即多次重复执行消息时,最终数据一致,当遇到主键冲突的记录时,先进行 delete 再 insert,如果 update 无法匹配到数据,会强行插入;delete 找不到数据,直接跳过。通过幂等方案即可以实现数据消费一致性。使用幂等时表必须要有主键或有不能为 NULL 值的唯一索引。
本页内容是否解决了您的问题?