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

Flink CDC中JdbcSink.sink中的sql 语句中的表 可以做为参数传入吗?

Flink CDC中JdbcSink.sink中的sql 语句中的表 可以做为参数传入吗,我现在只想到是 写数据库函数实现?

展开
收起
真的很搞笑 2023-12-05 20:39:36 90 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,你可以在Flink CDC中的JdbcSink.sink方法中将SQL语句中的表名作为参数传入。你可以使用Java的字符串格式化功能来实现这个需求。

    以下是一个示例:

    String sql = "INSERT INTO %s SELECT * FROM source_table";
    String tableName = "target_table";
    String formattedSql = String.format(sql, tableName);
    
    JdbcSink<Row> jdbcSink = JdbcSink.sink(formattedSql, (ps, row) -> {
        ps.setInt(1, row.getInteger(0));
        ps.setString(2, row.getString(1));
        // ... set other fields
    }, env.getConfig().getGlobalJobParameters());
    

    在这个示例中,我们首先定义了一个包含占位符的SQL语句,然后使用String.format方法将表名替换为实际的表名。最后,我们将格式化后的SQL语句传递给JdbcSink.sink方法。

    2023-12-06 14:37:16
    赞同 展开评论 打赏
  • 等等3.0这些你都不需要了,支持整库同步和schema evolution ,此回答整理自钉群“Flink CDC 社区”

    2023-12-06 13:40:52
    赞同 展开评论 打赏

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

相关产品

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

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