2013-05-10 4 views
2

Задача. Есть 7 SQL-серверов, каждая из которых имеет одну и ту же базу данных. Рассмотрим таблицу Table_1 базы данных. Я хочу взять данные из Table_1 из всех 7 серверов и поместить их в Table_1 главного сервера (называемый DataWarehouse на фотографии ниже). Я создал задачу потока данных для перемещения данных с одного из этих серверов на главный сервер.SSIS ForEach loop - изменение соединения внутри цикла for

Теперь я хочу поставить эту задачу потока данных внутри цикла for и выполнить поток данных с каждого из 7 серверов на главный сервер. Как мне это сделать ?

См. Прилагаемые фотографии ниже. Я хочу, чтобы мой цикл foreach менял соединение, определенное внутри задачи потока данных «Data Mart - один сервер», а затем выполнял передачу данных. Возможно ли это? Если да, то как? Я надеюсь, что-то простое, как у нас в программировании -

//pseudocode 

foreach (String serverIP){ 

1 - connect to server using serverIP 

2 - move data from server called serverIP to destination 

} 

SSIS foreach

+0

Разве я уже не ответил на это? http://stackoverflow.com/questions/16372338/ssis-etl-transfer-tables-databases-from-many-servers –

+0

@ElectricLlama - на самом деле, нет. Мне нужны были очки для публикации изображений. Итак, у меня не было выбора, кроме как принять ваш ответ. это не сработало для меня. я забыл, почему. Я работаю над этим проклятым делом весь день, и я забыл, почему ваш ответ не сработал. также, это не шаг за шагом :) – gregnorm

+0

Если вы зададите вопрос ... тогда вы должны решить его там, а затем, не принимать его и спрашивать другого. Фотографии, которые вы разместили, ничего не добавляют к вашему вопросу. Это могло быть разрешено в предыдущем вопросе. –

ответ

2

Да. Я предполагаю, что вы можете, как часть вашего цикла foreach, заполнить переменную именем сервера. Оттуда нажмите на диспетчер подключений и поднимите панель свойств (нажмите F4, если она еще не вставлена). Нажмите «Выражения» и установите для свойства ServerName значение переменной вашего сервера.

+0

Можете ли вы показать мне шаг за шагом? – gregnorm

+0

С какими особенностями вы столкнулись? Кроме того, что вы пробовали? –

+0

Все, что я хочу сделать, это сделать мой цикл для изменения IP-адреса, используемого диспетчером соединений для данных «Data Mart - один сервер». Пока не повезло. – gregnorm

1

Я бы, вероятно, пошел на 6 задач потока данных и воспользовался параллелизмом. Возможно, если вы все еще хотите пойти на линейный подход, я бы предложил вам создать динамический диспетчер соединений для вашей задачи OLEDB, конечно, с динамическим sql. (Это заняло бы много времени, поверьте мне, у меня был опыт с этим). Если вы можете связать эти серверы, то, вероятно, один SQL-запрос может решить проблему для вас.

Смежные вопросы