云时代,MySQL到ClickHouse数据同步产品对比推荐

ClickHouse 在执行分析查询时的速度优势很好的弥补了 MySQL 的不足,但是对于很多开发者和DBA来说,如何将MySQL稳定、高效、简单的同步到 ClickHouse 却很困难。本文对比了 NineData、MaterializeMySQL(ClickHouse自带)、Bifrost 三款产品,看看他们在同步时的差异。

对比结果概述

整体上,NineData(官网:https://www.ninedata.cloud/ )的数据复制功能在功能、性能表现最突出。其次是Bifrost和ClickHouse自带的MaterializeMySQL。NineData在增量DDL的处理、字段映射的准确性、无主键表、以及功能丰富度上最强(数据校验、过滤、限流等),详细的对比如下图:

云时代,MySQL到ClickHouse数据同步产品对比推荐

MySQL到ClickHouse数据同步产品对比结果概述

结构映射对比

在做了详细对比之后,对于基础类型,只有NineData考虑的更加完整,例如MySQL的datetime需要映射到ClickHouse的DateTime64,否则则可能出现数据丢失。如果使用Biforst或MaterializeMySQL等其他产品均映射到datetime可能会造成一定程度的数据精度丢失。

此外,在对比了MySQL全部数据类型之后,发现NineData支持更完整,例如对JSON类型、几何数据、地理信息仅NineData支持。此外,对于基础类型,也只有NineData考虑更加细致,使用Biforst或MaterializeMySQL等其他产品则可能导致精度丢失,从而造成数据丢失。

详细的对比如下图:

云时代,MySQL到ClickHouse数据同步产品对比推荐

无主键表支持

NineData对记录做了特殊的标记处理,所以很好的支持了无主键表的数据同步。而MaterializeMySQL、Biforst均不支持。

详细的对比如下图:

云时代,MySQL到ClickHouse数据同步产品对比推荐

无主键表支持情况

增量DDL

对于数据增量同步,支持好各种类型的DDL是保障同步链路持续稳定的关键,NineData在无主键表DDL支持、字段删除、字段名修改等特殊操作均做了适配处理,可以很好的保障复制链路的问题。同时,NineData还提供了可视化的错误修复和跳过功能,可以最大限度的保障链路持续稳定。

详细的对比如下图:

云时代,MySQL到ClickHouse数据同步产品对比推荐

增量DDL对比结果

限流、对比、过滤等

除了前面介绍的一般功能之外,为了提升数据质量、保障稳定,NineData还支持了包括数据对比、运行中的限流、数据过滤等功能。具体的说明如下:

云时代,MySQL到ClickHouse数据同步产品对比推荐

增量DDL 限流、对比、过滤等对比结果

同步性能对比

这里使用 sysbench工具生成了5000万行记录进行全量性能对比,再生成约1800万次DML(约5GB Binlog)进行增量性能对比。

对比中,全量同步 NineData 性能为36.2W RPS(每秒同步记录数)为最高;增量同步则是 ClickHouse 自带的同步工具 MaterializeMySQL 最高,需要注意,MaterializeMySQL 在错误处理上比较简单,如果报错则需要全部重新同步。

详细的对比如下:

  • 全量同步

通过sysbench生成10张表,每张表500W记录(5000W行),数据文件大小约为12G:

云时代,MySQL到ClickHouse数据同步产品对比推荐

同步性能对比

  • 增量同步

通过sysbench生成5G大小的BinLog日志(约1800W次DML),再进行增量同步:

云时代,MySQL到ClickHouse数据同步产品对比推荐

增量同步

总结

NineDatahttps://www.ninedata.cloud/)在功能上领先其他同步工具,特别是字段类型的全面适配和增量复制期间DDL的支持度,并且在动态限流、数据对比、监控等能力上也支持的最完善。

所以,如果想把MySQL的数据实时同步到ClickHouse,推荐使用NineData,不仅使用简单(SaaS),并在满足功能和性能的前提下,实现了字段类型的无损转换和数据的实时复制,很好的解决MySQL 同步数据到ClickHouse的问题。

补充说明

当前各个云厂商虽然都提供ClickHouse托管服务,但是另一方面云厂商又都在发展自己的数仓产品,在同步功能支持上通常仅对自家的数仓产品支持比较好,而对ClickHouse同步支持都很薄弱。此外,开源工具Canal也因为不能很好的支持结构同步,使用和维护起来并不方便。

原文链接:https://www.cnblogs.com/ninedata/p/17332783.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:云时代,MySQL到ClickHouse数据同步产品对比推荐 - Python技术站

(0)
上一篇 2023年4月19日
下一篇 2023年4月19日

相关文章

  • 解决修改mysql的data_dir所引发的错误问题

    解决修改mysql的data_dir所引发的错误问题可以按照下面的步骤进行: 步骤一:停止MySQL服务 在修改MySQL的data_dir之前,需要先停止MySQL服务以避免丢失数据。可以通过以下命令停止MySQL服务: sudo systemctl stop mysql 步骤二:创建新的数据目录 可以通过以下命令创建新的数据目录: sudo mkdir …

    MySQL 2023年5月18日
    00
  • 向MySQL发送一个请求的时候,MySQL到底做了些什么?

    当向MySQL发送一个请求时,MySQL会执行以下步骤: 首先,MySQL会解析SQL语句,确定查询的类型和所涉及的数据表。 MySQL会检查用户是否有足够的权限执行该查询操作。 如果查询需要访问多个数据表,则MySQL会决定如何连接这些数据表,以及采用哪种连接算法。 MySQL会根据查询条件和数据表中的索引信息来生成执行计划,该计划将指导MySQL如何访问…

    MySQL 2023年3月10日
    00
  • mySQL count多个表的数据实例详解

    MySQL COUNT多个表的数据实例详解 在这篇文章中,我们将讨论如何在MySQL数据库中使用COUNT函数来统计多个表的数据。COUNT是MySQL常用的数值函数之一,它允许您对结果集中的行进行计数。 COUNT函数的语法 COUNT函数的基础语法如下: SELECT COUNT(column_name) FROM table_name WHERE co…

    MySQL 2023年5月19日
    00
  • mysql聚合统计数据查询缓慢的优化方法

    下面我将详细讲解“mysql聚合统计数据查询缓慢的优化方法”的完整攻略,包含以下内容: 1. 背景介绍 在数据量较大的情况下,mysql聚合统计数据查询常常会遇到缓慢的情况,对于需要经常执行聚合查询的应用来说,这种性能问题会直接影响程序的响应速度和用户体验。 2. 分析原因 为什么会出现缓慢的情况呢?通常是因为聚合统计数据需要扫描大量的数据,而mysql在扫…

    MySQL 2023年5月19日
    00
  • mysql中,创建包含json数据类型的表?创建json表时候的注意事项?查询json字段中某个key的值?

    需求描述:   在mysql数据库中,创建包含json数据类型的表.记录下,在创建的过程中,需要注意的问题. 操作过程: 1.通过以下的语句,创建包含json数据类型的表 mysql> create table tab_json(id bigint not null auto_increment,data json,primary key(id)); …

    MySQL 2023年4月13日
    00
  • 深入浅析Mysql联合索引最左匹配原则

    MySQL联合索引是一种通过组合多个列来优化查询性能的索引类型。其中,联合索引的最左匹配原则是指,索引能够被优化使用的部分内容必须是联合索引从左到右的前缀。在本文中,我们将深入浅析Mysql联合索引的最左匹配原则,以及如何优化查询性能。 什么是联合索引最左匹配原则? 联合索引最左匹配原则是指,在使用联合索引进行查询时,只有从左到右的连续列可以被索引使用。换言…

    MySQL 2023年5月19日
    00
  • MySQL适用于哪些应用场景?

    MySQL是一个开源的关系型数据库管理系统。它的可靠性、性能、灵活性和易用性使得它成为了最受欢迎的数据库之一。 MySQL适用于很多不同的应用场景,下面列出了其中的5个: 1、Web应用程序:MySQL可与Web编程语言如PHP、Python和Java结合使用,为网站提供持久的数据存储解决方案。由于其高度可靠性和短学习曲线,MySQL已成为最受欢迎的Web开…

    2023年3月8日
    00
  • 配置ogg异构oracle-mysql(2)源端配置

    源端配置大致分为如下三个步骤:配置mgr,配置抽取进程,配置投递进程 在源端先创建一张表,记得带主键: SQL> create table ah4(id int ,name varchar(10),primary key(id)); Table created.   1.登陆ogg,配置全局设置 [oracle@ora11g 11.2]$ ./ggsc…

    MySQL 2023年4月12日
    00
合作推广
合作推广
分享本页
返回顶部