json字段XXXX的值类型显示为YYYY,但表格列的已发现数据类型为ZZZZ

时间:2015-09-29 12:21:09

标签: cloudant dashdb cloudant-sdp

当使用SDP从Cloudant中提取数据并填充dashDB时,我偶尔会在dashdb" XXXX_OVERFLOW"中看到错误消息。表格如下:

EXCEPTION
The value type for json field XXXX was presented as java.lang.String 
but the discovered data type of the table's column was Boolean. The document   
could not be imported into the created database.

_ID
mydocument-12345

问题

  1. 为什么我收到此错误?
  2. 我该如何解决?

1 个答案:

答案 0 :(得分:2)

SDP必须决定 Cloudant文档中存在的每种JSON数据类型的匹配SQL数据类型。与SQL数据类型系统相比,JSON数据类型系统(参见http://json.org)更通用(参见例如DB2 LUW 9.8 data types)。因此,SDP算法采用一些启发式方法来计算通用JSON类型的最佳匹配SQL数据类型。

例如,JSON 数字会根据跨越的资源值映射到SQL 浮点或SQL 整数。文件样本。

仅使用“TRUE / FALSE”的JSON 字符串将创建一个SQL 布尔作为结果。

  1. 您收到此错误是因为在发现的示例之外找到的某些值无法转换为使用的SQL数据类型。

  2. 解决此问题的唯一方法是

    • 修改单个文档并修改有问题的值或
    • 将架构发现期间使用的样​​本大小增加到无限more info