当前位置: 首页> 教育> 大学 > 查企业免费查询_商旅平台app下载_互联网推广平台有哪些_班级优化大师app下载学生版

查企业免费查询_商旅平台app下载_互联网推广平台有哪些_班级优化大师app下载学生版

时间:2025/7/9 9:14:45来源:https://blog.csdn.net/sinat_38259539/article/details/143394065 浏览次数:0次
查企业免费查询_商旅平台app下载_互联网推广平台有哪些_班级优化大师app下载学生版

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;

关键字:查企业免费查询_商旅平台app下载_互联网推广平台有哪些_班级优化大师app下载学生版

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: