开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink CDC多表 SINK 要怎么写 JDBCSINK 都是批量的固定SQL语句的?

Flink CDC多表 SINK 要怎么写 JDBCSINK 都是批量的固定SQL语句的? 要丢掉批量处理吗?

展开
收起
真的很搞笑 2023-09-28 09:41:37 218 0
1 条回答
写回答
取消 提交回答
  • Flink CDC 多表 SINK 可以使用 JDBCSink 来实现。JDBCSink 可以通过 statement 属性指定一条批量插入 SQL 语句,也可以通过 statements 属性指定一组批量插入 SQL 语句。

    如果您需要将数据写入多个表,可以使用 statements 属性指定多条 SQL 语句。例如,以下代码将数据分别写入 table1 和 table2 表:

    .addSink(new JDBCSink(
    "jdbc:mysql://:/",
    "username",
    "password",
    new String[]{"table1", "table2"},
    new String[]{"insert into table1 (id, name) values (?, ?)", "insert into table2 (id, name) values (?, ?)"}
    ))
    如果您需要将数据写入同一张表,但需要使用不同的 SQL 语句,则可以使用 insertSql 属性指定主 SQL 语句,并使用 additionalInsertSqls 属性指定附加的 SQL 语句。例如,以下代码将数据分别写入 table1 表的 id 和 name 列:

    .addSink(new JDBCSink(
    "jdbc:mysql://:/",
    "username",
    "password",
    "insert into table1 (id, name) values (?, ?)",
    new String[]{"select id, name from table1 where id % 2 = 0", "select id, name from table1 where id % 2 = 1"}
    ))
    更多关于 Flink CDC 多表 SINK 的信息,可以参考 官方文档。

    2023-10-17 10:17:42
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载