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

cdc 在flink SQL 的情况下,某个字段的旧数据 是1 变成了新数据 2 ?

cdc 在flink SQL 的情况下,某个字段的旧数据 是1 变成了新数据 2 ,我就要把这个数据写出在jdbc中,这种场景SQL能完成吗?

展开
收起
真的很搞笑 2024-01-09 11:23:16 29 0
1 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,Flink SQL 可以获取到旧数据。在 Flink CDC 中,你可以使用 BEFOREAFTER 关键字来定义源表和目标表之间的变化。当某个字段的值发生变化时,Flink CDC 会将变化的数据写入目标表中。

    以下是一个示例:

    CREATE TABLE source_table (
        id INT,
        field1 INT,
        field2 STRING
    ) WITH (
        'connector' = 'kafka',
        'topic' = 'source_topic',
        ...
    );
    
    CREATE TABLE target_table (
        id INT,
        field1 INT,
        field2 STRING
    ) WITH (
        'connector' = 'jdbc',
        'url' = 'jdbc:mysql://localhost:3306/mydb',
        'table-name' = 'target_table',
        ...
    );
    
    INSERT INTO target_table
    SELECT id, field1, field2
    FROM source_table
    WHERE field1 = 1;
    

    在这个示例中,我们首先创建了一个名为 source_table 的源表和一个名为 target_table 的目标表。然后,我们使用 INSERT INTO 语句将 source_tablefield1 值为 1 的数据写入 target_table。这样,当 field1 的值从 1 变为 2 时,Flink CDC 会自动将变化的数据写入目标表中。

    2024-01-09 15:36:25
    赞同 展开评论 打赏

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

相关产品

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

    更多
    SQL Server 2017 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载