Нужен совет по решению SSIS с переменными менеджерами соединений - PullRequest
1 голос
/ 06 ноября 2019

Я работаю над решением SSIS, чтобы получить 20 различных текстовых файлов из определенной папки и загрузить их в разные таблицы базы данных SQL Server. Я добавил таблицу сопоставления с именами table_name, file_name, file_path, full_connection_string. Как мне сказать диспетчеру соединений, какое соединение использовать для определенного файла? Какие переменные / параметры использовать и где?

Я не хочу иметь 20 соединений TXT (для известного различия имен файлов) и 20 соединений с базой данных. Все онлайновые учебные пособия устарели и не соответствуют пользовательскому интерфейсу Visual Studio 2019.

Любая помощь приветствуется!

Ответы [ 2 ]

2 голосов
/ 06 ноября 2019

Вы можете иметь параметрическую строку подключения.

  1. Определите переменную: _Server (строка)
  2. Выберите соединение
  3. В окне свойств выберите [Выражение]
  4. Используйте вашу переменную для(SereverName)

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

enter image description here

1 голос
/ 06 ноября 2019

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

Вам понадобится менеджер соединений с плоскими файлами для каждого уникального метаданных файла. У вас может быть двадцать файлов Sales-date.txt, в которых используется один диспетчер соединений с плоскими файлами, а затем выражения позаботятся о потреблении различных файлов.

Однако, если у вас есть Sales.txt и Customers.txt,Метаданные, то есть столбцы внутри файла, будут разными, и это нормально, но вам придется создать менеджер соединений с плоскими файлами для каждого из этих типов. Это контракт, который вы заключаете с движком SSIS - я обещаю, что все файлы, к которым будет применен этот FFCM, соответствуют этому стандарту. Вам также понадобится Задача потока данных для каждого из этих FFCM, так как механизм вычисляет, сколько строк данных он может обработать за один раз, на основе ограничений типа и столбца в источнике.

Если этобыли бы я, я бы провел несколько дней, глядя на Biml . Biml - это язык разметки Business Intelligence, и он позволяет вам описывать вашу проблему в повторяемой форме. т.е. для каждого из этих типов файлов мне нужен пакет служб SSIS, который является для каждого перечислителя файлов, чтобы подобрать текущий файл. Внутри этого, задача потока данных для загрузки файла. Затем задача «Файловая система» для архивирования файла из рабочей папки.

Вы уже пошли по этому пути, идентифицируя ваши метаданные (имя_таблицы, имя_файла, путь_файла, full_connection_string), осталось только описать содержимое ваших файлов. Если вы посмотрите мои SO-ответы, вы найдете множество ответов, в которых Biml используется для создания воспроизводимого решения.

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