Podstawy ETL z SSIS

Bartosz Ratajczyk
Bartosz RatajczykDatabase developer
Podstawy ETL
Z pomocą SQL Server Integration Services
Warsztaty Stacja.IT Warszawa, 17.10.2016.
Zanim zaczniemy
• Czy wszyscy mają zainstalowane SSDT?
• Czy wszyscy mają MySQL Connector /.NET?
• Czy wszyscy mają lokalną wersję SQL Server?
• Czy wszyscy mają HeidiSQL / SSMS / SQLyog / (inne podobne)?
Co będziemy robić
• Poznamy SSIS i zbudujemy podstawowy proces ETL
• Zasilimy bazę danymi dotyczącymi sprzedaży i obliczymy realizację
celów sprzedażowych przez handlowców
Konstrukcja warsztatu
9:00 – 13:00 Pierwsza część warsztatów
Utworzenie projektu i pakietów zasilających bazę danymi
z MySQL
Kontenery, pętle, mapowania, obsługa plików CSV/XML
13:00 – 14:00 Pizza
14:00 – 17:00 Druga część warsztatów
Zasilanie bazy docelowej, obsługa błędów
Logowanie, wdrażanie, uruchamianie, SSIS Catalog
Bartosz Ratajczyk
Konsultant SQL Server
Programista baz danych i aplikacji
Prelegent
MCSE: Data Platform, MCT
http://bartekr.net | b.ratajczyk@gmail.com
O Was
• Czy mieliście wcześniej do czynienia z budowaniem procesów ETL?
• A z SQL Server Integration Services?
• A z SQL Server?
• Czego się spodziewacie po tym warsztacie?
Co to SSIS
• SSIS, czyli SQL Server Integration Services
• Narzędzie do realizacji procesów ETL
• Dostarczane wraz z całą platformą danych SQL Server od wersji SQL
Server 2005 (wcześniej jako DTS)
ETL
• Extract
• Transfer
• Load
• Czyli przenieś dane stąd -> tam i przekształć je po drodze
ELT
• Extract
• Load
• Transfer
• Czyli przenieś dane stąd -> tam a potem je przekształcaj
Gartner Magic Quadrant 2016
https://www.gartner.com/doc/reprints?id=1-
3CUJXZO&ct=160727&st=sb
Gartner Magic Quadrant 2015
https://www.gartner.com/doc/reprints?id=1-
2KDMO20&ct=150731&st=sb
Narzędzia
SQL Server Data Tools (SSDT)
• Zestaw narzędzi zintegrowanych z Visual Studio
• Ale może też działać samodzielnie
• Instaluje wtedy „Integrated Shell”
• Do wersji SQL Server 2008R2 znane jako Business Intelligence
Development Studio (BIDS)
• Od wersji SQL Server 2012 pewne zamieszanie z nazewnictwem (SSDT,
SSDT-BI)
• Ostatecznie rozwiązane w 2015 roku(?) i już tylko jedno SSDT
Rozszerzenia
• SSDT może być rozszerzane przez budowę własnych komponentów
• Niektóre z nich są dostarczane przez Microsoft, a niektóre przez firmy
trzecie
• Przykłady
• Azure Pack (Microsoft) – dostęp do części usług Azure
• Task Factory (Pragmatic Works) – zestaw dodatkowych kontrolek
• SSIS Community Tasks and Components https://ssisctc.codeplex.com/
Inne narzędzia
dtexec - narzędzie do uruchamiania pakietów SSIS
dtexecui == dtexec + GUI
IsDeploymentWizard – wdrażanie projektów
dtutil – wdrażanie pakietów
Elementy składowe ETL w SSIS
Czyli z jakich klocków budujemy przetwarzanie
Rozwiązanie + Projekt
Projekt
Pakiety
Managery połączeń
Pozostałe
Budowa pakietu
Control flow
Data flow
Event handlers
Parametry i zmienne
Logowanie
SSIS Toolbox
Podstawy ETL z SSIS
O pakiecie raz jeszcze
• Pakiet to plik XML
• SSDT pomaga tylko go
przygotować
• Ale jeśli się uprzeć, to
można go stworzyć ręcznie
(może jednak nie)
Nasze zadanie
Badamy czy realizowane są cele sprzedażowe
• Stworzymy proces zasilające bazę danych:
• danymi o sprzedawcach (i ich miejscu w strukturze organizacyjnej)
• danymi o produktach i grupach, do których należą
• danymi sprzedażowymi
• nałożonymi celami sprzedażowymi
• A potem obliczymy każdemu sprzedawcy realizację jego celów
Źródła danych
• Baza MySQL
• Pliki CSV, TXT
• Pliki XML
Warstwy
• Nie zasilamy danych od razu do bazy docelowej
• Wykorzystujemy warstwę „Stage”
• Taka lokalna kopia danych źródłowych
• Może przechowywać albo kompletne zbiory, albo „przyrosty”
• Nie chcemy obciążać systemów źródłowych
• Rozbijając zasilanie na warstwy łatwiej śledzić przepływ danych
• Dodatkowa baza na przechowywanie metadanych zasilania
Po co nam metadane zasilania?
• Pozwalają śledzić procesy zasilające tak jak my chcemy
• Dają pogląd z iloma źródłami danych mamy do czynienia
• Prezentują ilości przetwarzanych rekordów
• Ustawiony poziom wbudowanego logowania pakietów nie prezentuje
wystarczających informacji
Nasz model metadanych
I nasz model relacyjny (dane docelowe)
Standardy nazewnictwa
http://sqlblog.com/blogs/jamie_thomson/archive/2012/01/29/suggest
ed-best-practises-and-naming-conventions.aspx
ZADANIE 1
Budowa podstawowego projektu i pakietu SSIS
Cel zadania
• Poznać strukturę projektu SSIS i sposób tworzenia jego pakietów
• Zasilić bazę danymi sprzedawców i prostej struktury organizacyjnej
• Zapisać informacje o przetwarzaniu w bazie metadanych
Projekt i pierwszy pakiet tworzymy wspólnie.
Pozostałe pakiety to Wasza samodzielna praca.
Podstawy ETL z SSIS
Źródło danych – baza MySQL
Wada sterownika MySQL .NET
Należy użyć polecenia SQL, np. SELECT * FROM tabela
Tego problemu nie ma z ODBC
START
(Zadanie 1)
Trochę więcej o komponentach
Czyli co tam można znaleźć w SSIS Toolbox
Elementy Control Flow
Precedence constrains
Kontenery
Elementy Data Flow
ZADANIE 2
Zasilanie bazy danych informacjami z plików
Cel zadania
• Zasilić bazę informacjami z plików CSV, TXT i XML
• Produkty i grupy produktów: pliki XML
• Cele sprzedażowe: pliki TXT
• Informacje sprzedażowe: pliki CSV
• Zapisać informacje o przetwarzaniu w bazie metadanych
XML Source dla jednego pliku
Wykorzystanie kontenera ForEach
Parametryzacja kontenera ForEach
Parametryzacja XML Source
Flat file connection manager
Utwórz lokalny manager połączenia do plików
(będzie można użyć zmiennych)
Haczyki
• Pliki ze sprzedażą wczytujemy w pętli
• Musimy użyć nazwy pliku jako
parametru w managerze połączeń
• Pliki produktów mogą mieć nieprawidłowy schemat XSD
• Musimy nadać prawidłowy typ danych dla ProduktId (np. unsignedShort)
START
(Zadanie 2)
PRZERWA NA PIZZĘ
ZADANIE 3
Zasilanie danych docelowych, debugowanie, obsługa błędów
Cel zadania
• Zasilamy na podstawie danych w Stage docelową bazę danych
• W Stage są dane niezupełnie zgodne z naszym systemem relacyjnym
• Musimy przetworzyć dane w locie
• Albo do postaci pośredniej i z niej do docelowej
• Po zasileniu obliczamy realizację celów
• Baza relacyjna zawiera już część danych
• Definicje okresów sprzedażowych
• Cele sprzedażowe
Jeszcze raz model relacyjny
Zasilanie bazy relacyjnej
• Wykorzystujemy odrębny projekt z predefiniowanymi ustawieniami
• Zasilamy danymi, które pobraliśmy do Stage
• Jedna tabela docelowa == jeden pakiet
• Pamiętamy o utworzeniu metadanych przepływów
Wykorzystanie transformacji Lookup
• Użyjemy do mapowania danych źródłowych na docelowe
• Używamy domyślnego ustawienia Full cache
• Przekierujemy braki dopasowani dalej
• Mapowania:
• Przypisanie identyfikatora produktu po jego kodzie
• Przypisanie ceny jednostkowej produktu
• Przypisanie sprzedawcy po loginie
• Przypisanie sprzedawcy do punktu sprzedaży po identyfikatorze
Transformacja Lookup – ustawienia ogólne
Transformacja Lookup – źródło danych
Transformacja Lookup – mapowanie kolumn
Transformacja Lookup - wyjście
Przepływ danych - Sprzedaż
START
(Zadanie 3)
Sprawdzenie realizacji celów
SELECT *
FROM dbo.vRealizacjaCelow
WHERE
(RealizacjaCeluIlosc < 100 AND CzyCelIlosciowy = 1)
OR (RealizacjaCeluWartosc < 100 AND CzyCelWartosciowy = 1)
ORDER BY
Nazwisko,
Imie,
OkresId,
Nazwa
OBSŁUGA BŁĘDÓW
I analiza przepływających danych
Debugger (Control Flow)
Data Viewer (Data Flow)
Obsługa błędów (Control Flow)
Precedence Constraints (Completion, Failure)
Event Handlers
Obsługa błędów (Data Flow)
Wykorzystanie Error Output do przekierowania do innego zbioru
ZADANIE 4 / DEMO
Wdrażanie projektów SSIS na serwer docelowy, wykorzystanie SQL Agent
Sposoby wdrażania projektów SSIS
• Bezpośrednio z SSDT
• Instalacja pliku .ispac z poziomu SSMS
• Wykorzystanie IsDeploymentWizard
Uruchamianie z poziomu SQL Agent
PODSUMOWANIE
Kilka słów o czym było
• Zbudowaliśmy rozwiązanie ETL w SSIS
• Poznaliśmy struktury projektu SSIS i najczęściej używane kontrolki
• Znamy podstawy obsługi błędów
• Wiemy jak wdrażać projekty na serwer docelowy
Czego zupełnie nie ruszaliśmy
(a o czym warto na koniec wspomnieć choć słowem)
• Transakcje
• Wdrażanie pojedynczych pakietów
• Zasilenia przyrostowe
• MDS, DQS
Chyba mi się spodobało – co dalej?
• Jakie są opcje dalszego uczenia się SSIS
• Oficjalne kursy Microsoft
• 20463 Implementing a Data Warehouse with Microsoft® SQL Server® 2014
• 20767 Implementing a SQL Data Warehouse
• Książki (np. Training Kit)
• Wziąć udział w projekcie
• Użyć Import/Export Wizard, zapisać pakiet i zacząć go modyfikować
23 września - Od SASSa do LESSa - czyli ulepszanie CSSa - KRAKÓW
24 września - Clean Code + Wzorce Projektowe - ŁÓDŹ
24 września - Wprowadzenie do Machine Learning z wykorzystaniem
języka Python - WARSZAWA
1 października - Wprowadzenie do technologii Cloud
(Heroku, Google App Engine, Amazon AWS) - WARSZAWA
7 października - Pair Programming - WARSZAWA
Nadchodzące warsztaty:
Chcesz wiedzieć więcej?
Szkolenia pozwalają na indywidualną pracę z każdym
uczestnikiem
• pracujemy w grupach 4-8 osobowych
• program może być dostosowany do oczekiwań grupy
• rozwiązujemy i odpowiadamy na indywidualne pytania
uczestników
• mamy dużo więcej czasu :)
Szkolenie dedykowane dla Ciebie
Interesuje Cię tematyka warsztatu?
Zapoznaj się z programami szkoleń:
Projektowanie hurtowni danych z wykorzystaniem pakietu Pentaho Business
Intelligence
Techniczne aspekty budowania wydajnych procesów ładowania hurtowni
danych (ETL) z wykorzystaniem Pentaho Data Integration (PDI)
Wspierają nas
1 of 88

Recommended

Zasilanie hurtowni danych w SSIS w praktyce by
Zasilanie hurtowni danych w SSIS w praktyceZasilanie hurtowni danych w SSIS w praktyce
Zasilanie hurtowni danych w SSIS w praktyceKamil Nowinski
1.3K views19 slides
MongoDB Best Practices by
MongoDB Best PracticesMongoDB Best Practices
MongoDB Best PracticesLewis Lin 🦊
5.4K views73 slides
Queue by
Queue Queue
Queue Brigita Wensen
218 views27 slides
Rest API by
Rest APIRest API
Rest APIPhil Aylesworth
604 views26 slides
Spring Framework - Expression Language by
Spring Framework - Expression LanguageSpring Framework - Expression Language
Spring Framework - Expression LanguageDzmitry Naskou
7.9K views35 slides
Moving from SQL Server to MongoDB by
Moving from SQL Server to MongoDBMoving from SQL Server to MongoDB
Moving from SQL Server to MongoDBNick Court
14.4K views33 slides

More Related Content

What's hot

Bring Your Own Container: Using Docker Images In Production by
Bring Your Own Container: Using Docker Images In ProductionBring Your Own Container: Using Docker Images In Production
Bring Your Own Container: Using Docker Images In ProductionDatabricks
853 views63 slides
Elasticsearch V/s Relational Database by
Elasticsearch V/s Relational DatabaseElasticsearch V/s Relational Database
Elasticsearch V/s Relational DatabaseRicha Budhraja
11.4K views20 slides
Indexing with MongoDB by
Indexing with MongoDBIndexing with MongoDB
Indexing with MongoDBMongoDB
12.6K views24 slides
Data Modeling in Looker by
Data Modeling in LookerData Modeling in Looker
Data Modeling in LookerLooker
2.6K views10 slides
오픈소스 프레임워크 기반 웹 서비스 설계 (Example) by
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)중선 곽
5.5K views66 slides
Query Optimization in MongoDB by
Query Optimization in MongoDBQuery Optimization in MongoDB
Query Optimization in MongoDBHamoon Mohammadian Pour
750 views29 slides

What's hot(20)

Bring Your Own Container: Using Docker Images In Production by Databricks
Bring Your Own Container: Using Docker Images In ProductionBring Your Own Container: Using Docker Images In Production
Bring Your Own Container: Using Docker Images In Production
Databricks853 views
Elasticsearch V/s Relational Database by Richa Budhraja
Elasticsearch V/s Relational DatabaseElasticsearch V/s Relational Database
Elasticsearch V/s Relational Database
Richa Budhraja11.4K views
Indexing with MongoDB by MongoDB
Indexing with MongoDBIndexing with MongoDB
Indexing with MongoDB
MongoDB12.6K views
Data Modeling in Looker by Looker
Data Modeling in LookerData Modeling in Looker
Data Modeling in Looker
Looker2.6K views
오픈소스 프레임워크 기반 웹 서비스 설계 (Example) by 중선 곽
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
오픈소스 프레임워크 기반 웹 서비스 설계 (Example)
중선 곽5.5K views
An Introduction To NoSQL & MongoDB by Lee Theobald
An Introduction To NoSQL & MongoDBAn Introduction To NoSQL & MongoDB
An Introduction To NoSQL & MongoDB
Lee Theobald17.6K views
Relational databases vs Non-relational databases by James Serra
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra22.6K views
Introduction to MongoDB by NodeXperts
Introduction to MongoDBIntroduction to MongoDB
Introduction to MongoDB
NodeXperts393 views
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T... by Simplilearn
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
HBase Tutorial For Beginners | HBase Architecture | HBase Tutorial | Hadoop T...
Simplilearn2.6K views
Spring boot by sdeeg
Spring bootSpring boot
Spring boot
sdeeg26.6K views
OBIEE - Introduction & building reports by Deepika Raipuria
OBIEE - Introduction & building reportsOBIEE - Introduction & building reports
OBIEE - Introduction & building reports
Deepika Raipuria16.8K views
Trees In The Database - Advanced data structures by Lorenzo Alberton
Trees In The Database - Advanced data structuresTrees In The Database - Advanced data structures
Trees In The Database - Advanced data structures
Lorenzo Alberton144.6K views
Oracle to Azure PostgreSQL database migration webinar by Minnie Seungmin Cho
Oracle to Azure PostgreSQL database migration webinarOracle to Azure PostgreSQL database migration webinar
Oracle to Azure PostgreSQL database migration webinar

Similar to Podstawy ETL z SSIS

Microsoft Business Intelligence w 2017 roku by
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 rokuHighWheelSoftware
101 views53 slides
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać by
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
1.2K views61 slides
Zautomatyzuj swój proces wdrażania projektów SSIS by
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSISBartosz Ratajczyk
231 views39 slides
Migracja I Integracja Bazy by
Migracja I Integracja BazyMigracja I Integracja Bazy
Migracja I Integracja BazyPrzemysław ...
1.3K views47 slides
Roman Czarko-Wasiutycz- Projektowanie baz danych by
Roman Czarko-Wasiutycz- Projektowanie baz danychRoman Czarko-Wasiutycz- Projektowanie baz danych
Roman Czarko-Wasiutycz- Projektowanie baz danychWomen in Technology Poland
672 views22 slides
Sql day2015 fts by
Sql day2015 ftsSql day2015 fts
Sql day2015 ftsKamil Nowinski
1.2K views26 slides

Similar to Podstawy ETL z SSIS(20)

Microsoft Business Intelligence w 2017 roku by HighWheelSoftware
Microsoft Business Intelligence w 2017 rokuMicrosoft Business Intelligence w 2017 roku
Microsoft Business Intelligence w 2017 roku
HighWheelSoftware101 views
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać by Bartosz Ratajczyk
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
Bartosz Ratajczyk1.2K views
Zautomatyzuj swój proces wdrażania projektów SSIS by Bartosz Ratajczyk
Zautomatyzuj swój proces wdrażania projektów SSISZautomatyzuj swój proces wdrażania projektów SSIS
Zautomatyzuj swój proces wdrażania projektów SSIS
Bartosz Ratajczyk231 views
Czwartki z bi - Reporting Services - podstawy by Mariusz Koprowski
Czwartki z bi - Reporting Services - podstawyCzwartki z bi - Reporting Services - podstawy
Czwartki z bi - Reporting Services - podstawy
Mariusz Koprowski1.9K views
VirtualStudy.pl - Czwartki z BI - Reporting Services by SSAS.PL
VirtualStudy.pl - Czwartki z BI - Reporting ServicesVirtualStudy.pl - Czwartki z BI - Reporting Services
VirtualStudy.pl - Czwartki z BI - Reporting Services
SSAS.PL1.2K views
Maintenance_Plans_Zupełnie_Znienacka by Tobias Koprowski
Maintenance_Plans_Zupełnie_ZnienackaMaintenance_Plans_Zupełnie_Znienacka
Maintenance_Plans_Zupełnie_Znienacka
Tobias Koprowski779 views
Wprowadzenie do modelowania danych w PowerPivot by Kamil Nowinski
Wprowadzenie do modelowania danych w PowerPivotWprowadzenie do modelowania danych w PowerPivot
Wprowadzenie do modelowania danych w PowerPivot
Kamil Nowinski748 views
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf by SeeQuality.net
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdfSQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SQLDAY2022-AdrianChodkowski-10BledowPowerBI.pdf
SeeQuality.net580 views
20060416 Azure Boot Camp 2016- Azure Data Lake Storage and Analytics by Łukasz Grala
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 Grala664 views
SQL Server 2008 Tips & tricks administracji by SQLExpert.pl
SQL Server 2008 Tips & tricks administracjiSQL Server 2008 Tips & tricks administracji
SQL Server 2008 Tips & tricks administracji
SQLExpert.pl981 views
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i... by twitch.tv/katmpb
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
Kurs MySQL i SQL, bazy danych - prezentacja ppt, pdf, porady, trening, kurs i...
twitch.tv/katmpb6.9K views
[#4] spark - IBM Integrated Analytics System by Artur Wronski
[#4] spark - IBM Integrated Analytics System[#4] spark - IBM Integrated Analytics System
[#4] spark - IBM Integrated Analytics System
Artur Wronski31 views
4Developers 2015: Baza danych w aplikacji typu SaaS - błędy w projektowaniu -... by PROIDEA
4Developers 2015: Baza danych w aplikacji typu SaaS - błędy w projektowaniu -...4Developers 2015: Baza danych w aplikacji typu SaaS - błędy w projektowaniu -...
4Developers 2015: Baza danych w aplikacji typu SaaS - błędy w projektowaniu -...
PROIDEA352 views
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk... by PROIDEA
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PLNOG16: Nowe założenia dla zbieranie logów, statystyk i alertów, Maciej Kałk...
PROIDEA130 views

More from Bartosz Ratajczyk

SQL Server + docker - pierwsze kroki by
SQL Server + docker - pierwsze krokiSQL Server + docker - pierwsze kroki
SQL Server + docker - pierwsze krokiBartosz Ratajczyk
364 views21 slides
OLE DB - kiedy FastLoad nie jest takie fast by
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fastBartosz Ratajczyk
125 views10 slides
Jak działa rekurencyjne CTE? by
Jak działa rekurencyjne CTE?Jak działa rekurencyjne CTE?
Jak działa rekurencyjne CTE?Bartosz Ratajczyk
229 views29 slides
SqlSaturday Denmark 2017 - Automate your SSIS deployment process by
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment processBartosz Ratajczyk
470 views39 slides
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534 by
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534Bartosz Ratajczyk
172 views24 slides
Szkolenia i certyfikacjesqlserver2016_plssug99 by
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99Bartosz Ratajczyk
282 views18 slides

More from Bartosz Ratajczyk(14)

OLE DB - kiedy FastLoad nie jest takie fast by Bartosz Ratajczyk
OLE DB - kiedy FastLoad nie jest takie fastOLE DB - kiedy FastLoad nie jest takie fast
OLE DB - kiedy FastLoad nie jest takie fast
Bartosz Ratajczyk125 views
SqlSaturday Denmark 2017 - Automate your SSIS deployment process by Bartosz Ratajczyk
SqlSaturday Denmark 2017 - Automate your SSIS deployment processSqlSaturday Denmark 2017 - Automate your SSIS deployment process
SqlSaturday Denmark 2017 - Automate your SSIS deployment process
Bartosz Ratajczyk470 views
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534 by Bartosz Ratajczyk
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
How minimalloggingcanhelpme bartoszratajczyk_sql_sat534
Bartosz Ratajczyk172 views
Szkolenia i certyfikacjesqlserver2016_plssug99 by Bartosz Ratajczyk
Szkolenia i certyfikacjesqlserver2016_plssug99Szkolenia i certyfikacjesqlserver2016_plssug99
Szkolenia i certyfikacjesqlserver2016_plssug99
Bartosz Ratajczyk282 views
Jak szybko przetwarzasz hurtowe ilości XML? by Bartosz Ratajczyk
Jak szybko przetwarzasz hurtowe ilości XML?Jak szybko przetwarzasz hurtowe ilości XML?
Jak szybko przetwarzasz hurtowe ilości XML?
Bartosz Ratajczyk321 views

Podstawy ETL z SSIS

  • 1. Podstawy ETL Z pomocą SQL Server Integration Services Warsztaty Stacja.IT Warszawa, 17.10.2016.
  • 2. Zanim zaczniemy • Czy wszyscy mają zainstalowane SSDT? • Czy wszyscy mają MySQL Connector /.NET? • Czy wszyscy mają lokalną wersję SQL Server? • Czy wszyscy mają HeidiSQL / SSMS / SQLyog / (inne podobne)?
  • 3. Co będziemy robić • Poznamy SSIS i zbudujemy podstawowy proces ETL • Zasilimy bazę danymi dotyczącymi sprzedaży i obliczymy realizację celów sprzedażowych przez handlowców
  • 4. Konstrukcja warsztatu 9:00 – 13:00 Pierwsza część warsztatów Utworzenie projektu i pakietów zasilających bazę danymi z MySQL Kontenery, pętle, mapowania, obsługa plików CSV/XML 13:00 – 14:00 Pizza 14:00 – 17:00 Druga część warsztatów Zasilanie bazy docelowej, obsługa błędów Logowanie, wdrażanie, uruchamianie, SSIS Catalog
  • 5. Bartosz Ratajczyk Konsultant SQL Server Programista baz danych i aplikacji Prelegent MCSE: Data Platform, MCT http://bartekr.net | b.ratajczyk@gmail.com
  • 6. O Was • Czy mieliście wcześniej do czynienia z budowaniem procesów ETL? • A z SQL Server Integration Services? • A z SQL Server? • Czego się spodziewacie po tym warsztacie?
  • 7. Co to SSIS • SSIS, czyli SQL Server Integration Services • Narzędzie do realizacji procesów ETL • Dostarczane wraz z całą platformą danych SQL Server od wersji SQL Server 2005 (wcześniej jako DTS)
  • 8. ETL • Extract • Transfer • Load • Czyli przenieś dane stąd -> tam i przekształć je po drodze
  • 9. ELT • Extract • Load • Transfer • Czyli przenieś dane stąd -> tam a potem je przekształcaj
  • 10. Gartner Magic Quadrant 2016 https://www.gartner.com/doc/reprints?id=1- 3CUJXZO&ct=160727&st=sb
  • 11. Gartner Magic Quadrant 2015 https://www.gartner.com/doc/reprints?id=1- 2KDMO20&ct=150731&st=sb
  • 13. SQL Server Data Tools (SSDT) • Zestaw narzędzi zintegrowanych z Visual Studio • Ale może też działać samodzielnie • Instaluje wtedy „Integrated Shell” • Do wersji SQL Server 2008R2 znane jako Business Intelligence Development Studio (BIDS) • Od wersji SQL Server 2012 pewne zamieszanie z nazewnictwem (SSDT, SSDT-BI) • Ostatecznie rozwiązane w 2015 roku(?) i już tylko jedno SSDT
  • 14. Rozszerzenia • SSDT może być rozszerzane przez budowę własnych komponentów • Niektóre z nich są dostarczane przez Microsoft, a niektóre przez firmy trzecie • Przykłady • Azure Pack (Microsoft) – dostęp do części usług Azure • Task Factory (Pragmatic Works) – zestaw dodatkowych kontrolek • SSIS Community Tasks and Components https://ssisctc.codeplex.com/
  • 15. Inne narzędzia dtexec - narzędzie do uruchamiania pakietów SSIS dtexecui == dtexec + GUI IsDeploymentWizard – wdrażanie projektów dtutil – wdrażanie pakietów
  • 16. Elementy składowe ETL w SSIS Czyli z jakich klocków budujemy przetwarzanie
  • 30. O pakiecie raz jeszcze • Pakiet to plik XML • SSDT pomaga tylko go przygotować • Ale jeśli się uprzeć, to można go stworzyć ręcznie (może jednak nie)
  • 32. Badamy czy realizowane są cele sprzedażowe • Stworzymy proces zasilające bazę danych: • danymi o sprzedawcach (i ich miejscu w strukturze organizacyjnej) • danymi o produktach i grupach, do których należą • danymi sprzedażowymi • nałożonymi celami sprzedażowymi • A potem obliczymy każdemu sprzedawcy realizację jego celów
  • 33. Źródła danych • Baza MySQL • Pliki CSV, TXT • Pliki XML
  • 34. Warstwy • Nie zasilamy danych od razu do bazy docelowej • Wykorzystujemy warstwę „Stage” • Taka lokalna kopia danych źródłowych • Może przechowywać albo kompletne zbiory, albo „przyrosty” • Nie chcemy obciążać systemów źródłowych • Rozbijając zasilanie na warstwy łatwiej śledzić przepływ danych • Dodatkowa baza na przechowywanie metadanych zasilania
  • 35. Po co nam metadane zasilania? • Pozwalają śledzić procesy zasilające tak jak my chcemy • Dają pogląd z iloma źródłami danych mamy do czynienia • Prezentują ilości przetwarzanych rekordów • Ustawiony poziom wbudowanego logowania pakietów nie prezentuje wystarczających informacji
  • 37. I nasz model relacyjny (dane docelowe)
  • 39. ZADANIE 1 Budowa podstawowego projektu i pakietu SSIS
  • 40. Cel zadania • Poznać strukturę projektu SSIS i sposób tworzenia jego pakietów • Zasilić bazę danymi sprzedawców i prostej struktury organizacyjnej • Zapisać informacje o przetwarzaniu w bazie metadanych Projekt i pierwszy pakiet tworzymy wspólnie. Pozostałe pakiety to Wasza samodzielna praca.
  • 42. Źródło danych – baza MySQL
  • 43. Wada sterownika MySQL .NET Należy użyć polecenia SQL, np. SELECT * FROM tabela
  • 44. Tego problemu nie ma z ODBC
  • 46. Trochę więcej o komponentach Czyli co tam można znaleźć w SSIS Toolbox
  • 51. ZADANIE 2 Zasilanie bazy danych informacjami z plików
  • 52. Cel zadania • Zasilić bazę informacjami z plików CSV, TXT i XML • Produkty i grupy produktów: pliki XML • Cele sprzedażowe: pliki TXT • Informacje sprzedażowe: pliki CSV • Zapisać informacje o przetwarzaniu w bazie metadanych
  • 53. XML Source dla jednego pliku
  • 57. Flat file connection manager Utwórz lokalny manager połączenia do plików (będzie można użyć zmiennych)
  • 58. Haczyki • Pliki ze sprzedażą wczytujemy w pętli • Musimy użyć nazwy pliku jako parametru w managerze połączeń • Pliki produktów mogą mieć nieprawidłowy schemat XSD • Musimy nadać prawidłowy typ danych dla ProduktId (np. unsignedShort)
  • 61. ZADANIE 3 Zasilanie danych docelowych, debugowanie, obsługa błędów
  • 62. Cel zadania • Zasilamy na podstawie danych w Stage docelową bazę danych • W Stage są dane niezupełnie zgodne z naszym systemem relacyjnym • Musimy przetworzyć dane w locie • Albo do postaci pośredniej i z niej do docelowej • Po zasileniu obliczamy realizację celów • Baza relacyjna zawiera już część danych • Definicje okresów sprzedażowych • Cele sprzedażowe
  • 63. Jeszcze raz model relacyjny
  • 64. Zasilanie bazy relacyjnej • Wykorzystujemy odrębny projekt z predefiniowanymi ustawieniami • Zasilamy danymi, które pobraliśmy do Stage • Jedna tabela docelowa == jeden pakiet • Pamiętamy o utworzeniu metadanych przepływów
  • 65. Wykorzystanie transformacji Lookup • Użyjemy do mapowania danych źródłowych na docelowe • Używamy domyślnego ustawienia Full cache • Przekierujemy braki dopasowani dalej • Mapowania: • Przypisanie identyfikatora produktu po jego kodzie • Przypisanie ceny jednostkowej produktu • Przypisanie sprzedawcy po loginie • Przypisanie sprzedawcy do punktu sprzedaży po identyfikatorze
  • 66. Transformacja Lookup – ustawienia ogólne
  • 67. Transformacja Lookup – źródło danych
  • 68. Transformacja Lookup – mapowanie kolumn
  • 70. Przepływ danych - Sprzedaż
  • 72. Sprawdzenie realizacji celów SELECT * FROM dbo.vRealizacjaCelow WHERE (RealizacjaCeluIlosc < 100 AND CzyCelIlosciowy = 1) OR (RealizacjaCeluWartosc < 100 AND CzyCelWartosciowy = 1) ORDER BY Nazwisko, Imie, OkresId, Nazwa
  • 73. OBSŁUGA BŁĘDÓW I analiza przepływających danych
  • 76. Obsługa błędów (Control Flow) Precedence Constraints (Completion, Failure) Event Handlers
  • 77. Obsługa błędów (Data Flow) Wykorzystanie Error Output do przekierowania do innego zbioru
  • 78. ZADANIE 4 / DEMO Wdrażanie projektów SSIS na serwer docelowy, wykorzystanie SQL Agent
  • 79. Sposoby wdrażania projektów SSIS • Bezpośrednio z SSDT • Instalacja pliku .ispac z poziomu SSMS • Wykorzystanie IsDeploymentWizard
  • 82. Kilka słów o czym było • Zbudowaliśmy rozwiązanie ETL w SSIS • Poznaliśmy struktury projektu SSIS i najczęściej używane kontrolki • Znamy podstawy obsługi błędów • Wiemy jak wdrażać projekty na serwer docelowy
  • 83. Czego zupełnie nie ruszaliśmy (a o czym warto na koniec wspomnieć choć słowem) • Transakcje • Wdrażanie pojedynczych pakietów • Zasilenia przyrostowe • MDS, DQS
  • 84. Chyba mi się spodobało – co dalej? • Jakie są opcje dalszego uczenia się SSIS • Oficjalne kursy Microsoft • 20463 Implementing a Data Warehouse with Microsoft® SQL Server® 2014 • 20767 Implementing a SQL Data Warehouse • Książki (np. Training Kit) • Wziąć udział w projekcie • Użyć Import/Export Wizard, zapisać pakiet i zacząć go modyfikować
  • 85. 23 września - Od SASSa do LESSa - czyli ulepszanie CSSa - KRAKÓW 24 września - Clean Code + Wzorce Projektowe - ŁÓDŹ 24 września - Wprowadzenie do Machine Learning z wykorzystaniem języka Python - WARSZAWA 1 października - Wprowadzenie do technologii Cloud (Heroku, Google App Engine, Amazon AWS) - WARSZAWA 7 października - Pair Programming - WARSZAWA Nadchodzące warsztaty:
  • 86. Chcesz wiedzieć więcej? Szkolenia pozwalają na indywidualną pracę z każdym uczestnikiem • pracujemy w grupach 4-8 osobowych • program może być dostosowany do oczekiwań grupy • rozwiązujemy i odpowiadamy na indywidualne pytania uczestników • mamy dużo więcej czasu :)
  • 87. Szkolenie dedykowane dla Ciebie Interesuje Cię tematyka warsztatu? Zapoznaj się z programami szkoleń: Projektowanie hurtowni danych z wykorzystaniem pakietu Pentaho Business Intelligence Techniczne aspekty budowania wydajnych procesów ładowania hurtowni danych (ETL) z wykorzystaniem Pentaho Data Integration (PDI)