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

7月3日Snowflake故障后,CSV导入JSON解析报错求助

CSV导入Snowflake出现JSON解析错误(7月3日故障后突发)

问题背景

25条从S3桶导入CSV到Snowflake的数据管道,已稳定运行3年,但7月3日Snowflake故障后,开始出现JSON解析错误,无法正常导入。

错误信息

Error parsing JSON: 0xB10xBB_0xA0_id0xA0667bcf7b2aec09997408c3890xA0activeɠapplications0xAD0x820xB10xA0custom0xB1M0xA0applicationjnaccoffurltx��application File 'file_name_and_path.csv.gz', line 2, character 0 Row 1, column "DATA"["SRC":3] If you would like to continue loading when an error is encountered, use other values such as 'SKIP_FILE' or 'CONTINUE' for the ON_ERROR option. For more information on loading options, please run 'info loading_data' in a SQL client.

使用的COPY INTO命令

COPY INTO MY_TABLE
FROM 's3://<stage>'
FILE_FORMAT = (
    TYPE = CSV 
    FIELD_DELIMITER = ',' 
    NULL_IF = ('\\N')
    FIELD_OPTIONALLY_ENCLOSED_BY = '"'
    SKIP_HEADER = 1
    ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE
    COMPRESSION = GZIP
)
credentials=(aws_key_id='***************' aws_secret_key='************************')

已尝试的操作

  • 验证CSV文件的内容和结构完整性
  • 确认S3桶及文件路径正确
  • 确认AWS凭证有效且具备必要权限
  • 查阅Snowflake文档,确认COPY INTO语法及文件格式选项无变更
  • 尝试使用ON_ERROR='SKIP_FILE'和ON_ERROR='CONTINUE'参数绕过错误,但问题依旧

期望结果

CSV文件能像7月3日故障前一样成功导入Snowflake表,数据按指定文件格式正确加载,无JSON解析错误。


可能的解决方向

1. 检查目标表字段类型是否变更

错误提示指向column "DATA"["SRC":3],确认该字段是否被意外修改为JSON类型。如果CSV对应列的内容并非合法JSON,而表字段类型为JSON,会直接触发解析错误。

2. 指定文件编码解决乱码问题

错误信息中的乱码(如0xB10xBB、ɠ)提示编码不匹配,在文件格式中明确指定编码(比如UTF8,或文件实际使用的编码):

FILE_FORMAT = (
    TYPE = CSV 
    FIELD_DELIMITER = ',' 
    NULL_IF = ('\\N')
    FIELD_OPTIONALLY_ENCLOSED_BY = '"'
    SKIP_HEADER = 1
    ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE
    COMPRESSION = GZIP
    ENCODING = 'UTF8' -- 替换为文件实际编码
)

3. 验证单条数据的JSON合法性

提取报错行的DATA字段原始内容,用Snowflake函数测试是否能正常解析:

SELECT TRY_PARSE_JSON('<该字段原始内容>');

如果返回NULL,说明内容本身不是合法JSON,需要检查数据生成端是否在故障后输出了异常格式的数据。

4. 排查文件格式的隐性变更

如果使用命名文件格式而非内联定义,确认命名格式未被修改;内联格式则检查Snowflake是否在故障后调整了默认参数(比如解析逻辑的隐性更新)。

5. 用VALIDATION_MODE获取详细错误

在COPY命令中添加验证模式,获取更精准的错误行和内容:

COPY INTO MY_TABLE
FROM 's3://<stage>'
FILE_FORMAT = (
    TYPE = CSV 
    FIELD_DELIMITER = ',' 
    NULL_IF = ('\\N')
    FIELD_OPTIONALLY_ENCLOSED_BY = '"'
    SKIP_HEADER = 1
    ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE
    COMPRESSION = GZIP
)
credentials=(aws_key_id='***************' aws_secret_key='************************')
VALIDATION_MODE = 'RETURN_ERRORS';

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 03:52:34