牛宝体育新闻

牛宝体育基于DTS的大数据同步如何选择最佳方案?

2023-07-28
浏览次数:
返回列表

  在《腾讯云数据库DTS发布全新数据集成方案:全增量无缝同步,快速构建实时数仓》一文中,我们介绍了如何使用DTS的「数据同步」服务,将MySQL数据同步到Ckafka并应用于大数据场景中。读者可能会产生疑问:DTS的「数据订阅」服务也提供了类似的功能,那么这两者有何区别,实际使用时应如何选择?为此,本文牛宝体育将为您详细介绍相关内容。

  DTS是腾讯云自主研发的数据库传输服务工具,具有高传输性能、高可用、安全连接、操作便捷等特点,可以实现数据源在业务不停服状态下的实时数据同步,整个数据同步过程对源库业务没有影响。

  DTS提供了「数据迁移」、「数据同步」、「数据订阅」三项服务,每个服务的定位和应用场景不同,可以满足用户不同的数据传输诉求。「数据迁移」主要用于数据库搬迁,如云下数据库上云的场景;「数据同步」主要用于两个数据源的长期实时同步,如双活、异地灾备等场景;「数据订阅」则是将源端数据变更同步到不确定的目标端,应用于缓存更新,大数据分析等场景。

  方案一:采用「数据同步」服务,将源端的全量+增量数据同步到用户自行维护的Ckafka中,再通过消费程序,将消息投递到数据湖仓。

  方案二:采用「数据订阅」服务,将源端的增量数据同步到订阅服务内置的Kafka中,用户无需维护Kafka,只需要创建并使用消费组,再通过消费程序,将消息投递到数据湖仓。

  「数据订阅」的设计初衷是为了满足用户在没有明确下游链路的情况下,能够灵活地对接各种类型的下游场景牛宝体育,比如数据仓库、自定义处理程序等。为了简化用户操作,数据订阅会将源库的数据变更缓存在内置的Kafka中,从而实现“一站式”的数据同步,源库和目标下游之间只需通过DTS连接牛宝体育,无需使用其他中间服务。

  数据订阅中,DTS会模拟成MySQL的从库,拉取源库的增量Binlog,并将其解析后投递到内置的Kafka中大数据。但由于内置Kafka只有一个默认的Topic,因此无法进行多Topic的投递方式。

  基于现有的同步能力以及对用户需求的深入调研,DTS团队形成了到Kafka的数据同步方案牛宝体育,即采用全量+增量数据一起的同步方式,将数据源先同步到Ckafka,再从Ckafka消费数据投递到数据湖仓。这样也可以复用同步的部分核心能力,比如任务重试,即在数据同步过程中任务发生异常中断,可以重试后继续同步,无需从头开始。

  DTS会获取源端的全量+增量数据,并将其无缝衔接同步到消息队列CKafka中,由于目标端是用户自己的Kafka,因此可灵活配置。同时,用户也可在同步过程中设置投递策略,如指定源库中不同的表投递到目标端不同的Topic中。

  数据同步到Kafka(以下简称方案一),与数据订阅(以下简称方案二),两者的实现原理类似,都可实时获取源库的数据变更,都可应用于数据归档、数据分析等场景中,但在实际应用中,应根据具体情况选择最佳方案。

  如果用户只需要获取新增日志,新增订单等类似信息,仅需要同步增量数据,可选择方案二(方案一也可以,需再结合其他差异点对比)。如果用户需要获取源数据库的历史存量和新增的数据,则选择方案一。

  方案一中,用户可以自行购买Ckafka,可灵活设置topic,比如创建多个Topic,将不同的表数据投递到不同的Topic中。另外可以设置Kafka中数据的保存时间和单个消息大小等参数。同时,用户在消费的时候不受地域限制,具有较高的灵活性。

  相比之下,在方案牛宝体育二中,目标端为内置的Kafka,用户无需购牛宝体育买大数据,节省Kafka的费用,但同时也无法修改Topic信息,只能将数据投递到一个默认Topic中,通过自定义partition分区策略来满足分区投递和并发消费的需求。此外牛宝体育,消费时需要在腾讯云网络环境进行,且消费的地域需要与DTS订阅任务的地域保持一致。

  方案一中,费用包括购买DTS同步任务和CKafka。不同的DTS同步任务规格有不同的传输性能需求,规格越高,费用越高。

  方案二中,用户仅需购买DTS订阅任务,其中DTS订阅任务提供通用的规格。

  如果数据量大,对同步性能有要求,建议选择方案一的高规格链路;如果对性能要求不高,建议计算成本后,选择费用较低的一个方案即可。

  某教育行业用户使用DTS将数据同步到Kafka牛宝体育,替代之前的Canal组件方案。用户采用不同表写入到不同Topic的形式,消费数据时每个Topic的数据独立消费,最终实现了高性能传输和高稳定性保障,同时有效降低了运维成本。

  传输性能高:DTS的传输性能与用户实际网络延时、带宽、数据库本身的规格配置都有关系,在用户源端和目标端规格都比较高,网络无瓶颈的情况下,项目实测DTS全量阶段的RPS(每秒同步行数)最高可达30万/s,增量阶段RPS最高可达1.5万/s。

  运维成本低:用户之前使用Canal组件时,平均每月大概需要投入半个人力到研发和运维。改用DTS后,任务配置完成后基本无需运维人员投入,大大降低了运维成本。

  某娱乐行业用户使用DTS数据订阅,替代之前的Flink CDC+MQ方案。改造后链路配置和维护便捷,数据无丢失。

  传输性能高:传输性能与源库的配置、网络带宽等因素都有关系。用户源端为腾讯云数据库且无压力,在网络无瓶颈,源库仅为简单事务操作,订阅数据格式为ProtoBuf的场景下,RPS可达到2万/s。

  传输延时低:从源库写入数据到下游消费到数据的延时,与实际的网络带宽、源库压力、源库数据的复杂程度都有关系。在源库无压力,网路无瓶颈的场景下,DTS订阅任务的延时一般在100ms左右。

  数据无丢失:相比之前的Flink CDC,DTS订阅可保证数据准确同步无丢失。

  DTS提供了两种数据同步方案,两种方案相辅相成,可以满足用户在大数据场景下的不牛宝体育同诉求。

  数据同步到kafka:适用于全量+增量数据同步,且目标端Kafka为用户自己的Kafka,数据消费时不受腾讯云网络地域限制,支持同步数据到多Topic中。

  数据订阅:适用于增量数据同步,目标端Kafka为DTS内置Kafka,需要在腾讯云内网与DTS同地域的VPC中进行消费。

搜索