Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
День добрый!
Нужно создать пакет, который дабавляет новые данные из таблизы А в таблицу Б, или делает апдейт, если данные с определенным ключем уже существуют.
В таблице Б много внешних ключей, возможен вариант, что из-за этого в А будут данные, которые не смогут перейти в Б и пакет упадет. Можно ли сделать средствами SSIS так, чтоб "неверные" данные не валили пакет, а копировались в таблицу C, a только логически верные в Б?

Спасибо огромное!
29 май 12, 09:53    [12629707]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
да, можно.
в Data Destination в пункте error output выставляете Redirect row, и поток ошибок (красная стрелка ) назначаете в отдельный Destination.
29 май 12, 11:17    [12630268]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
Кот Матроскин,

Огромное спасибо!
29 май 12, 11:23    [12630313]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
А как быть в случае с UPDATE?
Те данные, что нельзя изменить- тоже нужно "отложить"
29 май 12, 11:35    [12630410]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
abrashka,

Попробовал с Redirect row в Data Destination, в этом случае в таблицу с ошибочными данными уходят и нужные и ненужные данные,
например есть две таблицы, Source, Destination и Errors
в ксждой есть по одному полю INT, в Destination он является Primary Key.

Скажем в таблице Source есть сначения 3,7,9, а в Destination 1,2,3,4,5
Нужно из Source перенести данные в Destination, хотелось бы, чтоб 7 и 9 таки да ушли в Destination и только 3 в Errors, но если я делаю Redirect row, то даже "правильные" значения 7 и 9 уходят в Errors, а не в Destination.

Я что-то делаю не так или так и задумано?


Спасибо!
29 май 12, 11:57    [12630611]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Нет, должно работать так, как Вы и хотите - в таблицу ошибок "падают" только ошибочные
записи.
отчего-то вставка 7 и 9 тоже вызывает ошибку у Вас.
Режим fast load в Destination - отключен?
29 май 12, 12:16    [12630809]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
Кот Матроскин,

fast load не трогал, все по умолчанию

Нашел несколько параметров fast load, где должно быть отключено?
Сейчас:
FastLoadKeepIdentity: False
FastLoadKeepNulls: False
FastLoadMaxInsertCommitSize: 2147483647
FastLoadOptions: TABLOCK,CHECK_CONSTRAINTS
29 май 12, 12:30    [12630915]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
фаст лоад пакетами грузит и пакетами же в ерроры отправляет. Переключите с фаст лоада на обычный лоад.
29 май 12, 13:36    [12631539]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
abrashka
Member

Откуда:
Сообщений: 521
Ivan Durak,

Спасибо! изменил AccessMode на OpenRowset и все заработало как и хотелось.

А с апдейтом как быть? Есть какие-то возможности у SSIS или писать код для проверки?
29 май 12, 14:31    [12631974]     Ответить | Цитировать Сообщить модератору
 Re: "Плохие" данные в отдельную таблицу. SSIS. хелп плз!  [new]
Ivan Durak
Member

Откуда: Minsk!!!
Сообщений: 3754
abrashka
Ivan Durak,

Спасибо! изменил AccessMode на OpenRowset и все заработало как и хотелось.

А с апдейтом как быть? Есть какие-то возможности у SSIS или писать код для проверки?

с апдейтом так не получится. сделай джоин на то что есть и вообще апдейт не делай
29 май 12, 15:21    [12632367]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить