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

大佬,问个Flink CDC问题,你们对于oracle FLOAT NUMBER BLOB?类型

大佬,问个Flink CDC问题,你们对于oracle FLOAT NUMBER BLOB?类型 如何处理的,number类型 cdc 拿出来不对呀image.png
这是cdc 拿出来的 number类型

展开
收起
真的很搞笑 2023-07-13 12:57:07 165 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在 Flink CDC 中,Oracle 的 FLOAT 和 NUMBER 类型可以被映射为 Flink 的 Double 类型,而 BLOB 类型可以被映射为 Flink 的 Bytes 类型。具体的类型映射关系如下:

    Oracle FLOAT 和 NUMBER 类型映射为 Flink 的 Double 类型;
    Oracle BLOB 类型映射为 Flink 的 Bytes 类型。
    需要注意的是,Oracle 的 FLOAT 和 NUMBER 类型在映射为 Flink 的 Double 类型时,可能会存在精度损失的问题。这是由于 Oracle FLOAT 和 NUMBER 类型的精度和范围较大,而 Flink 的 Double 类型的精度和范围有限,可能无法完全符合 Oracle FLOAT 和 NUMBER 类型的要求。因此,在使用 Flink CDC 进行数据同步时,需要注意精度损失的问题,以便保证数据的准确性。

    另外,需要注意的是,Oracle 的 BLOB 类型通常用于存储二进制数据,例如图片、音频、视频等。在使用 Flink CDC 进行数据同步时,需要根据具体的业务需求和场景,对 BLOB 数据进行适当的处理和转换

    2023-07-29 23:10:59
    赞同 展开评论 打赏
  • 对于 Oracle 数据库中的 FLOAT、NUMBER 和 BLOB 类型,Flink CDC 有以下处理方式:

    1. FLOAT 类型:Flink CDC 将 FLOAT 类型映射为相应的数据类型。一般情况下,FLOAT 类型会被映射为 Flink 中的 Double 类型。

    2. NUMBER 类型:Flink CDC 会将 NUMBER 类型映射为 Decimal 类型。Decimal 是 Flink 中表示精确数值的数据类型,可以用来存储和计算高精度的数值。

    3. BLOB 类型:BLOB 类型是二进制大对象,Flink CDC 在读取 BLOB 类型时,会将其映射为字节数组(byte[])。您可以自定义代码来处理这些字节数组,并根据具体需求进行转换或解析。

    需要注意的是,以上处理方式是基于 Flink CDC 的默认行为。但是如果您的 Oracle 数据库中有特殊的配置或者使用了自定义类型,可能需要进行额外的配置和处理才能正确读取数据。

    如果您在使用 Flink CDC 过程中遇到了问题,建议您先检查数据源的配置和表结构是否与 Flink CDC 预期一致。同时,您还可以通过查看日志文件、调试代码或咨询 Flink CDC 社区来获取更详细的帮助和指导。

    2023-07-29 21:58:52
    赞同 展开评论 打赏
  • 我们是用decimal,我们数值型只有number,我对数发现没啥问题,此回答整理自钉群“Flink CDC 社区”

    2023-07-13 15:56:29
    赞同 展开评论 打赏

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

相关产品

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

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

    相关镜像