it-swarm.dev

SSIS jak dynamicznie ustawić łańcuch połączenia z pliku konfiguracyjnego

Używam SQL Server Integration Services (SSIS) w SQL Server Business Intelligent Development Studio.

Muszę wykonać zadanie, które jest następujące. Muszę czytać ze źródłowej bazy danych i umieszczać ją w docelowym pliku płaskim. Ale jednocześnie źródłowa baza danych powinna być konfigurowalna.

Oznacza to, że w Menedżerze połączeń OLEDB ciąg połączenia powinien zmieniać się dynamicznie. Ten ciąg połączenia należy pobrać z pliku konfiguracyjnego/XML/płaskiego.

Czytałem, że mogę używać zmiennych i wyrażeń, aby dynamicznie zmieniać ciąg połączenia. Ale jak odczytać wartość ciągu połączenia z pliku config/XML/flat i ustawić zmienną?

Ta część nie jestem w stanie zrobić. Czy to jest właściwy sposób na osiągnięcie tego celu? Czy możemy dodać pliki web.config do projektu SSIS?

40
SNA

Najpierw dodaj zmienną do pakietu SSIS (Package Scope) - użyłem FileName, OleRootFilePath, OleProperties, OleProvider. Typ każdej zmiennej to „ciąg”. Następnie tworzę plik konfiguracyjny (wybierz każdą zmienną - wartość) - wypełnij wartości w pliku konfiguracyjnym - Np .: dla OleProperties - Microsoft.ACE.OLEDB.12.0; dla OleProperties - Excel 8.0; HDR =, OleRootFilePath - Ścieżka do pliku Excel, nazwa_pliku - nazwa_pliku

W Menedżerze połączeń - ustawiam dynamicznie wyrażenie Właściwości-> Wyrażenia-> Połączenie, np .:

 "Provider =" + @ [User :: OleProvider] + "Data Source =" + @ [User :: OleRootFilePath] 
 + @ [User :: FileName] + "; Extended Properties =" "+ @ [User :: OleProperties] + „NO” „+”; ”

W ten sposób po ustawieniu wartości zmiennych i zmianie ich w pliku konfiguracyjnym - ciąg połączenia zmieni się dynamicznie - pomaga to w szczególności w przechodzeniu ze środowiska programowania do środowiska produkcyjnego.

30
Lekha Mathew

Niektóre opcje:

  1. Możesz użyć Execute Package Utility , aby zmienić swoje źródło danych, przed uruchomieniem pakietu. 

  2. Możesz uruchomić swój pakiet za pomocą DTEXEC i zmienić połączenie, przekazując parametr/CONNECTION. Prawdopodobnie zapisz go jako partię, więc następnym razem nie będziesz musiał wpisywać całości i po prostu zmienić źródło danych zgodnie z wymaganiami.

  3. Możesz użyć konfiguracji pakietu XML SSIS file. Oto przejdź przez .

  4. Możesz zapisać swoje konfiguracje w tabeli bazy danych.

26
Darnell

Oto kilka informacji na temat mechanizmu, którego należy użyć, o nazwie Konfiguracje pakietów: Zrozumienie konfiguracji pakietów usług integracji ..__ W artykule opisano 5 typów konfiguracji:

  • Plik konfiguracyjny XML
  • Zmienna środowiskowa
  • Wpis rejestru
  • Zmienna pakietu nadrzędnego
  • SQL Server

Oto opis konfiguracji konfiguracji menedżera połączeń: SQL Server Integration Services Konfiguracja pakietu SSIS - Zdaję sobie sprawę, że używa zmiennej środowiskowej dla ciągu połączenia (nie jest to świetny pomysł), ale podstawy są identyczne do korzystania z pliku XML. Jedynym krokiem, który musisz zmienić w tym przewodniku, jest typ konfiguracji, a następnie ścieżka.

10
Todd McDermid

Przejdź do właściwości pakietu-> Konfiguracje-> Włącz konfiguracje pakietów-> Dodaj-> plik konfiguracyjny xml-> Określ plik dtsconfig-> kliknij next-> W Właściwościach OLEDB zaznacz ciąg połączenia-> wyświetlona zostanie wartość ciągu połączenia-> kliknij następny i pakiet wykończeniowy jest więc skonfigurowany.

Możesz dodać zmienną Środowisko również w tym procesie

2
Sangeetha Bolla

Odpowiedzi te są poprawne, ale stare i działają dla Depoloyement Package Model. To, czego aktualnie potrzebuję, to zmiana nazwy serwera, nazwy bazy danych menedżera połączeń i znalazłem to bardzo pomocne: 

https://www.youtube.com/watch?v=_yLAwTHH_GA

Lepiej dla osób korzystających z SQL Server 2012-2014-2016 ... z Deployment Project Model

0
Khalil Liraqui