Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS - sql ole db souce - several sql commands  [new]
bulat makhmutov
Member

Откуда:
Сообщений: 101
Привет всем,
Помогите разобраться

В 2012 ssis пытаюсь создать пакет.
Логика -
Source db: xxx1
Target db: xxx2

10 SQL запросов (кастомные запросы, select с применением join, одна и та же комбинация FROM-только колонки выборки и condiyion разные)
делают выборку с source бд и кладут результат в 10 разных таблиц в таргет базе данных.

Output понятен - multicast с несколькими ole db destinations, а вот на вход не знаю как задать. Потому что Ole db source принимает только 1 sql комманду, несколько запросов нельзя задать.
Пож-та подскажите.
13 окт 15, 11:32    [18271496]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4264
bulat makhmutov
... колонки выборки и condiyion разные ...

... multicast с несколькими ole db destinations...

Это как?
13 окт 15, 11:39    [18271540]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
bulat makhmutov
Потому что Ole db source принимает только 1 sql комманду, несколько запросов нельзя задать.
Ну да, 10 SQL запросов, 10 Ole db source. Как же иначе?
13 окт 15, 11:41    [18271560]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
SQL2008
bulat makhmutov
... колонки выборки и condiyion разные ...

... multicast с несколькими ole db destinations...

Это как?
Не, ну разветвить поток обработки данных на несколько, и разложить их в разные приёмники можно. Но источник должен быть один.

Правда, есть ещё и объединение данных от нескольких источников, насколько я помню (сам ни разу не использовал). Но это не тот случай.
13 окт 15, 11:43    [18271577]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
alexeyvg
Правда, есть ещё и объединение данных от нескольких источников, насколько я помню (сам ни разу не использовал).
При этом тоже каждый источник будет получать данные от своего запроса, а не "один источник - много запросов".
13 окт 15, 11:44    [18271585]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4264
alexeyvg
SQL2008
пропущено...

Это как?
Не, ну разветвить поток обработки данных на несколько, и разложить их в разные приёмники можно. Но источник должен быть один.

Там условия в запросах разные, как пишет автор! Т.е. планируется в самом мультикасте делить данные??? Не по полям, а по критерям отбора???
13 окт 15, 11:47    [18271623]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
bulat makhmutov
Member

Откуда:
Сообщений: 101
Multicast принимает на вход только с 1 sql ole db source, как быть ?
13 окт 15, 11:48    [18271636]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
bulat makhmutov
Multicast принимает на вход только с 1 sql ole db source, как быть ?
Чем предыдущие ответы не подошли?
13 окт 15, 11:49    [18271641]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
SQL2008
alexeyvg
пропущено...
Не, ну разветвить поток обработки данных на несколько, и разложить их в разные приёмники можно. Но источник должен быть один.

Там условия в запросах разные, как пишет автор! Т.е. планируется в самом мультикасте делить данные??? Не по полям, а по критерям отбора???
Я вообще не понимаю - нужно объединить результаты запросов? Может, нужно просто объединить их в один, UNION ALL?
13 окт 15, 11:50    [18271666]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4264
alexeyvg
Я вообще не понимаю - нужно объединить результаты запросов? Может, нужно просто объединить их в один, UNION ALL?

Я о том же... Непонятно что хочет автор.
Вроде как
одна и та же комбинация FROM-только колонки выборки и condition разные

Тогда причем тут мультикаст, когда входные данные разные?
Мне кажется правильно, то, что вы и предлагали - 10 разных DataFlow
13 окт 15, 12:00    [18271768]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
bulat makhmutov
Member

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

Я не спорю. Только я не знаю как это реализовать, как вы рекомендовали. Я новичок.
13 окт 15, 12:00    [18271769]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4264
bulat makhmutov
alexeyvg,

Я не спорю. Только я не знаю как это реализовать, как вы рекомендовали. Я новичок.

Под каждый запрос создайте свой источник и приемник. Всего их будет 10.
13 окт 15, 12:02    [18271783]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
bulat makhmutov
Member

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

Подытожу,

10 DataFlow - > 10 SQL OLE DB Source - 10 OLE DB Destionation
Получается multicast не нужен?

А можно ли добавить Execute SQL Task на запросы?
т.е после того как все 10 запросов выполнились и данные были залиты в таблицы - если все успешно -> перейти в SQL Task 1 : если успешно > перейти в SQL Task 2 : если успешно > перейти в SQL Task 3

SQL Task 1, 2, 3 и т.д - это уже другая манипуляция с данными
13 окт 15, 12:36    [18271995]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
bulat makhmutov
10 DataFlow - > 10 SQL OLE DB Source - 10 OLE DB Destionation
Получается multicast не нужен?
Да.

bulat makhmutov
А можно ли добавить Execute SQL Task на запросы?
т.е после того как все 10 запросов выполнились и данные были залиты в таблицы - если все успешно -> перейти в SQL Task 1 : если успешно > перейти в SQL Task 2 : если успешно > перейти в SQL Task 3
Дпа, конечно, после Data Flow Task ставите Execute SQL Task-и, и соединяете их стрелочками (переходами), на переходе можно выставить условие выполнения.
13 окт 15, 12:38    [18272017]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
bulat makhmutov
Member

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

Спасибо Алексей и всем кто отписался.
Спасибо большое еще раз.

Всем хорошего дня!!!
13 окт 15, 13:35    [18272430]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4264
bulat makhmutov
SQL2008,

Подытожу,

10 DataFlow - > 10 SQL OLE DB Source - 10 OLE DB Destionation
Получается multicast не нужен?

А можно ли добавить Execute SQL Task на запросы?
т.е после того как все 10 запросов выполнились и данные были залиты в таблицы - если все успешно -> перейти в SQL Task 1 : если успешно > перейти в SQL Task 2 : если успешно > перейти в SQL Task 3

SQL Task 1, 2, 3 и т.д - это уже другая манипуляция с данными

Вы удивитесь, но именно так в основном и работают SSIS пакеты
Переходы после выполнения могут быть 3 типов
- успешно
- неуспешно
- в любом случае

в зависимости от логики можете выстроить любой алгоритм обработки данных
13 окт 15, 13:48    [18272533]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
bulat makhmutov
Member

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

Алексей, быстрый вопрос -

как вставить SQL Task (удаление из 10 таблиц, до того как данные были внесены)?
как это воможно реализовать?
13 окт 15, 14:40    [18272849]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - sql ole db souce - several sql commands  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31440
bulat makhmutov
как вставить SQL Task (удаление из 10 таблиц, до того как данные были внесены)?
Эээ, мышкой перетащить таск SQL Task на экран, 2 раза кликнуть по нему, внутри написать 10 стейтментов truncate table
Потом соединить этот таск с таском Data Flow Task
13 окт 15, 17:12    [18274009]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить