ClickHouse之物化MySQL
Creates ClickHouse database with all the tables existing in MySQL, and all the data in those tables.
ClickHouse server works as MySQL replica. It reads binlog and performs DDL and DML queries.
This feature is experimental.
使用 MySQL 中存在的所有表以及这些表中的所有数据创建 ClickHouse 数据库。
ClickHouse 服务器用作 MySQL 副本。它读取 binlog 并执行 DDL 和 DML 查询。
此功能是实验性的。
目前 MaterializeMySQL database engine 还不支持表级别的同步操作,需要将整个mysql database映射到clickhouse,映射过来的库表会自动创建为ReplacingMergeTree表engine。 MaterializeMySQL 支持全量和增量同步,首次创建数据库引擎时进行一次全量复制,之后通过监控binlog变化进行增量数据同步;该引擎支持mysql 5.6/5.7/8.0版本数据库,兼容insert,update,delete,alter,create,drop,truncate等大部分DDL操作。
特点
(1) MaterializeMySQL 同时支持全量和增量同步, 在 database 创建之初会全量同步MySQL 中的表和数据, 之后则会通过 binlog 进行增量同步。
( 2) MaterializeMySQL database 为其所创建的每张 ReplacingMergeTree 自动增加了_sign 和 _version 字段。
其中, _version 用作 ReplacingMergeTree 的 ver 版本参数, 每当监听到 insert、 update和 delete 事件时, 在 databse 内全局自增。而 _sign 则用于标记是否被删除,取值 1 或者 -1。
目前 MaterializeMySQL 支持如下几种 binlog 事件:
➢ MYSQL_WRITE_ROWS_EVENT: _sign = 1, _version ++
➢ MYSQL_DELETE_ROWS_EVENT: _sign = -1, _version ++
➢ MYSQL_UPDATE_ROWS_EVENT: 新数据 _sign = 1
➢ MYSQL_QUERY_EVENT: 支持 CREATE TABLE 、 DROP TABLE 、 RENAME TABLE 等。
1.修改my.cnf开启mysql binlog模式
log-bin=/data/logs/mysql/mysql-bin.log # 指定binlog日志存储位置
binlog_format=ROW # 这里一定是row格式
server-id=1
#clickhouse20.8之后版本,开启gtid,可以在mysql主从模式下保证数据同步一致性
gtid-mode=on
enforce-gtid-consistency=1 # 设置为主从强一致性
log-slave-updates=1 # 记录日志
查看Binlog是否开启
show variables like 'log_bin';
2.新建表
mysql> CREATE DATABASE db;
mysql> CREATE TABLE db.test (a INT PRIMARY KEY, b INT);
mysql> INSERT INTO db.test VALUES (1, 11), (2, 22);
mysql> DELETE FROM db.test WHERE a=1;
mysql> ALTER TABLE db.test ADD COLUMN c VARCHAR(16);
mysql> UPDATE db.test SET c='Wow!', b=222;
mysql> SELECT * FROM test;
3.登录clickhouse, 开启mysql物化引擎
clickhouse-client -u default --password default SET allow_experimental_database_materialized_mysql = 1
# 因为该功能目前还处于实验阶段,在使用之前需要开启
4.创建爱你一个复制管道
CREATE DATABASE mysql ENGINE = MaterializeMySQL('localhost:3306', 'db', 'root', '***');
其中四个参数分别是: MySQL地址, database,username,password
SHOW TABLES FROM mysql;
5.查看数据, 进行clickhouse中数据操作会同步数据
select *,_sign,_version from t_organization order by _sign desc,_version desc; 在查询时,对于已经被删除的数据, _sign=-1, ClickHouse 会自动重写 SQL,将 _sign = -1 的数据过滤掉; 对于修改的数据,则自动重写 SQL,为其增加 FINAL 修饰符。
select * from t_organization
等同于
select * from t_organization final where _sign = 1
注意点:
物化MySqL的前提是:数据库里的表都是有主键的!!!
ClickHouse之物化MySQL的更多相关文章
- Tapdata Cloud 版本上新!新增ClickHouse,ADB MySQL等5个数据源支持
		Tapdata Cloud cloud.tapdata.net Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持Oracle.MySQL.PG.SQL Server.Mongo ... 
- Clickhouse单机部署以及从mysql增量同步数据
		背景: 随着数据量的上升,OLAP一直是被讨论的话题,虽然druid,kylin能够解决OLAP问题,但是druid,kylin也是需要和hadoop全家桶一起用的,异常的笨重,再说我也搞不定,那只能 ... 
- clickhouse物化视图
		今天来简单介绍一下clickhouse的物化视图 物化视图支持表引擎,数据保存形式由它的表引擎决定,创建物化视图的完整语法如下: create materialized view mv_log eng ... 
- ClickHouse之访问权限控制
		研究ClickHouse也有几周了,今天来和大家说说ClickHouse的访问权限是怎么做的,ClickHouse不像MySQL那样,直接创建用户,而是需要在配置文件里面添加用户,一个简单的例子如下: ... 
- MySQL子查询的优化
		本文基于MySQL5.7.19测试 创建四张表,pt1.pt2表加上主键 mysql> create table t1 (a1 int, b1 int); mysql> create ta ... 
- ClickHouse基本操作(二)
		一.先来说一下,ClickHouse为啥快 MySQL单条SQL是单线程的,只能跑满一个core,ClickHouse相反,有多少CPU,吃多少资源,所以飞快: ClickHouse不支持事务,不存在 ... 
- 天啦,从Mongo到ClickHouse我到底经历了什么?
		前言: 在实现前端监控系统的最初,使用了 Mongo 作为日志数据存储库.文档型存储,在日志字段扩展和收缩上都能非常方便.天生的 JSON 格式和 NodeJs 配合也非常贴合.就这样度过了几个月的蜜 ... 
- ClickHouse在大数据领域应用实践
		一.序言 面向大数据量查询数据库,优点是在较大数据量(千万级)的前提下具有较好的查询性能. 1.应用场景 ClickHouse应用于OLAP(在线分析处理)领域,具体来说满足如下特点使用此技术比较合适 ... 
- 海量数据存储ClickHouse
		ClickHouse介绍 ClickHouse的由来和应用场景 俄罗斯Yandex在2016年开源,使用C++编写的列式存储数据库,近几年在OLAP领域大范围应用 官网:https://clickho ... 
- ClickHouse(07)ClickHouse数据库引擎解析
		目录 Atomic 建表语句 特性 Table UUID RENAME TABLES DROP/DETACH TABLES EXCHANGE TABLES ReplicatedMergeTree in ... 
随机推荐
- PLC 入口
			教程 全网最全西门子S7-1500PLC视频教程, https://www.bilibili.com/video/BV1Yi4y1U7Md?p=12&vd_source=7f5dfe09aaa ... 
- spark 新建一个column并用另一column的最大值赋值
			finalDF.withColumn("NEW_COLUMN", max("start_date").over()).show() Ref: https:/ ... 
- wxpython开发gui界面基础
			wxpython 开发gui 基础知识 一 .前言 记录使用wxpython开发gui工具吧.gui界面主要就是先布局,每个模块都是一个对象. 二.基础知识 import wx class MyFra ... 
- CSS – Position
			前言 定位是 CSS 里蛮重要的一课. 图片黑影 (overlay), back to top button, header, footer 紧贴在屏幕上下方等效果都是靠 position 完成的. ... 
- 浅谈舞蹈链(DLX)
			名字: \(DL\),\(Dancing\space Link\),舞蹈链,是由\(Donald\space Knuth\)提出的数据结构,用来优化 \(X\) 算法,所以叫\(DLX\) \(X\) ... 
- 【赵渝强老师】史上最详细的PostgreSQL体系架构介绍
			PostgreSQL是最像Oracle的开源数据库,我们可以拿Oracle来比较学习它的体系结构,比较容易理解.PostgreSQL的主要结构如下: 一.存储结构 PG数据存储结构分为:逻辑存储结构和 ... 
- argmax经过sigmoid和不经过sigmoid区别
			起因 今天和同组讨论了一下网络输出时,在torch.argmax之前经过torch.sigmoid和不经过sigmoid的区别. 主要起因是实验结果图像不同 图1 不经过sigmoid 图2 经过si ... 
- 2022年4月中国数据库排行榜:华为GaussDB 挺进前四,榜单前八得分扶摇直上
			四月暖阳至,行业春风来.2022年4月的 墨天轮中国数据库流行度排行榜 已在墨天轮发布,本月共有205个数据库参与排名,相比上月新增六个数据库.本月整体排名变动不大,但排行榜上数据库整体得分涨幅较大. ... 
- 云原生爱好者周刊:mist.io 开源多云管理平台
			开源项目推荐 Mist Mist 是一个开源的多云管理平台,它提供了跨云和内部基础设施的可观测性,以及生命周期管理能力.同时还提供了一些功能更强大的商业组件. rga rga 是一个类似于 grep ... 
- mongodb副本集群使用总结
			一.该文档仅为了总结经验,方便下次部署时跳过踩过的坑.其中MongoDB的复制原理.特点等参照的菜鸟教程,附地址:https://www.runoob.com/mongodb/mongodb-repl ... 
