【问题标题】:Snowflake How to get Records failed in Copy command雪花如何在复制命令中获取记录失败
【发布时间】:2021-02-06 20:32:14
【问题描述】:

是否可以在 Snowflake 中将复制命令失败的记录从内部阶段获取到雪花表?

我试图在执行复制命令期间将错误记录加载到错误表中。使用的复制命令:

从 (select $1,$2,$3,56 from @%table) 复制到表 ( col1, col2,col3,col4) ON_ERROR=CONTINUE

【问题讨论】:

  • 您好,您找到解决方案了吗?

标签: snowflake-schema snowflake-task snowflake-cloud-data-platform


【解决方案1】:

要获取所有不良记录,您可以使用 VALIDATION_MODE = 'RETURN ERRORS' 运行副本。然后在插入语句中使用验证中的 RESULT_SCAN。

【讨论】:

  • 如果我的 Copy 命令有列名,我认为这不起作用,我使用 Copy into table ( col1, col2,col3,col4) from ( select $1,$2,$3,56 from @%表)ON_ERROR=CONTINUE。
【解决方案2】:

如果您的一列是唯一的(即 col1),也许您可​​以将表中的行与阶段中的行进行比较:

select $1 from @%table
MINUS 
select col1 from table;

【讨论】:

  • select $1 from @%table 不起作用,因为我的表的列数与处于阶段的文件不同。它抛出错误文件中的列数与表不匹配。而且我可能并不总是拥有独特的价值观,所以不打算使用这个解决方案。
【解决方案3】:

请在复制命令后检查下面的选择语句

select rejected_record  from table(validate(test_copy , job_id => '_last')) ;

【讨论】:

    猜你喜欢
    • 2021-01-02
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-22
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多