Шаблон служб SSIS для импорта нескольких таблиц - PullRequest
2 голосов
/ 20 января 2009

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

Для каждой таблицы, если бы я обобщил,

  1. Мне нужно перенести строки из одной таблицы в таблицу в другой базе данных
  2. Мне нужно посчитать количество переданных строк
  3. Необходимо записать время начала и окончания передачи данных для каждой таблицы
  4. Запись любых ошибок

Я стараюсь не использовать хранимые процедуры, поскольку хочу, чтобы людям не приходилось копаться в БД, чтобы получить правила для этого преобразования. В идеале я хотел бы, чтобы это было сделано на уровне служб SSIS с использованием компонентов, которые, следовательно, можно увидеть визуально и понять.

Есть ли лучшие практики, которые люди использовали раньше?

В идеале я бы хотел сделать что-то вроде

foreach (таблица в списке таблиц для передачи) перевод (имя таблицы)

Ответы [ 3 ]

0 голосов
/ 21 января 2009

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

Вы можете создать таблицу конфигурации, содержащую список ваших таблиц, которые вы хотите переместить, а затем использовать цикл for, чтобы что-то делать повторно .... но что делать.

http://blogs.conchango.com/jamiethomson/archive/2005/02/28/SSIS_3A00_-Dynamic-modification-of-SSIS-packages.aspx

Ниже пунктов маркера он заявляет, что SSIS не может быть изменен для изменения метаданных во время выполнения. И чтобы было легко поддерживать ... вы идете в неправильном направлении.

Я бы упростил задачу и использовал мастер, а затем настраивал с помощью регистрации / уведомлений и т. Д.

0 голосов
/ 13 февраля 2014

Может быть, вы можете вызвать хранимую процедуру внутри ваших скриптов ssis. Вот пример того, как вы можете использовать sp http://blog.sqlauthority.com/2012/10/31/sql-server-copy-data-from-one-table-to-another-table-sql-in-sixty-seconds-031-video/

0 голосов
/ 20 января 2009

Чтобы создать общий обработчик таблиц, вам нужно программно построить поток данных. AFAIK SSIS не имеет авто-самоанализ. Задача сценария позволит вам сделать это, и вы можете получить метаданные таблицы из источника. Однако вам придется программно построить поток данных, а это значит возиться с API.

Я работал над продуктом, где это было сделано, хотя я не разрабатывал этот компонент, поэтому не могу предложить мудрые слова о том, как это сделать. Тем не менее, вы можете найти ресурсы в Интернете , которые объясняют, как это сделать.

Вы можете найти структуру таблицы и типы столбцов, выполнив запрос к системному словарю данных . См. эту публикацию для некоторых ссылок на ресурсы, описывающие, как это, включая ссылку на пример кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...