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

posted @ 2026-10-28 14:21  slnngk  阅读(11)  评论(0)    收藏  举报