通过数据传输服务DTS(Data Transmission Service),您可以将自建MySQL同步至消息队列Kafka版,扩展消息处理能力。
前提条件
- 自建MySQL的数据库版本为5.1、5.5、5.6、5.7或8.0版本。
- 目标Kafka实例的版本为0.10.1.0-2.x版本。
- 目标Kafka实例中已创建用于接收同步数据的Topic,详情请参见创建Topic。
背景信息
消息队列Kafka版是阿里云提供的分布式、高吞吐、可扩展的消息队列服务,针对开源的Apache Kafka提供全托管服务,彻底解决开源产品长期以来的痛点,您只需专注于业务开发,无需部署运维。消息队列Kafka版广泛用于日志收集、监控数据聚合、流式数据处理、在线和离线分析等大数据领域,已成为大数据生态中不可或缺的部分。
注意事项
- DTS在执行全量数据初始化时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据同步前评估源库和目标库的性能,同时建议您在业务低峰期执行数据同步(例如源库和目标库的CPU负载在30%以下)。
- 如果源数据库没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。
功能限制
- 同步对象仅支持数据表,不支持非数据表的对象。
- 不支持自动调整同步对象,如果对同步对象中的数据表进行重命名操作,且重命名后的名称不在同步对象中,那么这部分数据将不再同步到到目标Kafka集群中。如需将修改后的数据表继续数据同步至目标Kafka集群中,您需要进行修改同步对象操作,详情请参见新增同步对象。
消息格式
同步到Kafka集群中的数据以avro格式存储,schema定义详情请参见DTS avro schema定义。
说明 数据同步到Kafka集群后,您需要根据avro schema定义进行数据解析。