#ssis
#ssis
Вопрос:
У меня есть 2 разных источника, которые нужно загрузить в хранилище данных с условием. 1-й источник — плоский файл, а второй источник — база данных SQL. Условие — пакет SSIS должен проверять значение флага в таблице, если значение равно 0, он должен обработать плоский файл, а если значение равно 1, то он должен обработать данные из источника SQL. Я знаю, что это можно сделать во встроенной задаче, но это должно быть сделано в задаче сценария путем динамического изменения типа соединения (поставщика данных) на основе значения флага. Любой, кто хорошо разбирается в .NET, пожалуйста, помогите в этом. Пожалуйста, дайте мне знать, если что-то непонятно
Спасибо.
Комментарии:
1. Разные источники имеют совершенно разные метаданные. Плоский файл содержит информацию о типе 0. В базе данных много . Вы не можете заменить один другим, не заставляя весь поток обновляться. Вместо этого используйте оператор объединения для объединения двух источников и выражение, которое включает / отключает каждый из двух источников в соответствии со значением переменной.
2. Второй для @PanagiotisKanavos. Вы можете получить значение флага и сохранить его в переменной, а затем выполнить условное переключение обработки между 2 потоками данных.
3. «изменение типа соединения»? Вы не можете. Вы не можете создать плоское файловое соединение и динамически изменить его на подключение к базе данных или наоборот. Я бы сделал это так, как предложил @Ferdipux. Если только вы не говорите о динамическом выполнении всего импорта в одной задаче сценария, что также является опцией.
4. Отрицательные голоса разрешены только тем пользователям, которые знают о службах SSIS и использовали выражения для динамического изменения поведения. И развернул его. И отладил его. Только они знают, как весело писать выражение IIF без поддержки редактора
5. Спасибо PanagiotisKanavos, Ferdipux, Tab Alleman.