czwartek, 11 lutego 2010

Hurtownie danych

Hurtownia danych stanowy repozytorium służące do przechowywania i analizowania informacji numerycznych. Hurtownia danych przechowuje stabilne i zweryfikowane wartości danych. Do lepszego zrozumienia istoty hurtowni danych może okazać się pomocne poprzez porównanie kilku najważniejszych różnic pomiędzy hurtownią danych, a transakcyjną bazą danych.

Transakcyjna baza danych ułatwia ludziom realizowanie ich działań, podczas gdy hurtownia danych pomaga w tworzeniu planów. Transakcyjna baza danych może np. dostarczyć informacje o wolnych miejscach na wybrany lot, umożliwiając agentowi biura podróży utworzenie nowej rezerwacji. Z drugiej strony, hurtownia danych może pokazywać występujący w przyszłości wzór niewykorzystanych miejsc na poszczególne loty, umożliwiając menadżerowi linii lotniczych podjęcie decyzji, czy w przyszłości potrzebna będzie korekta rozkładu lotów, czy nie.

Transakcyjne bazy danych koncentrują się na szczegółach, podczas gdy hurtownie danych skupiają się na wysokim poziomie agregacji informacji. Dla przykładu, rodzic kupujący najnowszą popularną książkę dla dzieci nie dba o poziom zapasów magazynowych w Empiku, ale menadżer planujący reorganizację regałów w księgarni może być bardzo zainteresowany informacjami dotyczącymi ogólnego spadku sprzedaży tytułów o tematyce informatycznej. Implikacją tej różnicy jest fakt, że zdecydowana większość danych znajdujących się w hurtowni danych, to dające się sumować wartości numeryczne.

Transakcyjna baza danych jest zwykle projektowana dla potrzeb konkretnej aplikacji, podczas gdy hurtownia danych integruje dane pochodzące z różnych źródeł. Np. aplikacja służąca do przetwarzania zamówień – wraz ze swoją bazą danych – prawdopodobnie zawierać będzie szczegółowe informacje na temat rabatów udzielonych przy poszczególnych zamówieniach , ale nie będzie zawierać żadnej informacji o przekroczeniu kosztów produkcji. I na odwrót: aplikacja produkcyjna – wraz z jej bazą danych – prawdopodobnie zawierać będzie szczegółowe informacje na temat kosztów produkcji, natomiast nie będzie zawierać informacji o udzielonych podczas sprzedaży zniżkach. Połączenie w hurtowni danych tych dwóch źródeł danych pozwala na obliczenie faktycznej opłacalności sprzedaży danego produktu, być może ujawniając, że po zastosowaniu wszystkich rabatów, cena sprzedaży jest niższa od rzeczywistych kosztów produkcji, jednakże przy użyciu efektu skali ponoszone straty jednostkowe są rekompensowane.

Transakcyjna baza danych skupia się na teraźniejszości, natomiast hurtownia danych koncentruje się na zmienności w czasie różnego rodzaju aktywności. Np. w przypadku zwykłego konta bankowego, każda transakcja – tj. każda wpłata lub wypłata – powoduje ciągłe zmiany jego salda. System transakcyjny rzadko zachowuje historyczne wartości salda, a nawet dzienniki z zapisem poszczególnych transakcji są archiwizowane po upływie określonego czasu. W hurtowni danych można natomiast przechowywać wieloletnie zapisy danych transakcyjnych (być może w formie różnych zestawień) i możliwe jest przechowywanie migawkowego obrazu historycznych wartości salda. Pozwala to na porównanie działań podejmowanych dzisiaj z działaniami podejmowanymi w ubiegłym miesiącu lub w ubiegłym roku. Możliwość zapoznania się z danymi w szerszym horyzoncie czasowym jest krytycznym elementem procesu podejmowania decyzji, pozwalającym na odróżnienie stałych trendów od przypadkowych fluktuacji.

Transakcyjna baza danych ma charakter ulotny: zgromadzenie w niej informacje ulegają stałym zmianom w miarę składani i anulowania nowych zamówień, tworzenia i ekspedycji nowych produktów lub wykonywania nowych rezerwacji. Hurtownia danych jest natomiast stabilna: zgromadzone w niej informacje są aktualizowane w standardowych interwałach czasu – co miesiąc, co tydzień czy nawet co godzinę – w przypadku idealnym każda aktualizacja polega jedynie na dodaniu wartości dla nowego przedziału czasu bez modyfikowania wartości znajdujących się już wcześniej w hurtowni danych.

Transakcyjna baza danych musi zapewniać możliwości szybkiego pobierania i aktualizowania szczegółowych informacji: hurtownia danych musi zapewniać możliwość szybkiego pobierania informacji o wysokim stopniu uogólnienia. W konsekwencji optymalny projekt transakcyjnej bazy danych stanowi przeciwieństwo optymalnego projektu hurtowni danych. Ponadto wykonywanie zapytań w rzeczywistej, transakcyjnej bazie danych w celu tworzenia raportów dla kadry zarządzającej może doprowadzić do spowolnienia aplikacji transakcyjnej poniżej akceptowalnego poziomu.

Istnieją także inne powody tworzenia hurtowni danych, lecz te wymienione powyżej są kluczowe i powinny wystarczyć do przekonania każdego, że tworzenie hurtowni danych na potrzeby tworzenia raportów dla kadry zarządzającej jest dobrym rozwiązaniem.