Hurtownie danych i narzędzia ETL
Transkrypt
Hurtownie danych i narzędzia ETL
Bazy danych Hurtownie danych i narzędzia ETL 279 280 Bazy danych Przegląd zagadnień Tworzenie hurtowni danych Aktualizacja danych ETL w relacyjnych bazach danych ETL a hurtownie danych Podsumowanie Laboratorium Hurtownie danych to specjalne bazy danych, które świetnie nadają się jako źródło raportów i analiz. W dzisiejszych czasach firmy operują na ogromnych ilościach danych. Samo przechowywanie danych nie jest juŜ celem. Równie waŜną funkcją magazynów danych i systemów stało się wyciąganie wniosków i ukrytych informacji z danych produkcyjnych. W tym module dowiesz się, jak planuje się strukturę hurtowni danych i jak wygląda proces aktualizacji danych w stworzonej hurtowni. Bazy danych Tworzenie hurtowni danych Wymagania analityczne Zródla danych Projektowanie hurtowni danych Struktury tabel wymiarów Import danych Proces tworzenia hurtowni przebiega w kilku etapach: • • • • • zdefiniowanie wymagań analitycznych, wybór źródeł danych do analizy, projektowanie struktury hurtowni, implementacja projektu, import danych. 281 282 Bazy danych Wymagania analityczne Aby zbudować hurtownię danych, naleŜy najpierw określić cele biznesowe. Musisz wiedzieć, jaki jest powód, dla którego projektujesz i implementujesz nowy system. Struktura hurtowni jest ściśle związana z celami analizy. KaŜda analiza przeprowadzana jest przy uŜyciu odpowiedniego zestawu odpowiednio zorganizowanych tabel. Taki zestaw tabel w zachodniej literaturze nosi nazwę data mart i w wolnym tłumaczeniu na język polski moŜe oznaczać zestaw danych do analizy. A zatem hurtownia jest bazą danych składającą się z tabel zorganizowanych w zestawy do analizy. Źródła danych PoniewaŜ analiza dotyczy często danych, które są pierwotnie rozproszone, źródłami danych dla hurtowni są na ogół róŜne systemy i pliki. RóŜnorodność ta dotyczy nie tylko platform lub typów magazynów (bazy danych, pliki tesktowe, arkusze kalkulacyjne), ale przede wszystkim róŜnorodności formatów i szczegółowości danych. Ten ostatni aspekt jest głównym czynnikiem określającym tzw. ziarnistość danych w hurtowni. Ziarnistość to najniŜszy poziom szczegółowości, jaki istnieje w danych. Dzięki ziarnistości projektant jest w stanie określić, z jaką dokładnością będzie moŜna analizować dane (np. analiza sprzedaŜy względem czasu z dokładnością do tygodnia). Projektowanie hurtowni danych Projektowanie hurtowni danych polega na zaplanowaniu struktury specyficznej bazy danych. Struktura ta obejmuje: • • • tabele faktów, które przechowują dane liczbowe, których analiza jest celem biznesowym, tabele wymiarów, które przechowują dane określające kryteria analizy, tabele pomocnicze, które są wykorzystywane w fazie importu danych do tabel wymiarów i faktów. Data mart, czyli układ tabel słuŜący do analizy jednego wybranego celu biznesowego (np. sprzedaŜy), ma praktycznie zawsze strukturę budowaną wokół jednej tabeli faktów. Tabele wymiarów są powiązane z tabelą faktów związkami (takimi samymi, jak w transakcyjnych relacyjnych bazach danych). Dzięki temu jeden fakt jest określany przez dokładnie jeden rekord z kaŜdej tabeli wymiarów i jeden rekord z tabeli faktów. Kolumny w tabelach wymiarów określają tzw. ziarnistość danych, czyli maksymalny poziom szczegółowości, na jakim moŜna prowadzić analizę. Struktury tabel wymiarów Pojedynczy wymiar w hurtowni jest zawsze zbudowany według jednego z określonych szablonów. W związku z tym mamy wymiary: Bazy danych • • • 283 strukturze gwiazdy (ang. star), strukturze płatka śniegu (ang. snowflake), z hierarchią rodzic-dziecko (ang. parent-child). Mówimy, Ŝe wymiar ma strukturę gwiazdy, jeŜeli jego dane są przechowywane w jednej tabeli. Nazwa gwiazda bierze się z graficznej ilustracji pojemnika data mart, którego wszystkie wymiary mają strukturę gwiazdy - układ tabel na diagramie przypomina gwiazdę. Przykładem typowego wymiaru o strukturze gwiazdy jest zapisany w jednej tabeli wymiar Czas, który jest jednym z najczęściej spotykanych wymiarów. Rys. 15.1 Struktura gwiazdy Zwróć uwagę, Ŝe w kaŜdej tabeli wymiarów na powyŜszym diagramie (tabele z sufiksem _dim) pojawiają się dwa klucze: klucz główny sztuczny (kolumny z sufiksem _dim_key) i klucz pochodzący z bazy źródłowej (np. kolumny z sufiksem _app). Jest to powodowane tym, Ŝe hurtownia danych musi najczęściej przechowywać takŜe historię zmian wymiarów. Przykładowo: dziś klient jest kawalerem, za rok będzie Ŝonaty - w analizie jego aktualne zakupy muszą być uwzględnione jako zakupy dokonane przez kawalera, a zakupy wykonane w przyszłym roku muszą być rozpatrywane jako zakupy dokonane przez męŜczyznę Ŝonatego. Czyli w hurtowni muszą znaleźć się dwie wersje rekordu dotyczącego tego klienta. Z kolei strukturę płatka śniegu posiada wymiar, którego hierarchia jest stworzona z kilku tabel. Podobnie, jak w przypadku gwiazdy, nazwa bierze się od układu tabel na diagramie pojemnika data mart, którego wymiary mają strukturę płatka śniegu. Przykład: jeśli wymiar Produkt jest zbudowany przy uŜyciu dwóch tabel - Kategoria i Produkt - które są ze sobą powiązane związkiem, mówimy, Ŝe wymiar ma strukturę płatka śniegu. 284 Bazy danych Hierarchia rodzic-dziecko jest wykorzystana do stworzenia wymiarów, które mają za zadanie obrazowanie zaleŜności hierarchiczne między członkami wymiaru (rekordami w tabeli wymiaru). Przykładem moŜe być wymiar Pracownik, którego struktura oparta jest o hierarchię firmy (kaŜdy pracownik moŜe mieć szefa i podwładnych). Implementacją takiego wymiaru jest pojedyncza tabela i związek unarny (związek, w którym uczestniczą dwie kolumny jednej tabeli). Import danych Po stworzeniu struktury hurtowni pozostaje zasilić hurtownię danymi. Do importu danych wykorzystywane narzędzia ETL opisane w dalszej części modułu. Import danych najczęściej wykonywany jest w kilku krokach powtarzanych dla kaŜdego fragmentu hurtowni (dla kaŜdej struktury data mart): • • • Import danych do tabel wymiarów. Import danych do tabeli przejściowej, która następnie posłuŜy do wypełnienia tabeli faktów. Import danych do tabeli faktów na podstawie danych z tabeli przejściowej i danych z tabel wymiarów. Bazy danych Aktualizacja danych Istota aktualizacji danych Przechowywanie danych historycznych Implementacja aktualizacji danych PoniewaŜ hurtownia danych nie jest zazwyczaj bazą jednokrotnego uŜytku, istotną kwestią staje się problem aktualizacji danych. 285 286 Bazy danych Istota aktualizacji danych Aktualizacja danych polega w większości przypadków na dodaniu rekordów w tabelach wymiarów. Nowe rekordy mogą pochodzić od nowych danych w źródłowej bazie danych lub nowej wersji istniejącego juŜ w hurtowni rekordu. To, jak często będzie dokonywana aktualizacja zaleŜy najczęściej od potrzeb analizy oraz od częstotliwości raportowania z hurtowni danych. Właściwie moŜna ze względu na przebieg procesu aktualizacji podzielić hurtownie na dwie kategorie: hurtownie aktualizowane cyklicznie z ustalonym interwałem oraz hurtownie czasu rzeczywistego, czyli takie w których dane źródłowe pojawiają się z minimalnym opóźnieniem w hurtowni danych. Przechowywanie historycznych danych Hurtownie na ogół muszą umoŜliwiać analizę zarówno danych bieŜących, jak i historycznych. O ile przechowywanie danych aktualnych nie stanowi problemu, o tyle dane historyczne mają wpływ na strukturę tabel w hurtowni danych. Aby zapobiec nadpisywaniu przez nowsze wersje rekordów starszych wersji projektanci hurtowni umieszczają w tabelach wymiarów klucze sztuczne (tzw. surrogate key) - kolumny, które na ogół są typu liczby całkowitej z włączoną autonumeracją i pełnią rolę kluczy głównych w tabelach wymiarów. Implementacja aktualizacji danych Do aktualizacji hurtowni danych wykorzystywane są narzędzia ETL. Właściwie kaŜde narzędzie ETL posiada mechanizmy dedykowane pod aktualizacje danych w hurtowni. Mechanizmy te pozwalają między innymi wyizolować te wiersze w tabelach wymiarów, które zmieniły się od ostatniej aktualizacji danych. Bazy danych 287 ETL w relacyjnych bazach danych Zastosowania narzedzi ETL Wymagania stawiane narzedziom ETL ETL to skrót od słów Extract Transform Load - w tłumaczeniu na język polski Wypakuj Przekształć Załaduj. Pod tym skrótem kryje się klasa narzędzi do transferu danych. Narzędzia te znajdują szereg zastosowań w pracy z bazach danych - od prostego transferu danych między bazami do zaawansowanych operacji pozwalających na wypełnienie hurtowni danych. W codziennej pracy z danymi narzędzia ETL mogą wypełniać wiele rozmaitych zadań. Wszystko zaleŜy od moŜliwości i wydajności oferowanej przez narzędzie. 288 Bazy danych Zastosowania narzędzi ETL Standardowe zastosowania ETL w pracy z relacyjnymi bazami danych to: • • • • • • proste kopiowanie danych między tabelami, bazami danych, serwerami, transfer danych między heterogenicznymi (róŜnymi) źródłami danych, np. między róŜnymi SZBD, transfer obiektów między bazami danych (np. transfer procedur składowanych), transfer obiektów między serwerami (np. transfer loginów), scalanie rozproszonych danych, zasilanie hurtowni danych. Wymagania stawiane narzędziom ETL Dobre narzędzie ETL spełnia pewne wymagania, jakie stawia się dziś narzędziom tej klasy. Oto niektóre z tych wymagań: • • • • • • wydajność - często okno czasowe, które jest dostępne do wykonywania transferu danych jest coraz mniejsze, łatwość obsługi - narzędzie powinno oferować graficzny interfejs uŜytkownika i umoŜliwiać szybkie budowanie rozwiązań, bogactwo funkcji - im więcej moŜna w prosty sposób osiągnąć przy pomocy narzędzia, tym lepiej, niska cena - niektórzy producenci dołączają do SZBD bezpłatne narzędzia ETL, moŜliwości utrwalenia i cyklicznego powtarzania procesu transferu danych, moŜliwości wykorzystania narzędzia do wykonywania rutynowych czynności administracyjnych. Rys. 15.2 Integration Services - narzędzie ETL w systemie Microsoft SQL Server 2005 Bazy danych 289 ETL a hurtownie danych Scalanie danych Oczyszczanie danych Odswiezanie danych Jednym z podstawowych zastosowań narzędzi ETL jest zasilanie danymi hurtowni danych. Proces tworzenia hurtowni danych, w którym wykorzystywane są narzędzia ETL przedstawiony jest na poniŜszym rysunku. Rys. 15.3 Proces tworzenia hurtowni danych 290 Bazy danych PowyŜszy proces przebiega w kilku fazach: • • • • • • pobranie danych z wielu źródeł, "oczyszczanie" danych, ustalenie jednej struktury danych, zapisanie danych we wspólnym magazynie, budowa struktur Data Mining, raportowanie i udostępnianie danych. Scalanie danych Jednym z pierwszych etapów tworzenia hurtowni danych jest scalanie danych. Hurtownia danych często słuŜy do zgromadzenia danych pochodzących z róŜnych źródeł - baz danych, plików binarnych i tekstowych, plików XML, arkuszy kalkulacyjnych. Narzędzia ETL umoŜliwiają transformacje danych, to znaczy pomagają w takim transferze danych, dzięki któremu dane mające pierwotnie róŜną strukturę są umieszczane w jednej bazie danych. Oczyszczanie danych Dane, które mają być wstawione do hurtowni danych, bardzo często wymagają wstępnego przygotowania, tak zwanego "oczyszczenia". Operacja ta polega na przefiltrowaniu danych i odrzuceniu niepoprawnych zapisów (chodzi między innymi o przypadkowe zapisy danych, powtarzające się rekordy itd.). Problem "brudnych danych" dotyczy zarówno plików tekstowych (głównie ich, poniewaŜ często mają nieustandaryzowaną strukturę), jak i baz danych. OdświeŜanie danych Co pewien czas kaŜda hurtownia przyjmuje nowe porcje danych (niektóre hurtownie funkcjonują niemal w czasie rzeczywistym, to znaczy, Ŝe zmiany są transferowane z baz relacyjnych zaraz po ich wstawieniu). Większość narzędzi ETL posiada specjalne mechanizmy, które obsługują ten proces poprzez umoŜliwienie rozpoznawania istniejących w hurtowni danych i importowanie tylko zmian lub nowych rekordów ze źródłowych magazynów danych. Bazy danych 291 Podsumowanie Tworzenie hurtowni danych Aktualizacja danych ETL w relacyjnych bazach danych ETL a hurtownie danych Relacyjne bazy danych, na skutek rozproszenia danych między duŜą ilość tabel, nie są wydajnym źródłem dla raportów. O wiele lepiej w systemach raportowych sprawdzają się hurtownie danych. Hurtownie są takŜe znakomitym źródłem danych dla wielowymiarowych baz analitycznych OLAP. Metodologia projektowania hurtowni jest zatem waŜną umiejętnością dla osób pracujących z systemami bazodanowymi. Narzędzia ETL pełnią waŜną funkcję w procesie budowy i obsługi hurtowni danych. Są takŜe elementem SZBD pomocnym administratorom przy ich codziennej pracy z bazami danych. Dzięki swoim moŜliwościom znajdują coraz więcej zastosowań. Z pewnością będą one cały czas rozwijane i integrowane z SZBD, poniewaŜ posiadanie takiego narzędzia moŜe być powaŜnym atutem kaŜdego systemu. 292 Bazy danych Laboratorium W tym ćwiczeniu zapoznasz się ze strukturą hurtowni danych AdventureWorksDW, w szczególności z podzestawem tabel do analizy sprzedaŜy. Bazy danych 293 Tworzenie hurtowni danych Krok 1 - Tworzenie diagramu dla problemu biznesowego ► ► ► ► ► ► ► ► ► ► Zaloguj się do maszyny wirtualnej ZBD jako uŜytkownik Administrator z hasłem P@ssw0rd. Kliknij Start. Z grupy programów Microsoft SQL Server 2005 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. W oknie Object Explorer po lewej stronie ekranu rozwiń folder Databases. Rozwiń folder bazy AdventureWorksDW. Kliknij prawym przyciskiem myszy na folderze Database Diagrams. Na ewentualne pytanie programu o tworzenie niezbędnych obiektów odpowiedz Yes. Z menu kontekstowego wybierz New Database Diagram. W oknie Add Table trzymając wciśnięty klawisz Control kliknij na tabelach: DimCustomer, DimProduct, DimProductCategory, ProductDimSubcategory, DimTime i FactInternetSales. Kliknij Add. Rys. 15.4 Dodawanie tabel do diagramu bazy danych ► Kliknij Close. 294 Bazy danych Rys. 15.5 Diagram data mart ► Zapisz diagram jako InternetSalesDiagram. Przyjrzyj się utworzonemu diagramowi pojemnika data mart (zajrzyj do wykładów, jeśli obce jest Ci to pojęcie). PowyŜszy rysunek przedstawia uproszczony diagram. Odpowiedz na poniŜsze pytania. Krok 2 - Analiza struktury data Mart Pytanie: Ile tabel faktów zawiera data mart, którego diagram stworzyłeś? Odpowiedź: jedną - FactInternetSales. Pytanie: Ile tabel wymiarów zawiera data mart, którego diagram stworzyłeś i ile wymiarów te tabele implementują? Odpowiedź: data mart zawiera 5 tabel wymiarów; tabele te implementują 3 wymiary. Pytanie: Czy w data mart istnieje wymiar o strukturze płatka śniegu? Odpowiedź: tak, taką strukturę ma wymiar zbudowany z tabel DimProduct, DimProductCategory, ProductDimSubcategory. Pytanie: Czy czas w tabeli DimTime jest zorganizowany w jedną hierarchię? Odpowiedź: nie, w tabeli tej znajdują się takŜe kolumny, które tworzą inne hierarchie czasu niŜ rok kalendarzowy. Bazy danych 295 Krok 3 - Projektowanie zasilania hurtowni danymi Problem: Zastanów się, w jaki sposób wypełniłbyś danymi wspomniany data mart? Odpowiedź: Na początek naleŜałoby zaimportować dane do tabel wymiarów. Na ogół wystarcza do tego najprostsze zadanie transformacji. Do wygenerowania niektórych kolumn w tabeli DimTime najlepiej uŜyć procedury składowanej korzystającej z funkcji daty i czasu. Dane, które posłuŜą do zamapowania tabeli faktów do tabel wymiarów naleŜy najpierw zaimportować do tabeli pomocniczej o strukturze podobnej do struktury tabeli FactInternetSales, ale z kluczami obcymi podmienionymi na klucze aplikacji. Finalnym krokiem byłoby dokonanie złączenia tabeli pośredniej i tabel faktów w celu wstawienia do tabeli faktów odpowiednich kluczy i wartości miar. Jeśli czas Ci pozwoli, przyjrzyj się bazie danych AdventureWorks i postaraj się wykonać hurtownię danych z jednym pojemnikiem data mart (powiedzmy analiza sprzedaŜy), do której moŜnaby zaimportować dane z tej bazy. 296 Bazy danych Proste transfery danych przy uŜyciu ETL W tym ćwiczeniu dokonasz prostego tranferu danych przy uŜyciu narzędzia Import/Export Wizard. Transfer będzie polegał na skopiowaniu struktury i zawartości tabeli Production.Product do nowej tabeli Production.ProductCopy. Krok 1 - Realizacja transferu danych ► ► ► ► ► ► Zaloguj się do maszyny wirtualnej ZBD jako uŜytkownik Administrator z hasłem P@ssw0rd. Kliknij Start. Z grupy programów Microsoft SQL Server 2005 uruchom SQL Server Management Studio. W oknie logowania kliknij Connect. W oknie Object Explorer (po lewej stronie ekranu) rozwiń listę baz danych i kliknij prawym przyciskiem na bazie AdventureWorks. Z menu kontekstowego wybierz Tasks - Export Data.... W oknie SQL Server Export and Import Wizard kliknij Next. W oknie SQL Server Export and Import Wizard - Choose a Data Source kliknij Next. Rys. 15.6 Import/Export Wizard - wybór źródła danych ► W oknie SQL Server Export and Import Wizard - Choose a Data Destination z listy rozwijanej Database wybierz bazę AdventureWorks kliknij Next. Bazy danych 297 Rys. 5.7 Import/Export Wizard - wybór magazynu docelowego dla transferu ► W oknie SQL Server Export and Import Wizard - Specify Table Copy or Query kliknij Next. Rys. 15.8 Import/Export Wizard - wybór rodzaju transferu ► ► W oknie SQL Server Export and Import Wizard - Select Source Tables and Views zaznacz w kolumnie Source tabelę [AdventureWorks].[Production].[Product], W kolumnie Destination wpisz [AdventureWorks].[Production].[ProductCopy] (patrz rysunek poniŜej) i kliknij Next. 298 Bazy danych Rys. 15.9 Import/Export Wizard - opcje wykonania i zapisu pakietu Import/Export Wizard pozwala na zapisanie pakietu Integration Services. Dzięki temu moŜna klikając w szybki sposób stworzyć prosty szablon pakietu. ► W oknie SQL Server Export and Import Wizard - Save and Execute Package kliknij Next. Rys. 15.10 Import/Export Wizard - wybór źródła danych Bazy danych ► 299 W oknie SQL Server Export and Import Wizard - Select Source Tables and Views kliknij Finish. 12. Po zakończeniu transferu danych kliknij Close. Rys. 15.11 Import/Export Wizard - potwierdzenie wykonania transferu Krok 2 - Weryfikacja operacji ► OdświeŜ w programie SQL Server Management Studio listę tabel w bazie danych AdventureWorks (zaznacz folder Tables w tej bazie danych i wciśnij F5) i sprawdź, czy istnieje tabela Production.ProductCopy (klikając na tej tabeli prawym przyciskiem i wybierając Open Table moŜesz takŜe obejrzeć zawartość tabeli).