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

如何使用bq load在BigQuery中存储超过9位小数的高精度数值

问题解答

1. 高精度数值无法存储为STRING类型的原因

BigQuery 执行 bq load 导入JSON数据时默认开启严格类型匹配规则,不会对JSON源数据中的原生数据类型做隐式转换。你源文件中的ShapeSTArea是原生数值类型(未被双引号包裹为字符串格式),如果目标字段指定为STRING类型,导入逻辑会直接拒绝数值到字符串的强制转换,因此抛出转换失败的报错。

2. 仅用bq load存储高精度数值的方案

直接将该字段的schema类型修改为BIGNUMERIC即可解决问题:

  • BigQuery的BIGNUMERIC类型支持最大76位精度,小数位最高支持38位,完全可以覆盖你示例中10位小数的存储需求,不会出现精度丢失,也无需借助Dataflow或其他外部脚本工具处理。
  • 若后续有字符串格式使用需求,可在导入完成后直接在BigQuery中执行SQL,通过CAST(字段名 AS STRING)的方式完成转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 01:06:09