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

Flink CDC中File is not a valid field name 遇到过没?

Flink CDC中File is not a valid field name 遇到过没?Oracle同步,全改成大写了还是有问题,任务同步一段时间就会报错

展开
收起
cuicuicuic 2023-12-10 20:20:27 123 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在Flink CDC中,如果遇到"File is not a valid field name"的错误,通常是在Flink CDC中,如果遇到"File is not a valid field name"的错误,通常是因为源表中存在一个名为"file"的字段,而该字段在目标系统中不存在或名称不同。

    对于Oracle同步的情况,即使将所有字段名都改成大写,仍然可能会出现问题。这是因为Oracle数据库中的表结构和字段名是区分大小写的,因此需要确保源表和目标表中的字段名完全一致,包括大小写。

    为了解决这个问题,您可以尝试以下步骤:

    1. 检查源表和目标表中的字段名是否完全一致,包括大小写。可以使用SQL查询语句来查看表结构,例如:

      SELECT column_name, data_type FROM user_tab_columns WHERE table_name = 'source_table';
      SELECT column_name, data_type FROM user_tab_columns WHERE table_name = 'target_table';
      
    2. 如果发现字段名不一致,可以修改目标表的结构,将字段名改为与源表一致的名称和大小写。可以使用ALTER TABLE语句来修改表结构,例如:

      ALTER TABLE target_table RENAME COLUMN old_field_name TO new_field_name;
      
    3. 修改Flink CDC作业的配置,确保源表和目标表中的字段名一致。可以在Flink CDC作业的配置文件中指定源表和目标表的字段映射关系,例如:

      "source": {
        "topic": "oracle-source-topic",
        "username": "your-username",
        "password": "your-password",
        "connection-url": "jdbc:oracle:thin:@localhost:1521:orcl",
        "table-name": "source_table",
        "schema-registry-url": "http://localhost:8081",
        "key-converter": "io.debezium.relational.history.FileDatabaseHistory.KeyConverter",
        "value-converter": "io.debezium.relational.history.FileDatabaseHistory.ValueConverter",
        "column-mappings": [
          { "source": "old_field_name", "target": "new_field_name" }
        ]
      },
      "sink": {
        "topic": "oracle-sink-topic",
        "username": "your-username",
        "password": "your-password",
        "connection-url": "jdbc:oracle:thin:@localhost:1521:orcl",
        "table-name": "target_table",
        "schema-registry-url": "http://localhost:8081",
        "key-converter": "io.debezium.relational.history.FileDatabaseHistory.KeyConverter",
        "value-converter": "io.debezium.relational.history.FileDatabaseHistory.ValueConverter",
        "column-mappings": [
          { "source": "new_field_name", "target": "new_field_name" }
        ]
      }
      
    2023-12-11 17:07:07
    赞同 展开评论 打赏
  • 这个之前我们也遇到过,我们推测试在数据获取时可能表结构有所改变,目前需要等3.0版本出来才能增加上表结构变化不出错的适配,可以重启试试看,我们运行了几天没在遇到过这个错误了 ,此回答整理自钉群“Flink CDC 社区”

    2023-12-11 11:22:26
    赞同 展开评论 打赏

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

相关产品

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

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