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

Flink CDC中oralce cdc必须要在库级别开启ALTER DATABASE ADD 吗?

Flink CDC中oralce cdc必须要在库级别开启ALTER DATABASE ADD SUPPLEMENTAL LOG DATA吗?不能只执行ALTER TABLE inventory.customers ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;这个语句就可以吗?

展开
收起
真的很搞笑 2023-12-03 19:04:58 135 0
3 条回答
写回答
取消 提交回答
  • 在使用Flink CDC连接Oracle数据库进行数据变更捕获时,仅仅针对单个表执行ALTER TABLE ... ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;是不够的。为了能够完整捕获到数据库中所有相关表的变更,通常需要在数据库级别开启补充日志(Supplemental Logging),以确保事务的一致性和完整性。

    具体来说,对于大多数CDC场景,确实需要首先在库级别启用补充日志:

    ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
    

    然后,对需要进行CDC的每个表进一步细化配置,以包含足够的补充日志信息以便识别出发生变化的列:

    ALTER TABLE inventory.customers ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    

    这样,不仅可以捕获到行级别的变化,还能追踪到具体哪些列发生了变化,这对于下游的数据同步和处理至关重要。

    2023-12-30 12:57:57
    赞同 展开评论 打赏
  • 在Flink CDC中,使用Oracle数据库时,要实现捕获表的变化,需要在数据库级别开启ALTER DATABASE ADD SUPPLEMENTAL LOG DATA,而不仅仅是在表级别执行ALTER TABLE语句。

    在Oracle数据库中,使用ALTER DATABASE ADD SUPPLEMENTAL LOG DATA语句可以在数据库级别启用补充日志数据(Supplemental Log Data),以支持闪回查询和事务一致性捕获等功能。这是启用Flink CDC捕获表变化所必需的。

    执行ALTER TABLE语句只能为特定的表添加补充日志数据,并不能在数据库级别启用补充日志数据。因此,要实现Flink CDC在Oracle数据库中的全量数据捕获,需要在数据库级别执行ALTER DATABASE ADD SUPPLEMENTAL LOG DATA语句。

    2023-12-04 17:11:47
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink CDC中,Oracle CDC需要使用ALTER DATABASE ADD SUPPLEMENTAL LOG DATA语句来开启日志数据。这个语句会在整个数据库级别添加补充日志数据,而不仅仅是在特定的表上。

    如果你只想在特定的表上添加补充日志数据,可以使用ALTER TABLE语句,如你提到的:

    ALTER TABLE inventory.customers ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
    

    但是,这只会为inventory.customers表添加补充日志数据,而不是整个数据库。因此,如果你想在Oracle CDC中使用Flink CDC,你需要确保在整个数据库级别开启补充日志数据。

    2023-12-03 20:23:04
    赞同 展开评论 打赏

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

相关产品

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

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