Flink CDC MySQL版本
第一步:操作数据库构建表,并加入数据
mysql -u root -p
update user set Host='%' where User='root';
CREATE DATABASE mysql_cdc_database;
use mysql_cdc_database;
CREATE TABLE mysql_cdc_prove (
id INT NOT NULL,
name VARCHAR(255),
description VARCHAR(255),
PRIMARY KEY(id)
);
INSERT INTO mysql_cdc_prove (id, name, description) VALUES
(1, 'Product A', 'Description A'),
(2, 'Product B', 'Description B'),
(3, 'Product C', 'Description C'),
(4, 'Product D', 'Description D');
第二步:在 Doris 中创建表
CREATE TABLE mysql_source (
id INT,
name VARCHAR(255),
description VARCHAR(255),
)
UNIQUE KEY(`id`)
DISTRIBUTED BY HASH(id)
第二步:编写Flink SQl
创建 CDC 源表
CREATE TABLE mysql_cdc_base (
id INT NOT NULL,
name VARCHAR(255),
description VARCHAR(255)
PRIMARY KEY(id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc',
'hostname' = '192.168.10.177',
'port' = '3306',
'username' = 'root',
'password' = '-3xxxxxaudt&R].',
'database-name' = 'mysql_cdc_database',
'table-name' = 'mysql_cdc_prove'
);
创建 Doris 的映射表
CREATE TABLE mysql_mapping (
id INT,
name VARCHAR,
description VARCHAR
) WITH (
'connector' = 'doris',
'fenodes' = '192.168.10.1:8030',
'table.identifier' = 'test.mysql_source',
'username' = 'root',
'password' = 'Q#n2Grststs@13',
'sink.label-prefix' = 'mysql_mapping'
);
将源表 CDC 数据同步到 Doris 中
insert into
mysql_mapping
select
id,
name,
description
from
mysql_cdc_base;
第三步:在 Doris 中进行查询
use test;
show tables;
select * from mysql_source;
过程与单表 CDC 类似,只需要在插入之前,按照上述过程配置多个单表,最后在用 flink sql 选择多个不同的数据表进行插入即可。