ssis, обрабатывающие проверки и ошибки ссылочной целостности

#ssis

#ssis

Вопрос:

Как вы, ребята, обрабатываете проверки ссылочной целостности в SSIS для сопоставления таблиц. В настоящее время я выполняю поиск на ранней стадии процесса и перенаправляю несоответствия в таблицу ошибок. Это лучший способ? Я делал другие пакеты, в которых я проверял наличие ошибок при сбросе данных в таблицу, но, похоже, если вы используете fastload, то при возникновении ошибки перенаправляется весь пакет.

Есть ли лучший способ или я делаю это правильно?

Ответ №1:

Существует три способа проверки ссылочной целостности в SSIS:

  • в исходном запросе (если вы можете выполнить правильное объединение в исходном запросе)
  • использование некоторого компонента (поиск, объединение / слияние, задача сценария)
  • пусть получатель сообщает об ошибке

Как вы уже сказали, fastload destination перенаправляет весь пакет на вывод ошибки. Если вы ожидаете, что проблемы с ссылочной целостностью будут возникать редко, вы можете захотеть:

  1. перенаправить строки ошибок в другое место назначения в ту же таблицу, но задать для назначения запись пакетами по 1 строке
  2. затем перенаправьте строки ошибок из этого нового назначения в таблицу ошибок

Это должно работать нормально, если размер вашего целевого пакета не слишком велик, в противном случае это решение может быть медленным для вас. Кроме того, вы можете рассмотреть возможность отключения ограничений проверки или отключения внешних ключей перед вставкой и повторным включением внешних ключей после вставки.

И если вы предпочитаете использовать поиск / объединение и используете один и тот же поиск в нескольких потоках данных, рассмотрите возможность кэширования этих поисков.