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

flink oracle cdc 增量阶段 可能会丢数据吗, 没有信息?

flink oracle cdc 增量阶段 可能会丢数据吗, 没有信息?

展开
收起
真的很搞笑 2023-09-20 13:23:44 263 0
1 条回答
写回答
取消 提交回答
  • Flink Oracle CDC 的增量阶段不会丢数据。Oracle CDC 会使用 SELECT SCN FROM V$TRANSACTION V WHERE V$TRANSACTION.XID IS NULL 查询获取当前事务的 SCN,然后将这个 SCN 作为增量阶段的起始 SCN。当 Oracle 数据库中发生数据变更时,Oracle CDC 会将变更数据提交到 Kafka,并将变更数据对应的 SCN 也提交到 Kafka。那么,只要 Flink Oracle CDC 的增量阶段的起始 SCN 大于等于 Kafka 中提交的第一个 SCN,那么 Flink Oracle CDC 就不会丢数据。

    如果 Flink Oracle CDC 的增量阶段的起始 SCN 小于 Kafka 中提交的第一个 SCN,那么 Flink Oracle CDC 可能会丢数据。因为 Flink Oracle CDC 在增量阶段不会读取 Kafka 中之前提交的数据。

    为了避免数据丢失,可以使用以下方法:

    在 Flink Oracle CDC 的任务启动前,将 Oracle 数据库中的所有数据提交到 Kafka。
    在 Flink Oracle CDC 的任务中设置 useChangeStream 为 true。当设置为 true 时,Flink Oracle CDC 会在增量阶段读取 Kafka 中之前提交的数据。
    在 Flink Oracle CDC 的任务中设置 resumeFromChangeStreamOffset 属性。该属性指定从 Kafka 中哪一个 SCN 开始读取数据。如果指定的 SCN 大于等于 Kafka 中提交的第一个 SCN,那么 Flink Oracle CDC 就不会丢数据。
    如果您有任何其他问题,可以联系 Flink 社区寻求帮助。

    2023-10-19 09:43:11
    赞同 展开评论 打赏

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

相关产品

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

    更多
    PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
    PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
    Oracle云上最佳实践 立即下载

    相关镜像