Как передать множественный ввод для компонента сценариев SSIS

У меня есть пользовательский компонент DataFlow источника, O/P которого будет каждый раз отличаться, мне нужно вставить эти записи в таблицу адресатов.

Проблема:- Невозможно указать столбцы ввода во время разработки для целевого компонента.. как в действительности для каждого вызова задачи DataFlow, исходный компонент будет возвращать различные столбцы O/P на основе схемы таблицы.

Решение, необходимое для:- Как принять любые входные данные, доступные без какого-либо сопоставления в компоненте DataFlow назначения (любым существующим компонентом или пользовательским компонентом)?

2 ответа

Фиксированная структура потока данных предназначена для проверки данных и оптимизации. Все его компоненты будут иметь фиксированные столбцы ввода и вывода. Я бы предложил следующие возможности:

  • Напишите поток данных для каждой возможной схемы. Вероятно, существует ограниченное количество возможностей. Вы можете сократить усилия по выполнению этой задачи, используя BIML, который может сгенерировать структуру пакета для вас. Это также может привести к возможности параллельной загрузки.
  • Используйте задачу скрипта вместо потока данных. В задаче сценария запишите строки для каждого ввода в таблицу.

м

Если вам нужно передать несколько входных данных в один компонент сценария, я знаю, что единственный способ сделать это - передать несколько входных данных в UNION ALL компонент, а затем передать один выход из UNION ALL к сценарию.

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

Я знаю, что это слишком поздно, но я продолжаю видеть этот подход UNION ALL, и мне это не нравится.

Как насчет этого подхода.

  1. Запустите оба потока данных в их собственном назначении набора записей и сохраните в переменную типа объекта ADO

  2. Создайте новый поток данных, используйте источник сценария и добавьте оба объекта ADO.

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