Zasilanie hurtowni danych w SSIS w praktyce

Post on 09-Jul-2015

186 views 1 download

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

Zasilanie hurtowni danych w SSIS w praktyce

Kamil Nowiński

kamil@nowinski.net

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)

Agenda

Źródła zasileń hurtowni danych

Częstotliwość zasilania hurtowni

Sposoby zasilania hurtowni

Demo

Więzy integralności w hurtowni

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!

Ź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

Częstotliwość zasilania hurtowni

• Miesięczny

• Tygodniowy

• Dzienny

• Częściej? (RealTime?)

Stage

• Po co, dlaczego?

• Lokalizacja

• Ale co dalej z danymi?

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

DEMO #1

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

Load/Merge Order

• Gdy mamy jedną tabelę… (iluzja)

Load/Merge Order

• Dwie tabele (robisz DW na zaliczenie laborek?)

Load/Merge Order

• Kilka tabel (marzenia)

Load/Merge Order

• KilkaNAŚCIE tabel

Load/Merge Order

• KilkaSET tabel (utopia)

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

Podsumowanie

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

• Eliminacja duplikatów:

– Lookup niekoniecznie (tylko z opcją CACHE!)

– MERGE

Q&A

Pytania?

DZIĘKUJĘ ZA UWAGĘ

Zapraszam do kontaktu

kamil@nowinski.net

kamil.nowinski

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

@NowinskiK