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

Flink CDC中Oracle source表里面一共2条数据,怎么提示有NULL 写进去呢?

Flink CDC中Oracle source表里面一共2条数据,怎么提示有NULL 写进去呢?image.png
image.png

展开
收起
真的很搞笑 2023-12-01 10:54:59 107 0
3 条回答
写回答
取消 提交回答
  • 在Flink CDC中,Oracle source表里面一共2条数据,但是提示有NULL写进去,可能是因为在读取Oracle表中的数据时,某些字段的值为NULL。

    要解决这个问题,可以在Flink SQL中使用IS NOT NULL条件过滤掉这些NULL值。例如:

    SELECT * FROM oracle_source_table WHERE column1 IS NOT NULL AND column2 IS NOT NULL;
    

    这样就可以只读取那些非NULL值的数据了。

    2023-12-02 15:57:05
    赞同 展开评论 打赏
  • 如果在 Flink CDC 的 Oracle Source 表中只有两条数据,并且您收到了有关写入 NULL 值的提示,可能是由于以下几种情况之一:

    1. 数据源变更:有可能在 Flink CDC 抽取数据期间,数据源(Oracle 表)发生了变更,导致出现了 NULL 值写入。这可能是由于数据库表结构或数据在 Flink CDC 开始运行后被修改所致。

    2. 缺失字段:检查 Flink CDC 的配置,确保已正确设置 Oracle Source 表的字段映射。如果某个字段没有正确映射或配置错误,可能会导致 NULL 值写入。

    3. 数据解析问题:Flink CDC 使用数据库日志(如 Oracle 的 redo log)来捕获数据更改事件。在解析过程中,如果存在数据不一致、类型转换问题或解析错误,可能会导致 NULL 值写入。

    解决这个问题的步骤如下:

    1. 检查数据源变更:确认在 Flink CDC 运行期间是否有对 Oracle 表结构或数据的更改。如果有,请相应地更新 Flink CDC 的配置以反映最新的表结构和数据。

    2. 验证字段映射:仔细检查 Flink CDC 的配置,确保每个字段都正确映射到 Oracle Source 表的相应列。确保映射的字段类型和精度与实际表的定义相匹配。

    3. 日志分析和调试:查看 Flink CDC 和 Oracle 数据库的日志文件,以便了解更多关于 NULL 值写入的详细信息。日志文件可能会提供有关数据解析错误、类型转换问题或其他相关异常的线索。

    4. 更新 Flink 版本:如果您使用的是旧版本的 Flink CDC,尝试升级到最新版本,以获取修复程序和改进的功能。某些版本的 Flink 可能已经解决了一些与 Oracle Source 相关的问题。

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

    根据您提供的图片内容,Flink CDC中Oracle source表里面一共2条数据,但是其中一条数据的id字段是NULL。这个问题可能是由于Flink CDC在写入数据时,发现某个字段的值为NULL,但是这个字段的值应该是非NULL的。为了解决这个问题,您可以设置job configuration 'table.exec.sink.not-null-enforcer'='DROP',这样Flink CDC在写入数据时,如果发现某个字段的值为NULL,就会自动忽略这个字段,而不会抛出异常。

    2023-12-01 17:55:29
    赞同 展开评论 打赏

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

相关产品

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

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