You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

导入JSON至Redshift Super类型列后数值变更的原因咨询

问题原因及事实依据
  • 核心原因:Redshift Super类型采用IEEE 754双精度浮点数存储JSON数值,你用到的1.0000000123456789超出了双精度的精确表示范围,被舍入到最近的可表示值
  • 具体细节:
    1. IEEE 754双精度浮点数的尾数为52位二进制,对应十进制的有效数字上限约为17位。1.0000000123456789的有效数字从第一个非零数字算起共有18位,无法被双精度浮点数精确表示。
    2. 这个十进制数转换为双精度二进制时,会自动舍入到最接近的可表示值,也就是1.0000000123456787,这就是查询结果中数值末尾变化的原因。
  • Redshift的处理逻辑:
    Super类型解析JSON插入时,会把数值型JSON值转成双精度浮点数存储,不会保留原始的十进制字符串形式。查询时再将存储的双精度值转回十进制字符串,因此返回的是舍入后的结果,而非原始JSON里的数值。

内容的提问来源于stack exchange,提问作者ezail

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 05:37:34