By: Koen Verbeeck | Updated: 2018-07-31 | Komentarze (13) | Powiązane: More > Integration Services Development

Problem

SQL Server Data Tools (SSDT) to środowisko programistyczne do tworzenia i utrzymywania pakietów i projektów Integration Services (SSIS). Dawniej nie było kompatybilności wstecznej, co oznaczało, że mając nowszą wersję SSDT, nie można było tworzyć pakietów SSIS dla starszej wersji SSDT. Od wydania SQL Server 2016,SQL Server Data Tools obsługuje kompatybilność wsteczną aż do SQL Server 2012. Thistip wyjaśnia tę nową funkcję.

Rozwiązanie

Wprowadzenie

Historycznie, każde wydanie SQL Server miało towarzyszące wydanie środowiska programistycznego businessintelligence. Był to zawsze albo zestaw szablonów instalowanych w Visual Studio, albo – jeśli Visual Studio nie było jeszcze obecne – powłoka Visual Studio zdolna jedynie do obsługi projektów BI. Za pomocą tego narzędzia można było rozwijać projekty Integration Services, Analysis Services i Reporting Services.Początkowo narzędzie to nosiło nazwę Business Intelligence Development Studio lub BIDS.W SQL Server 2012 zmieniono nazwę na SQL Server Data Tools. Jednak firma Microsofthad posiadała również inny produkt o nazwie SQL Server Data Tools; za pomocą tego narzędzia można było tworzyć i zarządzać projektami baz danych SQL Server. Narzędzie BI było dostępne na nośniku instalacyjnymSQL Server, natomiast narzędzie bazodanowe było osobnym (i darmowym) plikiem do pobrania. Ponieważ powodowało to spore zamieszanie, zmieniono nazwę SSDT na SQL ServerData Tools for Business Intelligence lub SSDT-BI. Od SQL Server 2016 narzędzia BI są teraz połączone z narzędziem bazodanowym, a cały zestaw narzędzi nosi teraz nazwęSQL Server Data Tools lub SSDT. Przegląd:

  • SQL Server 2005 – Visual Studio 2005 (BIDS)
  • SQL Server 2008 i 2008R2 – Visual Studio 2008 (BIDS)
  • SQL Server 2012 – Visual Studio 2010 (SSDT, dostępne na nośniku instalacyjnym SQL Server) lub Visual Studio 2012 (SSDT-BI, dostępne jako osobne pobranie)
  • SQL Server 2014 – Visual Studio 2013 (SSDT-BI, dostępny jako osobne pobranie)
  • SQL Server 2016 – Visual Studio 2015 (SSDT, dostępny jako osobne pobranie i zawiera również projekty bazodanowe)
  • SQL Server 2017 – Visual Studio 2015 lub Visual Studio 2017 (SSDT)

Problemem było tutaj to, że SSIS nie miał żadnego wsparcia dla kompatybilności wstecznej.Na przykład, jeśli chciałeś rozwijać pakiety dla SQL Server 2008, potrzebowałeś VisualStudio 2008. Jeśli chciałeś rozwijać się dla SQL Server 2014, potrzebowałeś Visual Studio 2013. W przypadku Visual Studio 2013 nie można było tworzyć projektów SSIS dla SQL Server 2008 ani dla żadnej innej wersji SQL Server z wyjątkiem SQL Server 2014. Oznaczało to, że jeśli pracowałeś z kilkoma wersjami SSIS, musiałeś mieć na komputerze wiele różnych wersji Visual Studio.

Najnowsze wydania SSDT (od SQL Server 2016) rozwiązują te problemy: dzięki wprowadzeniu kompatybilności wstecznej możesz używać jednej wersji SSDT do tworzenia i utrzymywania wersji projektów SSIS od 2012 do 2017 i późniejszych. Należy zauważyć, że SSAS i SSRS obsługują kompatybilność wstecz już od dłuższego czasu.

SSIS i kompatybilność wstecz

Dalsza część tej porady została napisana przy użyciu wersji Visual Studio 2015 SSDT, wraz z SQL Server 2016. All of the advice given in this tip is valid forlater versions as well.

First of all we need to install the latest version of the Visual Studio 2015SSDT preview release. Po otwarciu nośnika instalacyjnego SQL Server 2016, można znaleźć link do strony pobierania. Zawiera on również link do strony pobierania SQL Server Management Studio (SSMS), ponieważ jest to teraz również osobny plik do pobrania.

Tworzenie nowego projektu

Po dodaniu nowego projektu można zauważyć, że teraz możliwe jest tworzenie projektów databaseprojects i projektów BI również w SSDT.

We właściwościach projektu można ustawić docelową wersję SSIS, którą SSDT będzie używać dla tego projektu.

Domyślną wersją docelową jest SQL Server 2016 (w późniejszych wersjach SSIS będzie to najnowsza wersja SQL Server). Obsługiwane są również SQL Server 2014 i SQL Server 2012, natomiast starsze wersje (2005 i 2008) nie są obsługiwane. Jeśli posiadasz starsze projekty niż SQL Server 2012, będziesz musiał je najpierw zaktualizować, zanim będziesz mógł użyć najnowszej wersji SSDT.

Po ustawieniu wersji docelowej, zestaw narzędzi SSIS dostosuje się odpowiednio. Przykładowo, w SQL Server 2016 dostępne są nowe zadania Hadoop i można pobrać zadania Azure z pakietu funkcji Azure.

Przy ustawieniu wersji na SQL Server 2014, wszystkie te nowe zadania znikną z zestawu narzędzi SSIS. To samo dotyczy transformacji przepływu danych wprowadzonych w SQL Server 2016.

Przy zmianie wersji projektu pojawi się ostrzeżenie, że istniejące pakiety mogą zostać zmienione:

Jeśli jednak korzystasz z funkcjonalności SQL Server 2016, po ustawieniu wersji docelowej na wcześniejszą wersję podczas otwierania pakietu pojawi się błąd:

Pakiet nadal będzie otwarty, ale obraźliwe zadania, transformacje lub connectionmanagers mogą zniknąć, lub nie będzie można otworzyć edytora. Możliwe, że ponowne przejście na SQL Server 2016 nie rozwiązuje problemu: obiekt może być nadal uszkodzony. W takim przypadku nie ma innej opcji niż usunięcie obiektu i dodanie go ponownie.

W chwili pisania tego tekstu istnieje kilka błędów podczas przełączania między wersjami docelowymi. Listę można znaleźć na blogu MSDN w pościeWhat’s New for SSIS 2016 RC0? Możliwe, że niektóre z nich są już naprawione, gdy to czytasz.

Jeśli masz własne niestandardowe komponenty w SSIS, musisz podjąć pewne dodatkowe kroki, aby działały one z właściwością wersji docelowej. SQL Server MVP Joost vanRossum wyjaśnia, jak można to zrobić w swoim blogu postSwitching Target Server Versions for custom components.

Adding existing packages to the project

When you add an existing SSIS package from an earlier version to the project- for example a SSIS 2012 package to a 2016 project – the package will be upgradedto match the target version.

Gdy wersje się zgadzają, nie następuje oczywiście aktualizacja, pakiet jest bezpośrednio dodawany do projektu. Można również dodać do projektu pakiety z wyższej wersji, SSIS będzie próbował je zaktualizować.

Testy pokazują jednak, że nie zawsze można ufać temu komunikatowi. Nawet w przypadku komunikatu o powodzeniu, pakiet może zostać uszkodzony, jeśli używasz tylko komponentów SQL Server 2016.

Otwarcie istniejącego projektu

Gdy używasz SSDT 2015 do otwarcia projektu utworzonego za pomocą wcześniejszej wersji SSDT, kreator aktualizacji automatycznie się uruchomi. Oznacza to, że wszystkie pakiety sąupgradeed do SQL Server 2016.

Ale nadal można obniżyć projekt z powrotem do wcześniejszej wersji, przechodzenie przez proces aktualizacji jest być może czymś, czego nie chcesz. Alternatywnie można edytować plik projektu i dodać następującą linię:

Spowoduje to, że SSDT 2015 pominie kreatora aktualizacji i bezpośrednio otworzy projekt z poprawną wersją docelową. W przypadku SQL Server 2014, oczywiście zmieniasz SQLServer2012into SQLServer2014. Chociaż to obejście wydaje się działać, ręczna edycja XML pliku projektu nie jest naprawdę obsługiwana. My adviceis to create a new empty project, set the target version and then start adding packages.

Control Flow Parts

Control flow parts are introduced in the tipSQL Server Integration Services 2016 Control Flow Templates Introduction (theyhave been renamed from templates to parts). Co zaskakujące, nadal można pracować z częściami przepływu sterowania, jeśli wersją docelową nie jest SQL Server2016. Jest to możliwe, ponieważ są one cechą czasu projektowania i nie mają wpływu na to, jak pakiety faktycznie działają. W przykładzie tutaj utworzyłem nowy projekt z wersją docelową ustawioną na SQL Server 2014. Stworzyłem prostą część przepływu sterowania i dodałem ją do pakietu.

Debugowanie pakietu nie jest problemem.

And you can also run the package inside a SQL Server 2014 SSIS Catalog:

Conclusion

Właściwość Target Server Version wprowadza wsteczną kompatybilność dla projektów SSIS w SSDT 2015. Dzięki tej nowej możliwości, stara bolączka SSIS została w końcu naprawiona: można używać tylko jednej wersji Visual Studio do zarządzania różnymi projektami SSIS. Zaleca się, aby ustawić wersję serwera na początku projektu i nie zmieniać jej zbyt często, ponieważ może to prowadzić do problemów.Dobrą wiadomością jest to, że z SSDT 2015 i nowszymi, można również używać części przepływu sterowania w starszych projektach!

Next Steps
  • Więcej informacji na temat różnych wersji SQL Server Data Tools:
    • TheSSDT Evolution
    • SQL 2014 CTP1, where is my BIDS?
  • Aby uzyskać więcej informacji na temat części Control Flow, sprawdź końcówkęSQL Server Integration Services 2016 Control Flow Templates Introduction.
  • Aby uzyskać więcej wskazówek dotyczących SQL Server 2016, możesz skorzystać z thisoverview.

Last Updated: 2018-07-31

O autorze
Koen Verbeeck jest profesjonalistą BI, specjalizującym się w stosie Microsoft BI ze szczególną miłością do SSIS.
Zobacz wszystkie moje wskazówki
Powiązane zasoby

  • Więcej wskazówek dotyczących Business Intelligence…

Więcej informacji na temat Business Intelligence…

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.