You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Snowflake管道刷新致负载失败,内部Stage查询GZIP解压报错求助

Snowflake内部Stage读取GZIP压缩JSON文件报错的解决方法

问题现象

执行管道刷新时加载失败,查询内部Stage时出现两种报错:

  • 设置文件格式压缩为GZIP,报错:

Invalid data encountered during decompression for file: compression type used: 'GZIP', cause: 'data error'.

  • 设置压缩为None,报错:

invalid character outside of a string: '\37' File line 1, character 1 Row 0, column $1

已在PUT命令中指定gzip => true。

排查与解决步骤

  • 验证文件有效性
    用GET命令将Stage中的文件下载到本地,使用gzip解压工具(如gzip -d或7-Zip)尝试解压:

    GET @your_internal_stage/目标文件名.json.gz file:///本地存储路径/;
    

    若解压失败,说明上传过程中压缩异常,需重新上传文件。

  • 检查文件格式配置
    确保JSON文件格式的压缩设置与实际文件匹配,同时根据JSON结构调整其他参数:

    CREATE OR REPLACE FILE FORMAT json_gzip_format
    TYPE = JSON
    COMPRESSION = 'GZIP'
    STRIP_OUTER_ARRAY = TRUE; -- 按需开启,若JSON为数组结构
    
  • 核对PUT命令执行逻辑
    查看PUT命令的执行日志,确认上传过程无异常:

    SELECT * FROM TABLE(INFORMATION_SCHEMA.PUT_RESULT_SCAN(LAST_QUERY_ID()));
    

    避免AUTO_COMPRESS与手动指定gzip => true冲突,统一使用一种压缩方式:

    -- 方式1:自动压缩源文件
    PUT file:///本地文件路径/源文件.json @your_internal_stage AUTO_COMPRESS = TRUE;
    -- 方式2:上传已压缩好的文件
    PUT file:///本地文件路径/源文件.json.gz @your_internal_stage COMPRESSION = GZIP;
    
  • 使用指定文件格式查询Stage
    直接关联正确的文件格式查询,避免手动参数错误:

    SELECT $1 FROM @your_internal_stage (FILE_FORMAT => 'json_gzip_format');
    
  • 校验JSON文件内容
    本地解压后,用JSON校验工具(如jq)检查文件语法是否合法:

    jq . 解压后的文件名.json
    

    若JSON本身存在语法错误,需修正源文件后重新上传。

内容的提问来源于stack exchange,提问作者Mythri P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:01:16