flink-sql同步doris到mysql
环境:
OS:Centos 7
doris:4.0.8
mysql:5.7
1.下载链接驱动
192.168.12.87机器
cd /opt/flink-1.20.5/lib
wget https://repository.apache.org/content/repositories/releases/org/apache/doris/flink-doris-connector-1.20/25.1.0/flink-doris-connector-1.20-25.1.0.jar
2.重启flink
好像不需要重启也可以
/opt/flink-1.20.5/bin/stop-cluster.sh
/opt/flink-1.20.5/bin/start-cluster.sh
3.准备同步配置文件
vi /opt/flink-1.20.5/flinksql/doris2mysql_tb_hxl.sql
SET 'pipeline.name' = 'doris同步到mysql';
SET 'execution.runtime-mode' = 'BATCH';
SET 'table.exec.sink.upsert-materialize' = 'NONE';
-- Doris源表,直接读取tb_hxl
CREATE TABLE doris_source (
id STRING,
name1 STRING,
name2 STRING,
name3 STRING,
name4 STRING,
name5 STRING,
name6 STRING,
name7 STRING,
name8 STRING,
name9 STRING,
name10 STRING,
create_time TIMESTAMP(3),
update_time TIMESTAMP(3)
) WITH (
'connector' = 'doris',
'fenodes' = '192.168.1.134:8030',
'table.identifier' = 'db_test.tb_hxl',
'username' = 'root',
'password' = 'mysql',
'doris.read.field' = 'id,name1,name2,name3,name4,name5,name6,name7,name8,name9,name10,create_time,update_time'
);
-- MySQL目标表,JDBC upsert,主键冲突更新
CREATE TABLE mysql_sink (
id BIGINT PRIMARY KEY NOT ENFORCED,
name1 STRING,
name2 STRING,
name3 STRING,
name4 STRING,
name5 STRING,
name6 STRING,
name7 STRING,
name8 STRING,
name9 STRING,
name10 STRING,
create_time TIMESTAMP(3),
update_time TIMESTAMP(3)
) WITH (
'connector' = 'jdbc',
'url' = 'jdbc:mysql://192.168.1.14:3306/db_test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai',
'table-name' = 'tb_hxl',
'username' = 'hxl',
'password' = 'mysql',
'sink.buffer-flush.max-rows' = '1000',
'sink.buffer-flush.interval' = '2000ms',
'sink.max-retries' = '3'
);
INSERT INTO mysql_sink
SELECT
CAST(id AS BIGINT),
name1,
name2,
name3,
name4,
name5,
name6,
name7,
name8,
name9,
name10,
create_time,
update_time
FROM doris_source;
4.启动任务
/opt/flink-1.20.5/bin/sql-client.sh -f /opt/flink-1.20.5/flinksql/doris2mysql_tb_hxl.sql
浙公网安备 33010602011771号