FlinkCDC同步MySQL到Starrocks,MySQL连接数多

【详述】按照官网的文档使用flinkcdc同步mysql到Starrocks
【背景】
【业务影响】导入性能慢,mysql连接数较多
【StarRocks版本】2.5.0
【集群规模】1fe+3be(fe与be混部)
【机器信息】CPU虚拟核/内存/网卡,例如:16C/16G/万兆
【表模型】主键模型
【导入或者导出方式】Flink
【联系方式】279417379@qq.com
【附件】

参考根据官网文档:https://docs.starrocks.io/zh-cn/latest/loading/Flink_cdc_load

flink版本:

  • flink 1.16
  • flink-sql-connector-mysql-cdc-2.3.0.jar
  • flink-connector-starrocks-1.2.5_flink-1.15.jar

目前mysql大概有接近1000个表,使用flink sql的方式同步到sr:

./bin/sql-clients -f smt/result/flink-create.all.sql

其中flink-create.all.sql通过smt工具生成后,把所有INSERT合并为一个flink job,

类似:

CREATE DATABASE IF NOT EXISTS `default_catalog`.`dev_f_order`;

CREATE TABLE IF NOT EXISTS `default_catalog`.`dev_f_order`.`cart_src` (
  `id` INT NOT NULL,
  `user_id` BIGINT NULL,
  ... ...
  PRIMARY KEY(`id`)
 NOT ENFORCED
) with (
  'server-id' = '940000',
  'connector' = 'mysql-cdc',
  'username' = 'flink_cdc',
  'password' = 'xxxxxxxx',
  'table-name' = 'cart',
  'connection.pool.size' = '300',
  'hostname' = '10.2.0.105',
  'port' = '3306',
  'database-name' = 'dev_f_order'
);

CREATE TABLE IF NOT EXISTS `default_catalog`.`dev_f_order`.`cart_sink` (
  `id` INT NOT NULL,
  `user_id` BIGINT NULL,
  ... ...
  PRIMARY KEY(`id`)
 NOT ENFORCED
) with (
  'database-name' = 'dev_f_order',
  'password' = '123333333333',
  'sink.properties.strip_outer_array' = 'true',
  'sink.max-retries' = '10',
  'sink.buffer-flush.interval-ms' = '15000',
  'load-url' = '10.2.0.113:8030',
  'username' = 'cdc',
  'connector' = 'starrocks',
  'table-name' = 'cart',
  'sink.properties.format' = 'json',
  'jdbc-url' = 'jdbc:mysql://10.2.0.113:9030'
);

... ...

SET 'pipeline.name' = 'load_dev_f_order_from_mysql_to_starrocks';
EXECUTE STATEMENT SET
BEGIN
INSERT INTO `default_catalog`.`dev_f_order`.`cart_sink` SELECT * FROM `default_catalog`.`dev_f_order`.`cart_src`;
......
END;

1、实践试过每个表的source中server-id必须设置为不同的值,否则会报错
2、表数量多,会导致mysql的连接数很多

问题:
1、在生产上使用该导入方案,稳定吗?是否通过canal导入kafka后再用flink导入sr好点?
2、每个表同步都会产生一个mysql的连接?
2、用flink-cdc后mysql连接数过多的问题会不会有影响?