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

Flink CDC addSink 这个有demo怎么用的吗?

Flink CDC addSink 这个有demo怎么用的吗?

展开
收起
真的很搞笑 2023-07-13 13:29:56 115 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    是的,Flink CDC 提供了 addSink 方法来将数据写入到指定的数据源中。具体来说,可以使用 addSink 方法将 Flink CDC 的输出结果写入到 MySQL、PostgreSQL、Elasticsearch 等数据源中。以下是一个使用 Flink CDC 将数据写入到 MySQL 的示例代码:

    java
    Copy
    // 创建 FlinkCDCSource
    FlinkCDCSource flinkCDCSource = FlinkCDCSource.builder()
    .hostname("127.0.0.1")
    .port(3306)
    .username("root")
    .password("123456")
    .databaseList("test")
    .tableList("test_table")
    .deserializer(new StringDebeziumDeserializationSchema())
    .build();

    // 创建 MySQLSink
    JdbcConnectionOptions jdbcOptions = new JdbcConnectionOptions.JdbcConnectionOptionsBuilder()
    .withDriverName("com.mysql.jdbc.Driver")
    .withUrl("jdbc:mysql://localhost:3306/test")
    .withUsername("root")
    .withPassword("123456")
    .build();
    JdbcSink jdbcSink = JdbcSink.sink(
    "INSERT INTO test_table (id, name, age) VALUES (?, ?, ?)",
    (ps, record) -> {
    ps.setInt(1, record.get("id"));
    ps.setString(2, record.get("name"));
    ps.setInt(3, record.get("age"));
    },
    jdbcOptions);

    // 创建 Flink 程序
    StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
    DataStream stream = env.addSource(flinkCDCSource);
    stream.addSink(jdbcSink);

    // 执行 Flink 程序
    env.execute("Flink CDC to MySQL Example");
    在这个示例中,首先创建了一个 FlinkCDCSource,用于从 MySQL 数据库中读取数据。然后创建了一个 JdbcSink,用于将数据写入到 MySQL 数据库中。最后将 FlinkCDCSource 的输出结果通过 addSink 方法写入到 JdbcSink 中,从而实现将 Flink CDC 的输出结果写入到 MySQL 数据库中。

    2023-07-29 22:28:29
    赞同 展开评论 打赏

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

相关产品

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

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