记一次:Clickhouse同步mysql数据库

ClickHouse可以通过使用MaterializeMySQL引擎来实现与MySQL的数据同步。

前言:因为数据量比较大,既然要分库,为何不让clickhouse同步一下mysql数据库呢?

零、前期准备--mysql的查询和配置

1 查询mysql的配置状态

查询以下语句进行验证

show variables like '%gtid_mode%';

show variables like '%enforce_gtid_consistency%';

show variables like '%binlog_format%';

# 结果如下:

gtid_mode    ON

enforce_gtid_consistency    ON

binlog_format    ROW

2 设置mysql的配置

如果不是的查询状态的话设置:

在MySQL配置文件/etc/my.cnf中加入

server-id=1

log-bin=mysqlbin.log

binlog_format=ROW

3 强一致性-暂定

开启GTID模式(在MySQL配置文件/etc/my.cnf中加入)

gtid-mode=on

enforce-gtid-consistency=1  # 设置为主从强一致性

log-slave-updates=1 # 记录日志

default_authentication_plugin=mysql_native_password # 没有这个CK建库会失败

最后这个很重要,踩了一个坑

4 clickhouse库的安装过程就略-这里默认你安装好了

一、案例教程开始

1、准备 MySQL 表和数据

(0)创建授权用户

需要创建,不然后面查询的时候进制使用root用户的错误了---踩得第二个坑

创建用户:CREATE USER 'click'@'%' IDENTIFIED BY '123456';

授权:GRANT ALL PRIVILEGES ON *.* TO 'click'@'%';

(1)在 MySQL 中创建数据表并写入数据

CREATE DATABASE testck;CREATE TABLE `testck`.`t_organization` (`id` int(11) NOT NULL AUTO_INCREMENT,`code` int NOT NULL,`name` text DEFAULT NULL,`updatetime` datetime DEFAULT NULL,PRIMARY KEY (`id`),UNIQUE KEY (`code`)) ENGINE=InnoDB;INSERT INTO testck.t_organization (code, name,updatetime)VALUES(1000,'Realinsight',NOW());INSERT INTO testck.t_organization (code, name,updatetime)VALUES(1001, 'Realindex',NOW());INSERT INTO testck.t_organization (code, name,updatetime)VALUES(1002,'EDT',NOW());

(2)创建第二张表

CREATE TABLE `testck`.`t_user` (`id` int(11) NOT NULL AUTO_INCREMENT,`code` int,PRIMARY KEY (`id`)) ENGINE=InnoDB;INSERT INTO testck.t_user (code) VALUES(1);

2、开启 ClickHouse 物化引擎

1登录clickhouse-client

set allow_experimental_database_materialize_mysql=1;

2) 创建复制管道

ClickHouse 中创建 MaterializeMySQL 数据库

CREATE DATABASE test_binlog ENGINE =

MaterializeMySQL('192.168.3.26:3306','testck','click','123456');

其中 4 个参数分别是 MySQL 地址、databse、username 和 password。

抛错:Code: 537. DB::Exception: Received from localhost:9000. DB::Exception: Illegal MySQL variables, the MaterializeMySQL engine requires default_authentication_plugin='mysql_native_password'.

失败了,为啥呢?

原来:mysql没配置这个default_authentication_plugin=mysql_native_password # 没有这个CK建库会失败---就是上面说的踩得坑

终于成功了

3)查看 ClickHouse 的数据

use test_binlog;

show tables;

select * from t_organization;

select * from t_user;

终于可以了

4)其它操作

修改数据

(1)在 MySQL 中修改数据:

update t_organization set name = CONCAT(name,'-v1') where id = 1

(2)查看 clickhouse 日志可以看到 binlog 监听事件,查询 clickhouse

select * from t_organization;

删除数据

(1)MySQL 删除数据:

DELETE FROM t_organization where id = 2;

(2)ClicKHouse,日志有 DeleteRows 的 binlog 监听事件,查看数据:

select * from t_organization;

(3)在刚才的查询中增加 _sign 和 _version 虚拟字段

select *,_sign,_version from t_organization order by _sign

desc,_version desc;

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Rust 力扣 - 1984. 学生分数的最小差值

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 原数组 nums 排序,遍历nums中下标为[0, nums.len() - k]的学生分数 假设当前遍历的下标为i则,以 i 下标为最小值的学生分数的最小差值为nums[i k - 1] - nums[i] 取最小差值的最小值即…

10个领先的增强现实平台【AR】

增强现实 (AR) 被描述为一种通过计算机生成的内容增强现实世界的交互式体验。 使用软件、应用程序和硬件(例如 AR 眼镜),AR 能够将数字内容叠加到现实环境和物体上。早在 2024 年,许多像 Apple 这样的公司就已进入 VR/AR 市场&am…

提高交换网络可靠性之端口安全配置

转载请注明出处 此实验为配置交换机端口安全,当非法设备接入接口时自动触发安全措施 1.查看PC1和PC2的MAC地址👇 2.交换机改名为S1,同时启用端口安全 3.配置允许接入设备 4.设置违规处理方式:即违规则关闭端口 5.查看安全端口相关…

HTTP与HTTPS的区别

HTTP与HTTPS的区别 一、HTTP二、HTTPS三、区别 一、HTTP HTTP (HyperText Transfer Protocol),即超文本运输协议,是实现网络通信的一种规范 在计算机和网络世界有,存在不同的协议,如广播协议、寻址协议、路由协议等等… 而HTTP…

Qt中的Model与View5: QStyledItemDelegate

目录 QStyledItemDelegate API 重载公共函数 保护函数 重载保护函数 当在 Qt 项目视图中显示模型数据时,例如 QTableView,每个项目由代理绘制。此外,当项目被编辑时,提供一个编辑器小部件,该小部件在编辑时显示在项…

token无感刷新+处理并发的后端方案

问题描述: 当用户通过登陆后进入一个web网站,会把token保存到localStorage。假设token过期时间30min。 那么当用户在网站快乐地玩耍了30min后,这时进行了一次提交表单,它会被重定向到登陆页面。 作为用户:我表单填了…

VMware虚拟机Debian扩展磁盘

一、 版本 VMware:Workstation 17 Pro虚拟机:Debian11 二、 VMware虚拟机扩展 虚拟机关机状态快照或者备份:以免扩容失败导致文件丢失虚拟机——设置——硬盘——磁盘使用工具——扩展——扩展磁盘容量——设置为想要的大小 三、 虚拟机…

L1-2 什么是机器学习

L1-2 什么是机器学习 作者 陈越 单位 浙江大学 什么是机器学习?上图展示了一段面试官与“机器学习程序”的对话: 面试官:9 10 等于多少? 答:3 面试官:差远了,是19。 答:16 面试…

ssm基于WEB的人事档案管理系统的设计与实现+jsp

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 1 绪论 1 1.1 选题背景 1 1.2 选题意义 1 1.3 研究内容 2 2 系统开发技术 3 2.1 MySQL数据库 3 2.…

WireShark入门学习笔记

学习视频:WireShark入门使用教程 文章目录 WireShark介绍WireShark抓包入门操作WireShark过滤器使用WireShark之ARP协议分析WireShark之ICMP协议TCP连接的3次握手协议TCP连接断开的4次挥手协议WireShark抓HTTP协议黑客利用WireShark获取用户密码实战 WireShark介绍…

vue3中使用mqtt数据传输(封装)

使用版本 "mqtt": "^5.8.0",安装指令 npm install mqtt --save ------ yarn add mqtt介绍mqtt 参考使用文档 配置 connection: {protocol: "ws",host: "broker.emqx.io",port: 8083,endpoint: "/mqtt",clean: true,con…

《Baichuan-Omni》论文精读:第1个7B全模态模型 | 能够同时处理文本、图像、视频和音频输入

技术报告Baichuan-Omni Technical ReportGitHub仓库地址 文章目录 论文摘要1. 引言简介2. 训练2.1. 高质量的多模态数据2.2. 多模态对齐预训练2.2.1. 图像-语言分支2.2.2. 视频语音分支2.2.3. 音频语言分支2.2.4. 图像-视频-音频全方位对齐 2.3. 多模态微调监督 3. 实验3.1. 语…

计算机的一些基础知识

文章目录 编程语言 程序 所谓程序,就是 一组指令 以及 这组指令要处理的数据。狭义上来说,程序对我们来说,通常表现为一组文件。 程序 指令 指令要处理的数据。 编程语言发展 机器语言:0、1 二进制构成汇编语言:…

苏州金龙新V系客车创新引领旅游出行未来

10月25日,为期三天的“2024第六届旅游出行大会”在风景秀丽的云南省丽江市落下帷幕。本次大会由中国旅游车船协会主办,全面展示了中国旅游出行行业最新发展动态和发展成就,为旅游行业带来全新发展动力。 在大会期间,备受瞩目的展车…

【重生之我要苦学C语言】深入理解指针4

深入理解指针4 字符指针变量 指针指向字符变量 char ch w; char* p &ch;指针指向字符数组 char arr[10] "abcdef"; char* p arr;printf("%s\n", arr); printf("%s\n", p);结果是一样的 也可以写成: char* p "abc…

Java | Leetcode Java题解之第525题连续数组

题目&#xff1a; 题解&#xff1a; class Solution {public int findMaxLength(int[] nums) {int maxLength 0;Map<Integer, Integer> map new HashMap<Integer, Integer>();int counter 0;map.put(counter, -1);int n nums.length;for (int i 0; i < n;…

Docker部署学习

目录 前言 一、实验环境准备 二、Docker常见命令 三、Docker数据卷 四、Docker自定义镜像 五、Docker网络相关 六、Docker项目部署实践 七、Docker知识追问强化 前言 1. Docker是用以项目上线部署的工具 2. Docker并不会很难&#xff0c;只要你跟着将所有的命令敲一遍…

二叉树和堆

目录 1.二叉树的概念及结构 1.1概念 1.2特殊的二叉树 1.3二叉树的性质 1.4二叉树的存储结构 2.二叉树的顺序结构及实现&#xff08;堆&#xff09; 2.1二叉树的顺序结构 2.2堆的概念及结构 2.3堆的实现 2.3.1堆的插入 2.3.2堆的删除 2.3.3 Heap.h 2.3.4 Heap.c 2.…

linux驱动-输入子系统框架分析

接下来&#xff0c;来分析三个结构体 打开这个文件drivers\input\evdev.c 第一步&#xff1a;要找到它的入口函数evdev_init 看到了&#xff0c;入口的位置注册了一个 input_handler&#xff0c;并且对里面的值完成赋值&#xff0c;和之前学习&#xff0c;我自己注册platform驱…

【sqlmap使用】

sqlmap简介 sqlmap 目录结构 sqlmap常用参数 sqlmap实现注入 测试注入点&#xff0c;检测到注入点后&#xff0c;直接爆数据库名 python sqlmap.py –u http://172.16.12.2/7/9/strsql.php --data "usernameadmin" --dbs注意sqlmap在使用过程中可能会出现几个需要…