当前位置:网站首页>Clickhouse synchronization MySQL (based on materialization engine)
Clickhouse synchronization MySQL (based on materialization engine)
2022-07-05 03:45:00 【Younger Cheng】
One 、Mysql engine ( Not recommended )
Synchronization considerations :1、 The library name specification cannot have “-”, The table name specification cannot have “-”
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')Parameter description :
host:port— MySQL Service addressdatabase— MySQL Database nameuser— MySQL user namepassword— MySQL User password
MySQL The engine will be remote MySQL Tables in the server / Library mapping to ClickHouse in ,MySQL The database engine will convert the query to MySQL Syntax and send to MySQL Server ( Equivalent to direct use of mysql)
Database synchronization :
CREATE DATABASE IF NOT EXISTS mysql_db ENGINE = MySQL ('localhost:3306', 'mysql', 'root', '123456');
Table synchronization :
CREATE TABLE IF NOT EXISTS tmp ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('localhost:3306','test','user','root','123456')Two 、MaterializedMySQL( To use , But the official is still in the experimental stage )
CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MaterializedMySQL('host:port', ['database' | database], 'user', 'password') [SETTINGS ...]
[TABLE OVERRIDE table1 (...), TABLE OVERRIDE table2 (...)]establish ClickHouse database , contain MySQL All the tables in , And all the data in these tables .
ClickHouse Server as MySQL Copy work . It reads binlog And implement DDL and DML Inquire about
1、mysql Turn on binlog and GTID
vim /etc/mysql/my.cnf
[mysqld]
# Appoint binlog Log storage location
#log-bin=/data/logs/mysql/mysql-bin.log
log-bin=/var/lib/mysql/mysql-bin
# Turn on GTID Pattern
gtid-mode=ON
# Set master-slave strong consistency
enforce-gtid-consistency=1
# Log
log-slave-updates=1
binlog_format=ROW2、 Create a replication pipeline
# Start the materialization engine
SET allow_experimental_database_materialized_mysql=1;
CREATE DATABASE yfc
ENGINE = MaterializeMySQL('localhost:3306', 'yfc', 'root', '123456') advantage : By monitoring mysql Of binlog file , Achieve incremental updates , Increased efficiency
Data restrictions :
1、 Sync mysql Before the data ,mysql Every watch of should have primary key( If there is no primary key , Error will be reported during synchronization )
2、MaterializedMySQL It is a library level engine , During synchronization, the table data in the whole database will be synchronized
3、mysql Data synchronization to clickhouse Index conversion will occur after : stay ClickHouse In the table ,MySQL Of PRIMARY KEY and INDEX Clause is converted to ORDER BY Tuples
4、mysql In the transformation of clickhouse Table time , Each table will add two fields :_sign(1: write in 、-1: Delete ),_version
5、 stay clickhouse When adding synchronization in , There is no physical deletion , Only pass _sign Flag field to realize data filtering
6、 stay mysql conversion clickhouse when , Default ReplacingMergeTree engine , Ensure that no duplicate data appears
example :
#1、 Query the synchronized database
show databses;
use yfc;
show tables;
#2、 View the table creation statement
show create table sku_info;
#3、 Query synchronized data
select *,_sign,_version from sku_info;

#4、 The new data ( Go to mysql Of sku_info Insert data into the table )
INSERT INTO `yfc`.`sku_info`(`id`, `sku_code`) VALUES (3, '10003');
#5、 Modifying data
UPDATE `yfc`.`ts_store_info` set cust_name = ' Continuous commissioning test ' where id= 111; 
#6、 Delete data
DELETE FROM `yfc`.`sku_info` where id= 3; 
3、 ... and 、mysql Table function
Four 、datax
边栏推荐
- glibc strlen 实现方式分析
- SQL performance optimization skills
- 汇编-入门
- Basic function learning 02
- Une question est de savoir si Flink SQL CDC peut définir le parallélisme. Si le parallélisme est supérieur à 1, il y aura un problème d'ordre?
- Leetcode42. connect rainwater
- Flex flexible layout
- [system security] ten thousand words summary system virtualization container bottom layer principle experiment
- 【PHP特性-变量覆盖】函数的使用不当、配置不当、代码逻辑漏洞
- The latest blind box mall, which has been repaired very popular these days, has complete open source operation source code
猜你喜欢
![[web source code code code audit method] audit skills and tools](/img/7c/2c26578da084b3cd15d8f252b0e132.png)
[web source code code code audit method] audit skills and tools

Web components series (VII) -- life cycle of custom components

ActiveReportsJS 3.1 VS ActiveReportsJS 3.0

Smart pointer shared_ PTR and weak_ Difference of PTR

v-if VS v-show 2.0

postman和postman interceptor的安装
![[positioning in JS]](/img/f1/02ce74fadc1f7524c7abca9db66c71.jpg)
[positioning in JS]

Containerization Foundation

Asemi rectifier bridge 2w10 parameters, 2w10 specifications, 2w10 characteristics

Logstash、Fluentd、Fluent Bit、Vector? How to choose the appropriate open source log collector
随机推荐
Subversive cognition: what does SRE do?
Clickhouse物化视图
【无标题】
请问一下我的请求是条件更新,但在buffer中就被拦截了,这种情况我只能每次去flush缓存么?
Usage scenarios and solutions of ledger sharing
NEW:Devart dotConnect ADO.NET
[deep learning] deep learning reference materials
Difference between MotionEvent. getRawX and MotionEvent. getX
MySQL winter vacation self-study 2022 11 (9)
[groovy] string (string splicing | multi line string)
Thread Basics
企业级:Spire.Office for .NET:Platinum|7.7.x
Yyds dry goods inventory embedded matrix
Logstash、Fluentd、Fluent Bit、Vector? How to choose the appropriate open source log collector
KVM virtualization
Binary heap implementation (priority queue implementation)
Clickhouse同步mysql(基于物化引擎)
Technology sharing swift defense programming
How to define a unified response object gracefully
[web Audit - source code disclosure] obtain source code methods and use tools