目前利用FlinkCDC同步数据的方式有两种:
一种是直接使用sql的方式;
一种使用的是datastream的方式;
现在使用第一种方式来实现,通过在flink的client里面进行sql方式的执行。在flink的bin目录下有一个./bin/sql-client.sh,进入到这里面可以执行sql语句。
假如现在需要从mysql同步数据到doris:
第一步需要把flink-sql-connector-mysql-cdc-2.3.0.jar和flink-doris-connector-1.16-1.3.0.jar这两个jar包放到flink/lib目录下,这样的话就可以试用“mysql-cdc”和“doris”,案例如下:
flink利用mysql-cdc从mysql读取binlog日志;
先创建一个源表:
create table source_mysql
(
id bigint,
age int,
name STRING,
sex int,
create_time timestamp(3),
PRIMARY KEY (id) NOT ENFORCED
) WITH (
'connector' = 'mysql-cdc', //连接器
'hostname' = 'localhost', //mysql的ip地址或域名
'port' = '3306',
'username' = 'username',
'password' = 'password',
'database-name' = 'database', //库名
'table-name' = 't_table', //表名
'scan.startup.mode' = 'latest-offset' //latest-offset代表从最新的开始拉取,initial代表读取所有
);
再创建一个目标表:
create table sink_doris
(
id bigint,
age int,
name STRING,
sex int,
create_time timestamp(3)
) WITH (
'connector' = 'doris',
'fenodes' = 'ip:port',
'table.identifier' = '数据库.表',
'username' = '账号',
'password' = '密码',
);
最后通过insert into......select...把两个表连接起来:
insert into sink_doris select id,name,age,sex,create_time from source_mysql;