从具有数组数据类型的雪花加载数据时解析时出错

时间:2021-02-03 09:24:41

标签: java jdbc jackson snowflake-cloud-data-platform

我正在尝试从雪花读取数据并将其加载到其他存储位置。我正在使用雪花 jdbc 驱动程序 3.12.9 读取数据和 jackson 库(2.10)来反序列化它。

在其中一个用例中,我使用具有数组数据类型的列。这是创建表语句:create table test_table (array1 ARRAY)。我正在通过以下命令将数据加载到表中。 insert into test_table (array1) select array_construct(1,2,3,null)。当我们对上述数据运行选择查询时,数组中的空值被转换为未定义。例如select array1 from test_table,我们得到的输出为 "[1, 2, 3, undefined]"

在使用 jackson 反序列化数据时,出现错误:Unrecognized token 'undefined': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false'),因为 undefined 不是有效的 json 令牌。

null 到 undefined 的转换仅在数组元素之一为 null 时发生,而在整个数组为 null 的情况下不会发生。

解决方案之一是在雪花端编写自定义函数并在查询数据时使用它,但我们必须在所有客户端添加此函数,我们不希望将其添加为阻止程序。

>

有没有更好的方法来解决这个问题。任何建议,帮助都会非常有帮助。

0 个答案:

没有答案