STRINE_OUTER_ARRAY支持什么JSON格式? [英] What JSON format does STRIP_OUTER_ARRAY support?
本文介绍了STRINE_OUTER_ARRAY支持什么JSON格式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个由包含多个记录的单个数组组成的文件。
{
"Client": [
{
"ClientNo": 1,
"ClientName": "Alpha",
"ClientBusiness": [
{
"BusinessNo": 1,
"IndustryCode": "12345"
},
{
"BusinessNo": 2,
"IndustryCode": "23456"
}
]
},
{
"ClientNo": 2,
"ClientName": "Bravo",
"ClientBusiness": [
{
"BusinessNo": 1,
"IndustryCode": "34567"
},
{
"BusinessNo": 2,
"IndustryCode": "45678"
}
]
}
]
}
我用以下代码加载它:
create or replace stage stage.test
url='azure://xxx/xxx'
credentials=(azure_sas_token='xxx');
create table if not exists stage.client (json_data variant not null);
copy into stage.client_test
from @stage.test/client_test.json
file_format = (type = 'JSON' strip_outer_array = true);
Snowflake将整个文件作为一行导入。
我希望使用Copy Into命令删除外部数组结构,并将记录加载到单独的表行中。
当我加载较大的文件时,我达到了变量的大小限制并收到错误Error parsing JSON: document is too large, max size 16777216 bytes
。
推荐答案
如果您可以将文件导入到Snowflake中的单行中,则可以在"客户端"字段上使用"横向展平"来为数组中的每个元素生成一行。
这里有一篇关于横向和扁平的博客文章(或者你可以在雪花文档中查找它们): https://support.snowflake.net/s/article/How-To-Lateral-Join-Tutorial
如果文件的格式如指定的那样是具有单个属性的单个对象,该对象包含一个包含500MB元素的数组,那么导入它可能仍然有效--如果这样做有效,那么横向平面化正是您想要的。但这种形式对于数据处理来说并不是特别好。如果需要,您可能希望使用某些文本处理脚本来处理数据。这篇关于STRINE_OUTER_ARRAY支持什么JSON格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文