Zasilanie hurtowni danych w SSIS w praktyce

19
Zasilanie hurtowni danych w SSIS w praktyce Kamil Nowiński [email protected]

description

Temat obejmuje wybrane aspekty zasilania hurtowni danych za pomocą SSIS (SQL Server Integration Services). I choć na pewno nie omawia wszystkiego to pozwala zwrócić uwagę na kilka istotnych szczegółów mogących zadecydować o czasochłonności, a więc koszcie, a więc terminowości i w rezultacie sukcesie projektu zasilania hurtowni danych. Prezentacja po raz pierwszy została przedstawiona na 45. spotkaniu wrocławskiej grupy PLSSUG - 23 października 2014r.

Transcript of Zasilanie hurtowni danych w SSIS w praktyce

Page 1: Zasilanie hurtowni danych w SSIS w praktyce

Zasilanie hurtowni danych w SSIS w praktyce

Kamil Nowiński

[email protected]

Page 2: Zasilanie hurtowni danych w SSIS w praktyce

Kamil Nowiński

• Konsultant, freelancer SQL Server

• Obecnie jako architekt w projekcie hurtowni danych „Ari@dna2” programu e-Cło dla Ministerstwa Finansów

• Programista > 20 lat (VB6, VB.NET, C#, .NET Framework)

• Ponad 10-letnie doświadczenie w SQL Server (DEV/DBA)

• Bazy danych: Microsoft SQL 2000 – 2012+

• Członek komisji rewizyjnej Stowarzyszenia PLSSUG,

• Współorganizator konferencji SQLDay

• Certyfikaty SQL Server: MCITP, MCP, MCTS, MCSA, MCSE

• Zainteresowania:

• Optymalizacja baz danych, Hurtownie danych, SSIS

• Fotografia cyfrowa (Nikon D-90, Adobe Lightroom)

Page 3: Zasilanie hurtowni danych w SSIS w praktyce

Agenda

Źródła zasileń hurtowni danych

Częstotliwość zasilania hurtowni

Sposoby zasilania hurtowni

Demo

Więzy integralności w hurtowni

Page 4: Zasilanie hurtowni danych w SSIS w praktyce

Nie powiem o…

Projektowaniu hurtowni

SCD (Slowly Changing Dimension)

Przechwytywaniu zdarzeń

Checkpoint

…tym co Roman w listopadzie ;)

Dlaczego? Bo to nie 8-godzinny warsztat SQLDay!

Page 5: Zasilanie hurtowni danych w SSIS w praktyce

Źródła zasileń hurtowni danych

• Systemy bazodanowe (operacyjne)– Microsoft SQL Server– Oracle– PostgreSQL– SyBase– DB2– …

• Pliki płaskie– CSV– Excel

• Bazy Microsoft Access• Pliki XML• WebServices

Page 6: Zasilanie hurtowni danych w SSIS w praktyce

Częstotliwość zasilania hurtowni

• Miesięczny

• Tygodniowy

• Dzienny

• Częściej? (RealTime?)

Page 7: Zasilanie hurtowni danych w SSIS w praktyce

Stage

• Po co, dlaczego?

• Lokalizacja

• Ale co dalej z danymi?

Page 8: Zasilanie hurtowni danych w SSIS w praktyce

Sposoby zasilania hurtowni

Zasilanie przyrostowe bez aktualizacji:

SPLIT PARTITION & TRUNCATE

INSERT (only)

Zasilanie przyrostowe z „ułomną” aktualizacją: DELETE/TRUNCATE & INSERT

Zasilanie z aktualizacją danych / eliminacją duplikatów: Mechanizm CDC (Net processing mode) DISTINCT SORT Lookup DELETE, INSERT, UPDATE MERGE

Page 9: Zasilanie hurtowni danych w SSIS w praktyce

DEMO #1

Page 10: Zasilanie hurtowni danych w SSIS w praktyce

Więzy integralności w hurtowni

• Dobra, jedna tabela została zasilona – co z pozostałymi?

• Pytanie: czy istotna jest kolejność zasilania?

• Odpowiedź brzmi: to zależy

– Nie, gdy zasilamy „Staging”

– Tak*, gdy zasilamy hurtownię (bazę docelową)

• Od czego zależy kolejność?

– CONSTRAINTS typu FOREIGN KEY

Page 11: Zasilanie hurtowni danych w SSIS w praktyce

Load/Merge Order

• Gdy mamy jedną tabelę… (iluzja)

Page 12: Zasilanie hurtowni danych w SSIS w praktyce

Load/Merge Order

• Dwie tabele (robisz DW na zaliczenie laborek?)

Page 13: Zasilanie hurtowni danych w SSIS w praktyce

Load/Merge Order

• Kilka tabel (marzenia)

Page 14: Zasilanie hurtowni danych w SSIS w praktyce

Load/Merge Order

• KilkaNAŚCIE tabel

Page 15: Zasilanie hurtowni danych w SSIS w praktyce

Load/Merge Order

• KilkaSET tabel (utopia)

Page 16: Zasilanie hurtowni danych w SSIS w praktyce

DEMO #2Jak poradzić sobie z ustaleniem kolejności ładowania tabel

Page 17: Zasilanie hurtowni danych w SSIS w praktyce

Podsumowanie

• Obszar „Stage” w osobnej bazie danych zaraz „obok”

• Eliminacja duplikatów:

– Lookup niekoniecznie (tylko z opcją CACHE!)

– MERGE

Page 18: Zasilanie hurtowni danych w SSIS w praktyce

Q&A

Pytania?

Page 19: Zasilanie hurtowni danych w SSIS w praktyce

DZIĘKUJĘ ZA UWAGĘ

Zapraszam do kontaktu

[email protected]

kamil.nowinski

http://pl.linkedin.com/in/kamilnowinski/

@NowinskiK