Я много работал с Pentaho PDI, поэтому некоторые очевидные вещи бросаются в глаза.
С этого момента я буду называть менеджеров соединений "CM".
Очевидно, CM проекта> Пакет CM, для расширяемости / повторного использования. Кажется, действительно редкий случай, когда вам нужен CM уровня пакета.
Но мне интересно еще одна лучшая практика. Должен ли каждый проектный CM сам состоять из переменных? (или параметры, я думаю).
Давайте поговорим в конкретных условиях. Есть конкретные источники базы данных. Давайте назовем два из них: Finance2000 и ETL_Log_db. У них есть определенные строки подключения (пароль, источник и т. Д.).
Теперь, если у вас есть 50 пакетов, извлеченных из Finance2000, а также использующих ETL_Log_db ... хорошо ... что произойдет, если базы данных изменятся? (хост, имя, пользователь, пароль?)
Скажите, что сейчас Финансы3000.
Ну, я думаю, вы можете пойти в Finance2000 и изменить источник, спецификации и даже само имя - тогда все должно работать, верно?
Или вы должны просто создать базу данных уровня проекта под названием «FinanceX» или что-то подобное и сделать ее состоящей из параметров, чтобы строка подключения была чем-то вроде @Source + @ credentials + @ что угодно?
Или это просто избыточно?
Я вижу одно преимущество метода параметров в том, что вы можете изменять «базу данных журналов» на лету даже внутри самого пакета во время выполнения вместо передачи параметров просто во время выполнения. Я думаю. Я не знаю. У меня пока нет опыта работы с SSIS.