(三) `MaterializedMySQL`同步机制解读

当使用 ClickHouse 的 MaterializedMySQL 引擎进行全量同步时,它主要依赖于两个关键机制:初始全量数据导入和随后的增量更新。以下是这些机制的详细解释:

初始全量数据导入

  1. 读取现有数据:

    • 当您在 ClickHouse 中创建一个 MaterializedMySQL 类型的数据库时,ClickHouse 首先连接到指定的 MySQL 数据库。
    • 它读取 MySQL 数据库中所有表的当前状态,包括所有行和列的数据。
  2. 数据转换:

    • ClickHouse 将从 MySQL 读取的数据转换为其自己的数据格式。这个过程包括数据类型的转换,因为 ClickHouse 和 MySQL 在数据类型上有所不同。
  3. 数据存储:

    • 转换后的数据被存储在 ClickHouse 的表中。这些表反映了 MySQL 中的表结构,但使用 ClickHouse 的存储格式和类型。

随后的增量更新

  1. 二进制日志(Binlog):

    • 一旦初始全量数据导入完成,ClickHouse 开始监听 MySQL 的二进制日志(binlog)。Binlog 是 MySQL 用来记录所有更改(如插入、更新、删除)的日志文件。
  2. 读取和应用更改:

    • ClickHouse 实时读取 binlog 中记录的更改,并将这些更改应用到其内部存储的表中。
    • 这意味着当 MySQL 数据库中的表被修改时,这些更改几乎即时地反映在 ClickHouse 中的相应表上。
  3. 处理 DDL 语句:

    • 如果在 MySQL 中执行了数据定义语言(DDL)操作(如创建表、修改表结构等),这些操作也会通过解析 binlog 来同步到 ClickHouse。
  4. 事务处理:

    • ClickHouse 使用 _version_sign 这两个虚拟列来处理 MySQL 事务。这些列帮助管理数据的版本和删除标记,以保持与 MySQL 的一致性。

注意事项

  • 实时同步的依赖性:这种同步机制高度依赖于 MySQL 的 binlog,因此必须在 MySQL 服务器上启用并正确配置 binlog。
  • 延迟:尽管同步几乎是实时的,但在高负载或网络延迟的情况下,可能会出现轻微的延迟。
  • 复制限制:某些特定类型的 MySQL 更改可能无法在 ClickHouse 中准确复制,如某些复杂的 DDL 操作或特定类型的数据。
  • 初始同步时间:对于含有大量数据的 MySQL 数据库,初始的全量数据导入可能需要相当长的时间。

总之,MaterializedMySQL 引擎通过首先进行一次全量数据导入,然后持续应用 MySQL 的增量更改来实现数据同步。这种方式适用于需要在 ClickHouse 中镜像 MySQL 数据库的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/275908.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

canal 数据同步组件

canal 数据异构组件 为啥要使用这个组件? 在更新DB的时候不同步更新到redis,es等数据库中,时间太久,而且可能会存在同步失败的问题,因此引入canal去拉取DB的数据,再去更新到redis,es等数据库中&…

LED驱动升降压芯片的多种应用方案,实现产品多样化需求-FP7195

目录 FP7195LED驱动降压恒流型 FP7195驱动升压恒流型 FP7195-升降压恒流型驱动方式 FP7195-升降压恒流型驱动方式-高压版 FP7195LED驱动是一种广泛应用于LED照明产品中的驱动器,为了满足不同客户对于产品性能和功能的要求,该驱动器提供了四种不同的方…

Go 中有效并发的模式

设计高效可靠的并发系统 在现代软件开发领域中,利用并发的能力已经变得至关重要。随着应用程序的复杂性增加和数据处理需求的增长,编写既高效又可靠的并发代码成为了一个重要的关注点。为了解决这个挑战,开发者们已经制定了一些模式和最佳实…

java freemarker 动态生成excel文件

好久木有更新啦 抓住2023的小尾巴 浅浅更新一下吧~ 最近做了一个动态生成excel的功能,这里记录下部分功能,主要用到的是freemarker框架,spring就有带,我起的demo载入了一下freemarker的jar包 一、创建模板 首先可以创建一个e…

百度每天20%新增代码由AI生成,Comate SaaS服务8000家客户 采纳率超40%

12月28日,由深度学习技术及应用国家工程研究中心主办的WAVE SUMMIT深度学习开发者大会2023在北京召开。百度首席技术官、深度学习技术及应用国家工程研究中心主任王海峰现场公布了飞桨文心五载十届最新生态成果,文心一言最新用户规模破1亿,截…

idea中切换JDK8、JDK11、JDK17

有时候,我们可能需要在不同的Java版本中去测试或者查看源码,idea可以让我们修改Java的版本。 前提:你必须下载安装好对应的Java版本,可参考文章【windows下切换JDK8、JDK11、JDK17】(https://blog.csdn.net/xijinno1/a…

九九乘法表c 语言 用于打印九九乘法表

以下是一个简单的C语言程序&#xff0c;用于打印九九乘法表&#xff1a; #include <stdio.h>int main() {int i, j;for (i 1; i < 9; i) {for (j 1; j < i; j) {printf("%d*%d%-2d ", j, i, i*j);}printf("\n");}return 0; }解释&#xff1…

快速上手makefile自动化构建工具

makefile自动化构建工具 文章目录 makefile自动化构建工具 makefile背景 简单认识makefile 依赖关系与依赖方法 生成项目 清理项目 ACM时间 语法补充 .PHONY修饰 特殊符号替换 Makefile的推导过程 总结 前言&#xff1a; 在windows下&#xff0c;很多东西都是编译器直接帮你做…

im6ull学习总结(二)Framebuffer 应用编程

1 LCD操作原理 linux中通过framebuffer驱动程序来控制LCD。framebuffer中包含LCD的参数&#xff0c;大小为LCD分辨率xbpp。framebuffer 是一块内存 内存中保存了一帧图像。 关于图像的帧指的是在图像处理中&#xff0c;一帧&#xff08;Frame&#xff09;是指图像序列中的单个…

一篇文章带你轻松入门Python

Python基础 1. Hello World! Python命令行 假设你已经安装好了Python, 那么在命令提示符输入: python 将直接进入python。然后在命令行提示符>>>后面输入: >>>print(Hello World!) 可以看到&#xff0c;随后在屏幕上输出: print是一个常用函数&#xf…

python学习14

前言&#xff1a;相信看到这篇文章的小伙伴都或多或少有一些编程基础&#xff0c;懂得一些linux的基本命令了吧&#xff0c;本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python&#xff1a;一种编程语言&…

Analytify Pro Google Analytics Goals Addon谷歌分析目标插件

Analytify Pro Google Analytics Goals Addon谷歌分析目标插件是一款极其巧妙且具有开创性的工具&#xff0c;它赋予用户细致跟踪和全面分析其网站性能的卓越能力。有了这个非凡的插件&#xff0c;个人可以毫不费力地建立并认真监控他们的Google Analytics目标&#xff0c;从而…

du和df

du 和df 不一致的问题&#xff1a; 情况如下&#xff1a; innode 没有满 同事求助&#xff0c; 他在删掉一个很大的文件后&#xff0c; 磁盘空间依旧没释放。上去一看&#xff0c; 果然 df 看到磁盘空间占用依旧是100%&#xff0c;等等 du 看了一把&#xff0c;磁盘空间剩余很…

低延时视频技术的应用场景和挑战

编者按 无线网络对人们的生活产生了巨大的影响&#xff0c;而5G技术的引入将彻底改变我们与世界互联互通的方式。在5G时代&#xff0c;实现万物互联离不开低延时技术的应用。 LiveVideoStackCon 2023 深圳站邀请到秒点科技的CEO扶凯&#xff0c;为大家分享低延时技术在物联网、…

Impala大数据框架学习网站,大数据技能提升必备利器!

介绍&#xff1a;Impala是Cloudera开发的新型查询系统&#xff0c;它能够对存储在HDFS、HBaseImpala是Cloudera开发的新型查询系统&#xff0c;它能够对存储在HDFS、HBase以及S3上的数据进行快速的交互式SQL查询。此外&#xff0c;Impala与Hive使用了统一的存储系统、同样的元数…

什么是https证书?

HTTPS证书&#xff0c;也称为SSL&#xff08;Secure Sockets Layer&#xff09;证书或TLS&#xff08;Transport Layer Security&#xff09;证书&#xff0c;是一种数字证书&#xff0c;用于在网络上建立安全的加密连接。它的主要目的是确保在互联网上进行的数据传输的安全性和…

提升设计效率:全面了解如何使用Figma插件

Figma组件库包括颜色、字体、图标、按钮、阴影、圆角、间距等。当Figma组件库的样式和Figma组件达到一定数量时&#xff0c;将难以维护&#xff0c;设计和开发的对接成本将大大提高。Figma可以在同一母版下单独设置样式&#xff0c;而不影响与母版之前的关系&#xff0c;这是Sk…

w4操作系统之windows上创建隐藏用户

隐藏用户–在windows上创建隐藏用户 1.首先查看现有哪些用户。&#xff08;通过net user 命令&#xff09; 2.然后创建隐藏用户&#xff08;net user client$ 123 /add&#xff09; 此时出现报错信息。原因是登录用户没权限。需要用管理员的权限 3.用管理员身份运行cmd&am…

AspectJWeaver之Gadget分析

前言&#xff1a; 今天看了下ysoserial的AspectJWeaver方法&#xff0c;分析了下其是如何通过调用SimpleCache$StorableCachingMap来实现写文件&#xff0c;这里把分析的流程写下来&#xff1a; 首先我们要看下其所需要的jar包&#xff1a; <dependencies><dependen…

drf知识-08

Django之了解DRF框架 # 介绍&#xff1a;DRF全称 django rest framework # 背景&#xff1a; 在序列化与反序列化时&#xff0c;虽然操作的数据不尽相同&#xff0c;但是执行的过程却是相似的&#xff0c;也就是说这部分代码是可以复用简化编写的 增&#xff1a;校验请…