FlinkCDC系列02: Seatunnel-Flink-JDBC-Sink如何实现Update

本文详细探讨了Apache Seatunnel中Flink-JDBC-Sink的配置与源码分析,指出其文档的不足,并展示了如何在没有saveMode参数的情况下实现类似于Spark-JDBC-Sink的更新操作。通过使用`on duplicate key update` SQL语句,实现了流式数据源的Update功能。同时,文章强调了直接修改query参数来构造upsert语句的可能性。

首先阅读Apache Seatunnel官网的关于Flink-JDBC-Sink的文档格式

JdbcSink {
    source_table_name = fake
    driver = com.mysql.jdbc.Driver
    url = "jdbc:mysql://localhost/test"
    username = root
    query = "insert into test(name,age) values(?,?)"
    batch_size = 2
}

首先要吐槽一下就是官网的这个文档几乎什么都没说啊。

Seatunnel-2.1.1-flink-jdbc-sink

这样子有个问题,就是我能不能实现类似spark-jdbc-sink中的update呢?一个只能处理新增不能处理修改的Sink是不合格的!

直接加saveMode这个参数是不行,因为代码里就没有这个参数,要知道到底支持什么参数,必须要直接阅读源码才行。

2.1.1版本Flink-jdbc-sink源代码

查看Config.java可知,根本没有saveMo

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值