为什么Google Cloud Storage会为我的数据类型抛出不受支持的精度和小数位数值?

时间:2018-08-08 13:20:55

标签: google-cloud-platform google-bigquery parquet

我目前正在尝试将Google云端存储中的实木复合地板文件上传到BigQuery中的表格中。我不断收到错误消息“ FIXED_LEN_BYTE_ARRAY(DECIMAL(35,2))”类型的字段“ X”的错误“不支持的精度和小数位数'(35,2)”。最大支持的精度和小数位数为'(38,9) 。”

在我看来(35,2)应该符合(38,9)的精度和刻度要求。为什么Google Cloud似乎不允许我的实木复合地板文件中的此数据类型?有任何解决方法吗?

1 个答案:

答案 0 :(得分:2)

由于十进制实木复合地板类型支持的最大位数个最大数字,所以抛出此错误消息;但是,在您的情况下,十进制数据的精度为35,小数位数为2,这意味着整数位数为33。基于此,可用的解决方法是修改精度和小数位值以与实木复合地板文件匹配要求。

使用这些实木复合地板类型字段时,您可以查看Decimal annotation官方文档,其中包含以下说明:

  带有 DECIMAL 批注的

实木复合地板类型可能最多具有精度   38(数字的总数),最大为9(数字的位数)   小数点右边)。整数位数,即   精度减去比例尺,最多为29。例如, DECIMAL(38,   9)受支持,因为精度为38,刻度为9。   在此示例中,整数位数为29。 DECIMAL(38,5)为   不支持,因为它的精度为38,标度为5。   在此示例中,整数位数为33