Snowflake Как получить записи с ошибкой в команде копирования

#snowflake-schema #snowflake-task #snowflake-cloud-data-platform

#snowflake-схема #snowflake-задача #snowflake-cloud-data-platform

Вопрос:

возможно ли получить записи, которые не удалось скопировать во время команды копирования в Snowflake, с внутренней сцены в таблицу snowflake?

Я пытаюсь загрузить повторные записи ошибок в таблицу ошибок во время выполнения команды копирования. Используется команда копирования:

Скопируйте в таблицу (col1, col2, col3, col4) из (выберите $ 1, $ 2, $ 3,56 из @%таблицы) ON_ERROR= ПРОДОЛЖИТЬ

Комментарии:

1. Привет, вы смогли найти решение ..?

Ответ №1:

Чтобы получить все плохие записи, вы можете запустить копию с VALIDATION_MODE = ‘ВОЗВРАЩАТЬ ОШИБКИ’ . Затем используйте RESULT_SCAN из проверки в инструкции insert.

Комментарии:

1. Я думаю, что это не сработает, если в моей команде копирования есть имена столбцов, я использую Copy into table (col1, col2, col3, col4) from (выберите $ 1, $ 2, $ 3,56 из @%table) ON_ERROR=CONTINUE .

Ответ №2:

Если один из ваших столбцов уникален (например, col1), возможно, вы можете сравнить строки в таблице со строками на этапе:

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

Комментарии:

1. выбрать $ 1 из таблицы @% не работает, потому что в моей таблице разное количество столбцов, чем в файле, который находится на стадии. выдает ошибку количество столбцов в файле не совпадает с таблицей. И у меня может не всегда быть уникальных значений, поэтому я не планирую использовать это решение.

Ответ №3:

Пожалуйста, проверьте ниже инструкцию select после команды копирования

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