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

Snowflake使用on_error=continue导入后如何查看未插入行及错误原因

查看Snowflake COPY INTO任务的错误详情

当你使用on_error = 'continue'执行数据导入后,可通过以下几种方式获取未插入行的错误信息:

1. 查看COPY命令执行结果详情

执行COPY语句后,Snowflake会返回任务执行统计,其中包含错误记录数和错误文件存储路径:

  • 在Snowflake Web UI中找到该COPY任务的执行历史,展开详情即可看到相关信息,错误文件通常存放在你指定的S3路径下的error子目录,或Snowflake默认的错误存储位置。

2. 查询COPY_HISTORY系统视图

通过INFORMATION_SCHEMA.COPY_HISTORY视图可以直接查询导入任务的错误明细,执行以下SQL:

SELECT 
    FILE_NAME,
    ROW_NUMBER,
    ERROR_CODE,
    ERROR_MESSAGE
FROM TABLE(INFORMATION_SCHEMA.COPY_HISTORY(
    TABLE_NAME => 'sampletable',
    START_TIME => DATEADD(HOUR, -2, CURRENT_TIMESTAMP()) -- 根据实际情况调整时间范围
))
WHERE ERROR_CODE IS NOT NULL;

该查询会返回每个错误行对应的文件名、行号、错误码及具体错误描述。

3. 直接访问错误文件

COPY任务生成的错误文件多为CSV格式,你可以直接访问对应的存储路径(例如S3的s3://test/test/error/目录),下载文件后查看未插入的行数据及错误说明。

另外,若想提前验证数据问题而不实际导入,可使用VALIDATION_MODE = 'RETURN_ERRORS'参数执行COPY命令:

copy into "sampletable"
  from s3://test/test/ credentials=(aws_key_id='xxxx' aws_secret_key='yyyyy')
  file_format = (type = csv field_delimiter = '|' skip_header = 1)
  validation_mode = 'RETURN_ERRORS';

此命令会返回所有不符合导入要求的行及错误原因,但不会将数据插入目标表。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 18:15:39