=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 是的,Flink CDC 支持同步无主键的 Oracle 表。具体来说:

    – Flink CDC 可以监听 Oracle 的 redo log(相当于 binlog),获取数据变更内容。

    – Oracle 的 redo log 记录了所有 DML 操作,包括对无主键表的变更。

    – Flink CDC 不需要依赖表的主键,它只需读取 redo log 中的 DML 事件即可变更数据。

    因此,即使表没有主键,Flink CDC 仍可以正常工作。它本身不要求表必须有主键,只需要 Oracle 的 redo log 和表结构就可以工作。redo log 记录了所有表的 DML 事件,包括无主键表,所以 Flink CDC 完全可以同步无主键表。

    需要注意的是,如果下游系统需要依赖主键(如 KeyBy),则需要通过其他字段构建主键。但如果下游系统不需要主键,Flink CDC 可以直接同步无主键表,没有影响。

    希望这些信息能够回答你的问题。如果你的 Oracle 表确实没有任何可以用作主键的字段,并且下游系统确实需要依赖主键,可以考虑与我进一步讨论可能的解决方案。

  2. Flink CDC原生支持从Oracle读取变更日志,同步无主键表也没有问题。
    具体来说:
    Flink CDC可以监听Oracle的 redo log(相当于binlog),获取数据变更内容。
    Oracle的 redo log记录所有 DML 操作,包括对无主键表的变更。
    Flink CDC不需要依赖表的主键,它只需读取 redo log 中的 DML 事件即可变更数据。
    也就是说,即使表没有主键,Flink CDC也能正常工作。
    所以,总的来说:
    Flink CDC本身不要求表必须有主键
    它只需要 Oracle 的 redo log 和表结构就可以工作
    redo log 记录了所有表的 DML 事件,包括无主键表
    所以 Flink CDC 完全可以同步无主键表
    但需要注意的是:
    若下游系统需要依赖主键(如KeyBy),则需要通过其他字段构建主键。
    如果下游不需要主键,则 Flink CDC 可以直接同步无主键表,没有影响。
    希望上述信息能为你解答!如果您的Oracle表真的没有任何可以用作主键的字段,
    而又确实需要下游系统依赖主键,欢迎随时与我交流可能的解决方案。

  3. Flink CDC 是一款开源的变更数据捕获(Change Data Capture,简称 CDC)工具,它可以从主流数据库如 MySQL、PostgreSQL、mongodb、Oracle、SQL Server 等实时捕获增量数据变化。

    Flink CDC 具有全增量一体化、表结构变更自动同步以及分布式架构等特性,且支持并行读取和无锁读取数据。

    Oracle CDC 连接器支持捕获并记录 Oracle 数据库服务器中发生的行级变更,其原理是使用 Oracle 提供的 LogMiner 工具或者原生的 XStream API 从 Oracle 中获取变更数据,不要使用Oracle的SYS和SYSTEM用户做为CDC用户。因为这两个用户能够捕获到大量Oracle数据库内部的变更信息,对于业务数据来说是不必要的。Debezium会过滤掉这两个用户捕获到的变更内容。

    如果有主键的话会自动进行merge。 因为snapshot.mode是intial模式,要先做全量快照,需要用到主键,所以没有主键的话,导致无法同步,而是latest模式的话,不需要做,直接增量了。

    以上仅供参考。