当前位置:网站首页>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=ROW
2、 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
边栏推荐
- About MySQL database connection exceptions
- [2022 repair version] community scanning code into group activity code to drain the complete operation source code / connect the contract free payment interface / promote the normal binding of subordi
- Monitoring web performance with performance
- Share the newly released web application development framework based on blazor Technology
- Ask, does this ADB MySQL support sqlserver?
- LeetCode 234. Palindrome linked list
- Leetcode42. connect rainwater
- [untitled]
- postman和postman interceptor的安装
- 汇编-入门
猜你喜欢
Clickhouse物化视图
Machine learning experiment report 1 - linear model, decision tree, neural network part
SQL performance optimization skills
Class inheritance in C #
[software reverse analysis tool] disassembly and decompilation tool
[untitled]
【web審計-源碼泄露】獲取源碼方法,利用工具
ABP vNext microservice architecture detailed tutorial - distributed permission framework (Part 1)
【软件逆向-基础知识】分析方法、汇编指令体系结构
Zero foundation uses paddlepaddle to build lenet-5 network
随机推荐
Why do some programmers change careers before they are 30?
Kubernetes - identity and authority authentication
Kbp206-asemi rectifier bridge kbp206
The perfect car for successful people: BMW X7! Superior performance, excellent comfort and safety
Three line by line explanations of the source code of anchor free series network yolox (a total of ten articles, which are guaranteed to be explained line by line. After reading it, you can change the
【web源码-代码审计方法】审计技巧及审计工具
花了2晚,拿到了吴恩达@斯坦福大学的机器学习课程证书
Analysis of dagger2 principle
grandMA2 onPC 3.1.2.5的DMX参数摸索
【无标题】
Flex flexible layout
The latest blind box mall, which has been repaired very popular these days, has complete open source operation source code
Mongodb common commands
【web审计-源码泄露】获取源码方法,利用工具
Binary heap implementation (priority queue implementation)
MySQL winter vacation self-study 2022 11 (10)
Logstash、Fluentd、Fluent Bit、Vector? How to choose the appropriate open source log collector
【做题打卡】集成每日5题分享(第三期)
UE4 DMX和grandMA2 onPC 3.1.2.5的操作流程
Clickhouse物化视图