gpt4 book ai didi

snowflake-cloud-data-platform - 如何从 Snowflake Stage 加载大型 JSON 文件?

转载 作者:行者123 更新时间:2023-12-05 05:00:13 34 4
gpt4 key购买 nike

我的公司正在从本地数据库迁移到数据仓库,因为目前 SQL Server 的负载太大了。我们研究了可以使用哪些云解决方案并决定使用 Snowflake。我们有时需要处理每个文件高达 300 MB 的非常繁重的压缩 JSON。我已经通读了文档,将阶段、文件格式和表创建为 (json_data variant)。我已经使用 SnowSQL CLI 加载了我的第一个 JSON 文件,它也有效。测试文件为 3.7 kb。尝试复制到 mytable 时出现此错误

Error parsing JSON: document is too large, max size 16777216 bytes

如何避免此错误,而不必在将文件上传到舞台之前拆分文件?数据由应用程序发送,因此我们必须每小时在上线时加载这些数据。

最佳答案

我假设错误“解析 JSON 时出错:文档太大,最大大小为 16777216 字节”是因为 snowflake 认为您的文件有一个 json 记录,实际上看起来不正确。

在 JSON 文件格式中,使用 STRIP_OUTER_ELEMENT = TRUE .. 这会将您的单个 JSON 文档数组转换为单独的 JSON 记录。

请尝试一下,看看是否适合您。


更新:

我已经对此进行了测试,它可以毫无问题地处理比最大大小 16777216 更大的单个文件。

步骤

--在工作表上

create or replace stage testdb.testschema.stage_java;

--关于SnowSQL

put file://C:/Users/sonij/OneDrive/Desktop/bigjson.json @STAGE_JAVA AUTO_COMPRESS=false SOURCE_COMPRESSION=NONE OVERWRITE=TRUE;

--在工作表上

create or replace file format bigjson_ff
type = json
COMPRESSION = none
STRIP_OUTER_ARRAY = true
ALLOW_DUPLICATE = TRUE;

select
parse_json($1)
from @stage_java/bigjson.json (file_format => 'bigjson_ff');

关于snowflake-cloud-data-platform - 如何从 Snowflake Stage 加载大型 JSON 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63159818/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com