当前位置:网站首页>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
边栏推荐
- [web Audit - source code disclosure] obtain source code methods and use tools
- 問下,這個ADB mysql支持sqlserver嗎?
- error Couldn‘t find a package.json file in “你的路径“
- There is a question about whether the parallelism can be set for Flink SQL CDC. If the parallelism is greater than 1, will there be a sequence problem?
- Clickhouse物化视图
- How about programmers' eyesight| Daily anecdotes
- Subversive cognition: what does SRE do?
- 天干地支纪年法中为什么是60年一个轮回,而不是120年
- Anti debugging (basic principles of debugger Design & NT NP and other anti debugging principles)
- De debugging (set the main thread as hidden debugging to destroy the debugging Channel & debugger detection)
猜你喜欢

Subversive cognition: what does SRE do?

Thread Basics
![[安洵杯 2019]不是文件上传](/img/f1/736eb5fe51c299e3152ca87895ee99.png)
[安洵杯 2019]不是文件上传

ABP vNext microservice architecture detailed tutorial - distributed permission framework (Part 2)

Leetcode42. connect rainwater

Containerization Foundation

@Transactional 注解导致跨库查询失效的问题
![[105] Baidu brain map - Online mind mapping tool](/img/4f/64ee0bb15aec435294d4f5fde4493e.jpg)
[105] Baidu brain map - Online mind mapping tool

Share the newly released web application development framework based on blazor Technology

MindFusion.Virtual Keyboard for WPF
随机推荐
Monitoring web performance with performance
Daily question 2 12
[move pictures up, down, left and right through the keyboard in JS]
ABP vNext microservice architecture detailed tutorial - distributed permission framework (Part 2)
【做题打卡】集成每日5题分享(第三期)
Clean up PHP session files
[untitled]
【web审计-源码泄露】获取源码方法,利用工具
Use of kubesphere configuration set (configmap)
请问一下我的请求是条件更新,但在buffer中就被拦截了,这种情况我只能每次去flush缓存么?
grandMA2 onPC 3.1.2.5的DMX参数摸索
Installation of postman and postman interceptor
PlasticSCM 企业版Crack
What is the most effective way to convert int to string- What is the most efficient way to convert an int to a String?
DECLARE_ WAIT_ QUEUE_ HEAD、wake_ up_ Interruptible macro analysis
問下,這個ADB mysql支持sqlserver嗎?
How to make the listbox scroll automatically when adding a new item- How can I have a ListBox auto-scroll when a new item is added?
English essential vocabulary 3400
postman和postman interceptor的安装
SQL performance optimization skills