SlideShare une entreprise Scribd logo
1  sur  39
Zautomatyzuj swój proces wdrażania projektów SSIS
Bartosz Ratajczyk
SQL Server Consultant, 7N
b.ratajczyk@gmail.com
SQLDay 2017
O czym będzie?
• O ułatwianiu sobie życia, czyli jak pozbyć się nudnej pracy
• Wdrażanie projektów jednym skryptem
–lub jednym/dwoma krokami w TFS
• O tym jak przygotować sobie wszystkie konfiguracje
• O różnych opcjach i przeszkodach które nas czekają
SQLDay 2017
O czym nie będzie?
• O wdrażaniu pojedynczych pakietów
• O dobrych praktykach
• O DevOps jako takim
SQLDay 2017
Bartosz Ratajczyk
• SQL Server Consultant – 7N
• Trener – CBSG, Stacja.IT
• Prelegent na konferencjach,
spotkaniach grup PLSSUG
• MCSE, MCT
http://bartekr.net b.ratajczyk@gmail.com
SQLDay 2017
Z jakich kroków może się składać wdrożenie?
1. Kompilacja projektu
2. Utworzenie folderu dla projektu
3. Wdrożenie na serwer
4. Utworzenie środowiska
5. Ustawienie referencji środowisko – projekt
6. Utworzenie zmiennych środowiskowych
7. Konfiguracja projektu
8. Uruchomienie walidacji
9. Weryfikacja walidacji
10. Uruchomienie testowe
• Testowanie (NBi, LegiTest)
• Sprawdzanie zgodności ze standardami (Jamie Thomson)
SQLDay 2017
Podnosimy poziom trudności
• Kontrola wersji
–Gałąź DEV, TEST, PROD
• Kilka środowisk
–Serwer DEV, TEST, PREPROD, PROD
• Różne konfiguracje
–Ścieżki do katalogów na różnych serwerach
–Połączenia do różnych baz danych
• Wdrażamy na raz po kilka projektów
USPRAWNIAMY PRACĘ
No to do roboty
SQLDay 2017
SQLDay 2017
Kompilacja projektu – pierwsze kroki
SQLDay 2017
Problemy z kompilacją
SQLDay 2017
• EncryptAllWithPassword, EncryptSensitiveWithPassword
– wymaga ręcznego podania hasła
• Potrafi się zawiesić
SQLDay 2017
Przygotowanie ręczne
SQLDay 2017
MSBuild
SQLDay 2017
SSISMSBuild
• Dedykowane zadania kompilacji i wdrażania
–DeploymentFileCompilerTask
–DeployProjectToCatalogTask
• Kod źródłowy do samodzielnej kompilacji
http://sqlsrvintegrationsrv.codeplex.com
SQLDay 2017
Kompilacja: Build.proj
SQLDay 2017
Wdrożenie – IsDeploymentWizard
• IsDeploymentWizard.exe
• /Silent
SQLDay 2017
IsDeploymentWizard /Silent
• /Silent == fire and forget
• Zdarzają się przypadki, gdzie /Silent nie działa poprawnie *
SQLDay 2017
Znowu MSBuild
DEMO
Kompilacja i wdrożenie
SQLDay 2017
SQLDay 2017
Inne sposoby kompilacji/wdrożenia projektu
• Skrypt Powershell z użyciem SMO
• SSISBuild – Roman Tumaykin
• PowerShell Continuous Integration (PSCI) – ObjectivityLtd
• ISDeploymentCmd
SQLDay 2017
Potencjalne problemy kompilacji i wdrożenia
SQLDay 2017
Kompilacja: Build.proj (podejście 2)
SQLDay 2017
Obsługa środowisk (Environments)
• Visual Studio Configuration Manager
• Powershell + SMO
–Array
–CSV
–Baza danych
–JSON
SQLDay 2017
Configuration Manager
SQLDay 2017
Configuration Manager - wykorzystanie
• Różne wartości parametrów dla różnych konfiguracji
• Przechowywanie danych w plikach .dtproj
• Można wykorzystać jako konfiguracje projektu w
środowiskach
• Brak jednolitego podglądu
SQLDay 2017
SQLDay 2017
Utworzenie środowiska
SQLDay 2017
Referencja do środowiska
SQLDay 2017
Konfiguracja projektu
SQLDay 2017
Problemy przy automatyzacji środowiska
• Zmienne typu Sensitive
DEMO
Tworzenie środowiska i konfiguracja projektu
SQLDay 2017
SQLDay 2017
Sprawdzanie poprawności
• Uruchomienie walidacji to proces asynchroniczny
• Zlecamy zadanie do wykonania i możemy śledzić postęp
SQLDay 2017
I jeszcze sprawdzanie poprawności
::UseAllReferences
::SpecifyReference, $reference
SQLDay 2017
Testowe uruchomienie
DEMO
Walidacja i test wykonania
SQLDay 2017
SQLDay 2017
Co by tu jeszcze można?
• Testy NBi
• Weryfikacja zgodności z konwencją Jamie Thomsona
SQLDay 2017
A jak z tym TFS?
• Własny proces budowania/wdrażania w TFS
• Można rozbudować o kroki PowerShell do zarządzania
środowiskami, walidacją, …
DEMO
Proces automatyczny w TFS
SQLDay 2017
SQLDay 2017
Takie to proste!
• Praca nadal jest nudna, ale to komputer ją wykonuje
• Do automatyzacji wykorzystaj
– MSBuild
– Powershell
– SMO
• Zaangażuj dodatkowe oprogramowanie do CI/CD
Zautomatyzuj swój proces wdrażania projektów SSIS

Contenu connexe

Similaire à Zautomatyzuj swój proces wdrażania projektów SSIS

Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaTobias Koprowski
 
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and AnalyticsŁukasz Grala
 
Microsoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyMicrosoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyWydawnictwo Helion
 
Citrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFAPawel Serwan
 
Visual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaVisual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaWydawnictwo Helion
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaWydawnictwo Helion
 
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationMariusz Koprowski
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGBart Zaremba
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.jsWojciech Kaniuka
 
Patterns for organic architecture
Patterns for organic architecturePatterns for organic architecture
Patterns for organic architectureJaroslaw Palka
 
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Droptica
 
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSeeQuality.net
 
DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far Wojciech Barczyński
 
Microsoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaMicrosoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaWydawnictwo Helion
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymDariusz Jagieło
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowychTomasz Borowski
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?Michał Dudak
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Dariusz Kacban
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQLExpert.pl
 

Similaire à Zautomatyzuj swój proces wdrażania projektów SSIS (20)

Maintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
 
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics20060416   Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics
 
Microsoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programistyMicrosoft SQL Server 2005. Podręcznik programisty
Microsoft SQL Server 2005. Podręcznik programisty
 
Citrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFACitrix NetScaler Gateway i Azure MFA
Citrix NetScaler Gateway i Azure MFA
 
Visual Basic .NET. Encyklopedia
Visual Basic .NET. EncyklopediaVisual Basic .NET. Encyklopedia
Visual Basic .NET. Encyklopedia
 
Visual Basic .NET. Księga eksperta
Visual Basic .NET. Księga ekspertaVisual Basic .NET. Księga eksperta
Visual Basic .NET. Księga eksperta
 
Using Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentationUsing Red Gate SQL Doc for database documentation
Using Red Gate SQL Doc for database documentation
 
Websites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUGWebsites vs Cloud Services - OLMUG
Websites vs Cloud Services - OLMUG
 
Webinar - Podstawy Node.js
Webinar - Podstawy Node.jsWebinar - Podstawy Node.js
Webinar - Podstawy Node.js
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 
Patterns for organic architecture
Patterns for organic architecturePatterns for organic architecture
Patterns for organic architecture
 
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
Codeception - jak zacząć pisać automatyczne testy do Drupala [PL]
 
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
 
DevOps - what I have learnt so far
DevOps - what I have learnt so far DevOps - what I have learnt so far
DevOps - what I have learnt so far
 
Microsoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga ekspertaMicrosoft SQL Server 2000. Księga eksperta
Microsoft SQL Server 2000. Księga eksperta
 
HYC - Angular stań się kanciastym
HYC - Angular stań się kanciastymHYC - Angular stań się kanciastym
HYC - Angular stań się kanciastym
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
 
SQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracji
 

Plus de Bartosz Ratajczyk

OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastBartosz Ratajczyk
 
Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Bartosz Ratajczyk
 
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processBartosz Ratajczyk
 
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534Bartosz Ratajczyk
 
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Bartosz Ratajczyk
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Bartosz Ratajczyk
 
Operacje minimalnie logowane
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowaneBartosz Ratajczyk
 
Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?Bartosz Ratajczyk
 

Plus de Bartosz Ratajczyk (13)

OLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
 
Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?
 
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
 
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
 
Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
 
XML w SQL Server w praktyce
XML w SQL Server w praktyceXML w SQL Server w praktyce
XML w SQL Server w praktyce
 
Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
 
Operacje minimalnie logowane
Operacje minimalnie logowaneOperacje minimalnie logowane
Operacje minimalnie logowane
 
Po co mi Temporal Tables?
Po co mi Temporal Tables?Po co mi Temporal Tables?
Po co mi Temporal Tables?
 
Co to te CTE?
Co to te CTE?Co to te CTE?
Co to te CTE?
 
O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?O co chodzi z FILESTREAM?
O co chodzi z FILESTREAM?
 
Alerty WMI
Alerty WMIAlerty WMI
Alerty WMI
 
Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?Czy mi się przyda hierarchyid?
Czy mi się przyda hierarchyid?
 

Zautomatyzuj swój proces wdrażania projektów SSIS

Notes de l'éditeur

  1. EncryptAllWithPassword, EncryptSensitiveWithPassword wymaga ręcznego podania hasła przy kompilacji devenv.com
  2. Plik .ispac to po prostu .zip z innym rozszerzeniem. Zawiera pliki pakietów, managerów połączeń, parametrów projektu – dokładnie te same co w naszym projekcie. Dodatkowo zawiera dwa pliki – manifest i informacje o typach danych poszczególnych elementów. Nie zawiera plików, które mamy w sekcji Miscellaneous, bo one nie są serwerowi potrzebne do szczęścia
  3. MSBuild domyślnie nie wie co to za typ projektu i musimy mu trochę pomóc
  4. Jak skompilować samodzielnie: https://www.simple-talk.com/sql/ssis/deployment-automation-for-sql-server-integration-services-ssis/ https://seddryck.wordpress.com/2016/12/27/building-the-msbuild-tasks-for-ssis-2016/
  5. Trzy / cztery elementy do napisania: Project, UsingTask, Target i opcjonalnie parametryzacja – ItemGroup, ParamGroup. Ponieważ plik Build.proj umieszczam w tym samym katalogu co projekt SSIS podaję tylko nazwę pliku projektu – będzie pobrana jako ścieżka względna. Tutaj wybrano ItemGroup, ale PropertyGroup też będzie dobre, może nawet lepsze, bo Property w ramach PropertyGroup ma jedną wartość, a Item w ramach ItemGroup może mieć kilka (jak tablica)
  6. * - jest w internecie kilka zgłoszonych przypadków, kiedy wdrażanie z poziomu VS działało bez zarzutu, natomiast wdrażanie tego samego przez /Silent powodowało błedy
  7. Tym razem zamiast ItemGroup jest PropertyGroup; ogólnie nie ma to większego znaczenie, jeśli nie chcemy nadpisywać wartościami z zewnątrz; jeśli chcemy, to PropertyGroup
  8. Demo 01: Kompilacja za pomocą pliku Build.proj (z linii komend) Demo 02: Wdrożenie za pomocą pliku Deploy.proj (z linii komend)
  9. SMO http://muxtonmumbles.blogspot.com/2013/11/ssis-project-deployment-and-visual.html SSISBuild https://www.nuget.org/packages/SSISBuild/ https://github.com/rtumaykin/ssis-build/ PowerShell cmdlets + cmd tools Nie wymaga żadnych dodatkowych bibliotek czy instalacji, nie zależy od VS PSCI https://github.com/ObjectivityLtd/PSCI Zależy od VS IsDeploymentCmd https://github.com/tkwj/ISDeploymentCmd
  10. Jeśli nazwa projektu zawiera kropki, to podczas tworzenia pliku ispac ostatni człon nazwy po kropce jest ignorowany – zarówno w kompilacji z poziomu Visual Studio jak i przez SSISMSBuild Podejście z SMO i PowerShell jest wrażliwe na wersję assembly, np. w moim przypadku dla SSIS 2012 bibliotekę ManagedDTS 11.0 miałem tylko w wersji 32 bit i kompilacja musiała być wykonywana w PowerShell 32bit
  11. Żeby obejść problem z kropkami w nazwie bez konieczności dostosowywania kodu SSISMSBuild możemy dopisać krok, który zmieni nazwę wygenerowanego pliku .ispac
  12. Skrypty Powershell + SSIS – Joost van Rossum http://microsoft-ssis.blogspot.com/p/powershell.html JSON: http://microsoft-ssis.blogspot.com/2017/05/import-and-export-ssis-catalog.html
  13. Przykłady – Koen Veerbeck: http://blogs.lessthandot.com/index.php/datamgmt/dbadmin/mssqlserveradmin/ssis-deployment-with-powershell-adding/ Hans Michiels – wszystko w T-SQL: https://www.hansmichiels.com/2016/11/04/how-to-automate-your-ssis-package-deployment-and-configuration-ssis-series/#step4
  14. https://twitter.com/scottcurrie/status/779033445817278464
  15. $project.Validate() [Microsoft.SqlServer.Management.IntegrationServices.ProjectInfo+ReferenceUsage]::UseAllReferences [Microsoft.SqlServer.Management.IntegrationServices.ProjectInfo+ReferenceUsage]::SpecifyReference, $reference)
  16. http://microsoft-ssis.blogspot.com/2016/12/ssis-naming-conventions.html