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

flink cdc postgresql是不支持int8类型吗?

flink cdc postgresql是不支持int8类型吗?

展开
收起
十一0204 2023-08-09 10:01:56 56 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    Flink CDC连接Postgres时,目前不直接支持Postgres的int8数据类型。

    原因是:

    Flink内部主要使用Java基本数据类型,而Java没有原生的int8类型。

    Debezium作为CDC来源,它采用JSON序列化数据,也不支持将int8映射为特定JSON类型。

    但是可以通过一下方式解决:

    在Postgres中将int8列定义为int或者bigint。

    在Flink SQL的项目转换中,将int/bigint强转为int8输出。

    自定义用户定义函数(UDF)将int转换为int8。

    扩展Flink内部数据类型支持int8。

    使用自定义Deserialization函数映射为具体类。

    所以对int8类型支持并不完美,但通过类型转换或者自定义函数等方式可以解决大部分需求。

    主流做法是直接使用Postgres兼容类型如int或bigint代替。

    2023-08-10 23:17:16
    赞同 展开评论 打赏

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

相关产品

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

    更多
    云栖大会:开源 PolarDB 架构演进、关键技术与社区建设 立即下载
    2023云栖大会:和客户一起玩转PolarDB新特性 立即下载
    2023云栖大会:PolarDB for AI 立即下载