Flink 1.11 引入了 CDC,在此基础上, JDBC Connector 也发生比较大的变化。 JDBC-Connector 的重构 JDBC Connector 在 Flink 1.11 版本发生了比较大的变化,我们先从以下几个 Feature 来具体了解一下 Flink 社区在这个版本上对 JDBC 所做的改进。 FLINK-15782 :Rework JDBC Sinks (重写 JDBC Sink) 这个issue 主要...
publicTableSink<RowData>createTableSink(TableSinkFactory.Context context){Configuration conf=newConfiguration();context.getTable().getOptions().forEach(conf::setString);returnnewFileSystemTableSink(context.getObjectIdentifier(),//connector标识符context.isBounded(),//是否有界流context.getTable().getSchema(...
git clone https://github.com/apache/flink-connector-jdbc.git 入口分析 类关系 flink的connector都是通过spi注入的,可以直接目录src/main/resources/META-INF/services下文件。 类 public class JdbcDynamicTableFactory implements DynamicTableSourceFactory, DynamicTableSinkFactory {} public class JdbcCatalogFactory ...
JdbcDynamicTableFactory 类主体结构 public static final String IDENTIFIER = "jdbc"; 其他参数见类:JdbcConnectorOptions public class JdbcConnectorOptions { public static final ConfigOption<String> URL = ConfigOptions.key("url") .stringType() .noDefaultValue() .withDescription("The JDBC database URL."...
该连接器可以向 JDBC 数据库写入数据。 依赖 添加下面的依赖以便使用该连接器(同时添加 JDBC 驱动): <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-jdbc_2.11</artifactId> <version>1.13.1</version> </dependency> 案例演示 需求 从指定的socket读取数据,对单词进行计算,...
该连接器可以向 JDBC 数据库写入数据。 网页链接 添加下面的依赖以便使用该连接器(同时添加 JDBC 驱动): <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-jdbc_2.11</artifactId> <...
JDBC Connector 可以用在时态表关联中作为一个 lookup source (维表、查找表),当前只支持同步的查找模式。 默认情况下,lookup cache 是未启用的,可以设置 lookup.cache.max-rows 和 lookup.cache.ttl 参数来启用。lookup cache 的主要目的是用于提高时态表关联 JDBC 连接器的性能。
'connector' = 'jdbc', 'url' = 'jdbc:mysql://localhost:3306/test', 'table-name' = 'studentscount', 'username' = 'root', 'password' = '123', 'driver' = 'com.mysql.jdbc.Driver', 'sink.buffer-flush.interval' = '0', 'sink.buffer-flush.max-rows' = '1' ...
总结:JDBC sink的操作时,如果外部系统定义的DDL存在主键,则JDBC连接器将使用upsert语义而不是简单的insert,在Flink任务执行中如果出现了故障,Flink作业将会从上一个成功的检查点恢复并重新处理,这可能导致在恢复期间重新处理消息。 强烈建议使用upsert模式,因为使用append模式需要重新处理记录,下游可能会出现重复数据。
总的来说,Flink-connector-jdbc虽然仍然是Flink项目的一部分,但它的开发和发布已经相对独立,具有自己的版本属性,以便更好地适应不同数据库和环境的需求。 2023-12-29 15:55:16 发布于河南 举报 赞同 评论 打赏 sunrr 是的,从Flink 1.13版本开始,Flink Connector JDBC已经被移到了一个独立的仓库,不再包含在...