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

Flink CDC 中sqlserver cdc 2.4.0 无锁有什么特殊要求吗?

Flink CDC 中sqlserver cdc 2.4.0 无锁有什么特殊要求吗?.startupOptions(StartupOptions.initial()) 这样就是无锁的么~我今天试了下·还是会锁的样子。。用的RDS 是开了的 USE db GO EXEC sp_rds_cdc_enable_db GO这个命令

展开
收起
真的很搞笑 2023-07-02 16:53:59 114 0
3 条回答
写回答
取消 提交回答
  • 在使用 Flink CDC 中的 SQL Server CDC 2.4.0 版本实现无锁模式时,有一些特殊要求:

    1. SQL Server 版本要求 ≥ 2017:无锁 CDC 模式是从 SQL Server 2017 版本开始支持的。

    2. 表需要有 store_version 列:Flink CDC 在消费 SQL Server CDC Event 时会根据该列进行增量消费。默认情况下,该列会被自动添加。

    3. 设置 CDC 选项 WITH (NO_LOG):在表上启用 SQL Server CDC Services 时,需要设置该选项来开启无锁模式。

    如果满足以上条件,Flink CDC 2.4.0 及以上版本将自动支持 SQL Server 的无锁 CDC 模式。

    您可以通过启用增量快照(incremental snapshot)功能,并查看相关日志来确认是否成功打开了增量快照功能。在日志中,您可以查看执行的 SQL 语句,确认是否开启了无锁模式。

    2023-07-30 12:54:56
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    k CDC 支持的 SQL Server CDC 实际上是基于 SQL Server CDC Services(变更数据捕获服务)实现的。
    对于 SQL Server CDC Services,从 SQL Server 2017 版本开始支持了无锁 CDC 模式。
    无锁 CDC 模式意味着:
    不需要对数据库表做锁定,没有影响数据库写入性能
    可以即时捕获数据库表的所有变更,不会错过任何数据
    要启用 SQL Server CDC 的无锁模式,需要满足如下条件:
    SQL Server 版本要求 ≥ 2017
    表需要有列store_version列 (默认添加)
    设置CDC选项 WITH (NO_LOG)
    Flink CDC 2.4.0 以上版本已经默认支持 SQL Server 的无锁 CDC 模式。
    所以有如下要求:
    SQL Server 数据库版本要 ≥ 2017
    Flink CDC 版本 ≥ 2.4.0(支持 SQL Server 无锁 CDC)
    在表上启用 SQL Server CDC Services,设置WITH (NO_LOG)选项
    Flink CDC 在消费 SQL Server CDC Event 时,会根据 store_version 列来进行增量消费
    如果满足以上条件,Flink CDC 将会自动使用 SQL Server 的无锁 CDC 模式。

    2023-07-30 10:32:04
    赞同 展开评论 打赏
  • 开启增量快照,可以在这个日志确认下执行用的sql,确认打开增量快照了,2.4.0版本的话,执行应该是无锁的。image.png ,此回答整理自钉群“Flink CDC 社区”

    2023-07-02 17:02:22
    赞同 展开评论 打赏

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

相关产品

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

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