2009-03-09 2 views
1

У меня есть файл Excel, который мне нужно обрабатывать три раза в службах интеграции, один раз для проектов, один раз для людей и один раз для отслеживания времени.Временное хранение очищенных данных в службах Integration Services

На каждом шагу у меня есть источник excel, и мне нужно выполнить очистку данных и преобразовать типы (одинаково на всех трех шагах).

Есть ли простой способ создания шага, который делает все это и это позволяет мне использовать вывод в качестве входных данных для других «реальных» шагов?

Я начинаю думать об импорте его в SQL-сервер во временную таблицу, что, безусловно, хорошо, но было бы неплохо, если бы я мог пропустить этот шаг.

ответ

1

Это действительно может быть достигнуто с использованием единого потока данных.

Вы можете прочитать источник данных Excel один раз, а затем использовать преобразование многоадресной передачи для создания копий набора данных в памяти. Затем вы можете обрабатывать каждую из трех ветвей потока данных и также можете использовать параллельную обработку!

Смотрите следующую ссылку для деталей:

http://msdn.microsoft.com/en-us/library/ms137701(SQL.90).aspx

Я надеюсь, что я подробно ясно и понятно, но, пожалуйста, не стесняйтесь связаться со мной напрямую, если вам требуется дальнейшие указания.

Cheers, Джон

[Добавлено в ответ на комментарии]

Что касается вашего дальнейшего вопроса, вы можете задать управление старшинство/потока пакета с использованием более чем одного потока. Например, вы можете использовать задачу многоадресной рассылки для создания трех потоков данных, а затем определить управление потоком приоритета, чтобы все задачи преобразования в потоке 1 были выполнены до того, как начнутся преобразования в потоке два.

+0

Кажется, это то, что я ищу, но, будучи новичком из SSIS, это привело меня к следующему вопросу. Если я поместил потоки в один поток данных, как я могу убедиться, что пользовательская и проектная загрузка выполняется до загрузки TT-данных? Или, может быть, с более умным дизайном мне не нужно ... –

+0

Забыл (а) мой первый комментарий; Спасибо за ответ!! –

+0

Извините за то, что вы здесь медленны ... Могу ли я установить приоритет в потоке данных? У меня будет один источник => filter => multicast => "три потока". Но если я поставлю source => filter => multicast в свою собственную задачу потока данных, как я могу получить этот поток вывода в последующих задачах потока данных? –

0

Сначала вы можете использовать три задачи потока данных с задачей работы с файлом. Операция File будет копировать исходный файл Excel во временную область. Каждая из трех задач потока данных должна начинаться с временного файла и записываться в файл temp (я думаю, что им может потребоваться записать копию).

Проблема в том, что это приводит к тому, что потоки данных работают последовательно. Возможно, это не проблема для вашего файла Excel, но это будет проблемой для обработки большего количества строк. В таком случае было бы лучше обработать три «шага» параллельно и объединить результаты на заключительном этапе.

+0

Спасибо за ответ! –

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