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

Flink CDC中cdc mysql sql语法有参数控制只捕获insert语句吗?

Flink CDC中cdc mysql sql语法有参数控制只捕获insert语句吗?

展开
收起
真的很搞笑 2023-07-13 11:06:12 294 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink CDC 中,可以使用 SQL 语句过滤需要捕获的数据变更类型。如果您只需要捕获 INSERT 语句,可以使用以下 SQL 语句:

    sql
    Copy
    SELECT * FROM your_table WHERE _cdc_type = 'INSERT'
    在上述语句中,_cdc_type 是 Flink CDC 内置的字段,用于表示数据变更类型。当数据发生变更时,Flink CDC 会自动在输出结果中添加 _cdc_type 字段,并将其值设置为 INSERT、UPDATE 或 DELETE。因此,通过在 SQL 语句中添加 _cdc_type = 'INSERT' 条件,可以只捕获 INSERT 类型的数据变更。image.png

    2023-07-30 06:59:33
    赞同 展开评论 打赏
  • 在 Flink CDC 中,可以通过配置来控制只捕获 INSERT 语句。Flink CDC 使用的是 Debezium 连接器,它提供了一些参数和配置选项来过滤特定类型的操作。

    要在 Flink CDC 中仅捕获 INSERT 语句,您可以使用以下方式进行配置:

    1. 使用 table.whitelist 参数:将需要捕获 INSERT 语句的表添加到 table.whitelist 参数中,并设置其他表为空。例如:

       properties    table.whitelist = mydatabase.mytable    

       这将只捕获 mydatabase.mytable 表中的 INSERT 语句。

    2. 使用 event.filters 参数:使用 Debezium 的 Event Filters 功能,可以按照自定义条件过滤事件。您可以创建一个自定义的 Event Filter 来仅捕获 INSERT 事件。例如:

       properties    event.filters = com.example.InsertEventFilter    

       然后,在 com.example.InsertEventFilter 类中实现自定义的过滤逻辑,使其只接受 INSERT 事件。

    请注意,具体的配置方式可能会因 Flink CDC 版本、Debezium 版本和使用的连接器而有所不同。建议查阅 Flink CDC 和 Debezium 的官方文档、邮件列表或社区讨论,以获取与您使用的版本和连接器相关的最新信息和配置方法。

    2023-07-29 23:36:49
    赞同 展开评论 打赏
  • image.png
    debezium.xxx来配置,此回答整理自钉群“Flink CDC 社区”

    2023-07-13 13:06:39
    赞同 展开评论 打赏

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

相关产品

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

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