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

Flink-1.17.0,CDC-2.4.1下Oracle无法读取CLOB类型的字段应该怎么处理呢?

Flink-1.17.0,CDC-2.4.1下Oracle无法读取CLOB类型的字段应该怎么处理呢? Flink建表对应的是STRING类型?

展开
收起
真的很搞笑 2023-08-01 12:52:39 155 0
1 条回答
写回答
取消 提交回答
  • Flink-1.17.0,CDC-2.4.1下Oracle无法读取CLOB类型的字段,可以使用以下方法解决:

    修改 Debezium MySQL 连接配置
    Debezium MySQL 连接配置中有一个 columnBlacklist 选项,可以用于排除某些列。如果我们将 columnBlacklist 设置为 "CLOB",那么 Debezium 就会将所有 CLOB 类型的列排除在外,从而解决无法读取 CLOB 类型的问题。

    使用 debezium-connector-oracle-shaded
    Debezium 提供了一个 debezium-connector-oracle-shaded 连接器,它可以直接读取 Oracle CLOB 类型的字段。如果我们使用 debezium-connector-oracle-shaded,那么就可以直接读取 CLOB 类型的字段,而不需要修改 Debezium MySQL 连接配置。

    使用 Flink CDC 的反序列化函数
    Flink CDC 提供了一个 org.apache.flink.connector.cdc.oracle.ClobToJsonDeserializer 反序列化函数,它可以将 Oracle CLOB 类型的字段反序列化成 JSON 字符串。如果我们使用 org.apache.flink.connector.cdc.oracle.ClobToJsonDeserializer,那么就可以在 Flink 程序中使用 JSON 字符串来处理 CLOB 类型的字段。

    以上 3 种方法都是可以解决 Flink-1.17.0,CDC-2.4.1下Oracle无法读取CLOB类型的字段的问题。具体使用哪一种方法,需要根据实际情况来决定。

    2023-09-25 18:06:15
    赞同 展开评论 打赏

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

相关产品

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

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