Jeszcze w czasach liceum lubiłem wrócić po szkole i wcielić się w managera klubu piłkarskiego. To był niesamowity fun zarządzania, wygrywania meczy, kupowania zawodników. Budowania potęgi klubu. 

Albo zagrać w ulubioną strategię i odkrywać nowe kontynenty, budować i rozwijać miasta. Podbijać inne cywilizacje albo z nimi współpracować. Doprowadzić moją cywilizację od epoki kamienia łupanego do XXI wieku.

Wyobraź sobie, że Ty zostajesz takim managerem. Niestety tylko dla potrzeb tego artykułu. 

Skupmy się na firmie technologicznej. Pewnie masz ulubioną, której produkty posiadasz albo sam taką tworzysz.

Taka spółka to wiele produktów, procesów i ludzi. Dużo firm, z którymi współpracujesz. I jeszcze więcej systemów informatycznych, które przechowują dane.

Na przykład jeden system ma dane o fakturach, drugi zamówieniach, trzeci o pracownikach, czwarty monitoruje co się dzieje na świecie i co robi konkurencja, piąty o procesie produkcji, szósty przechowuje stany magazynowe, siódmy dane o klientach.

Jeden system nie daje wystarczających informacji niezbędnych do podjęcia decyzji.

Co w takim razie można zrobić?

Dwa pomysły

Co zrobić, gdy jeden system nie daje całościowego obrazu, żeby podjąć decyzję? Jak odpowiedzieć kto jest najlepszym klientem w tym roku? A kto był w poprzednim? Ile było zamówień i ile jest zamówień w trakcie realizacji, czy można je przyspieszyć? Czy można zaproponować rabat na usługi?

Pomysł nr 1

Integracji istniejących systemów w jeden i zbudowania jednego wielkiego systemu, który będzie zawierał wszystkie te funkcje? Całkiem możliwe, że zbudowanie takiego systemu potrwa lata, pochłonie całkiem duże pieniądze i zakończy się powstaniem jeszcze jednego systemu, który trzeba będzie utrzymywać i nie spełni pokładanych w nim nadziei. 

Dla jasności tego wpisu nie będziemy eksplorować tej opcji.

Pomysł nr 2 - Hurtownie danych

Możliwe jest też zbudowanie innego systemu. Zbudowanie go na samej górze istniejących. Ten program będzie zbierał, integrował i syntezował dane różnych systemów. 

Tylko spokojnie. Nie będzie zbierał wszystkich danych. Tylko to co jest potrzebne, będzie rósł jak będzie zyskował uznanie użytkowników i będzie oszczędzał im czas na zrobienie czynności, które do tej pory były prawie niewykonalne albo manualne i czasochłonne. 

Powstanie system, który ma dużo danych ale właściwych danych.

Data Warehouse (DWH) albo po polsku hurtownie danych to system integrujący dane z wielu źródeł danych w jednym miejscu. Dane są załadowane na potrzeby analizy i raportowania. Raporty i analizy pomagają podejmować lepsze decyzje w organizacji.

Kimball definiuje hurtownie danych jako: kopie danych transakcyjnych, stworzone w strukturze optymalnej do wykonywania zapytań i analiz.

Te wiele źródeł danych wymienione powyżej to na przykład inne systemy (bazy danych), pliki albo dane nieustrukturyzowane.

Trochę technikaliów

Dobrze się domyślasz, że hurtownie danych do taka duża baza danych, tylko trochę inna. Projektowana w inny sposób i w innym celu.

W systemie transakcyjnym możesz sobie wyobrazić schemat taki jak ten:

hurtownia danych

Gdzie dane miast, województw i krajów są rozbite na 3 osobne tabele, żeby: 

  • Nie duplikować danych
  • Przyspieszyć manipulacje na danych (wstawianie, usuwanie i modyfikację)
  • Zminimalizować miejsce zajmowane przez dane 

Zdenormalizowany schemat stworzony dla potrzeb DWH wyglądałby mniej więcej tak:

A tak prezentowałyby się przykładowe dane:

hurtownie danych

Jest on zoptymalizowany dla analizy i odczytu danych. Złączenia (joins) z tą tabelą i tabelą faktów są prostsze, są to połączenia z jedną tabelą a nie z trzema. Taki schemat pomaga też zbudować gwiazdę w data martach, co skraca czas odczytu danych.

Hurtownie danych - zalety

DWH upraszcza analizę i raportowanie, gdyż wykonuje za użytkownika pracę, którą on do tej pory musiałby wykonać ręcznie.

Integracja (integration) - łączenie danych z wielu systemów. W jednym miejscu przechowywane są dane z wielu systemów do wystawiania faktur.

Historyzacja (change data capture, albo slowly changing dimension) - czyli informacja o zmianach na przykład danych klienta albo zmiany stanu zamówienia.

Wydajność (performance) - odciąża systemy transakcyjne, analitycy albo business controllers (kontrola biznesu?), nie mają bezpośredniego dostępu do “żywych systemów”, gdzie na bieżąco przeprowadzane są operacje. Czyli nie pogarszają ich wydajności uruchamiając wyszukane zapytania.

Czyszczenie danych (data cleansing) - usuwanie niewłaściwych albo zduplikowanych danych, odfiltrowywanie nieistotnych, znajdowanie duplikatów, monitorowanie błędnych danych (data quality), sprawdzanie kompletności danych..

“Migawki danych” (data snapshots) - czyli przechowujemy zmiany stanu, w określonych odstępach czasu. Na przykład codziennie odkładamy stan rekordu, dzięki temu można obserwować jak zmieniało się zamówienie w trakcie miesiąca i policzyć ile czasu było w jakim stanie. System transakcyjny zazwyczaj przechowuje tylko najbardziej aktualną wersję rekordu.

MDM (Master data management) - Hurtownia może posiadać warstwę wspólną, z której korzysta wiele departamentów. Będzie tam miejsce dla danych o kursach walut, klientach, produktach. Tak zwany: one single point of truth.

Przepływ danych (data lineage) - czyli możemy zbadać z jakiego systemu pochodziły dane. Bardzo pomocne przy śledzeniu jaki system dostarcza dane nie najlepszej jakości albo gdzie zazwyczaj pojawiają się opóźnienia (brak danych w oczekiwanym czasie).

Rozumiem, że to co jest powyżej nie wyczerpuje tematu ale to jest tylko początek na zaostrzenie apetytu.

Zapisz się na newsletter, aby otrzymywać informacje o wpisach.

DWH nie takie do końca zalety

Wyobrażasz sobie zapewne, że zbudowanie systemu, który prezentuje wszystko o każdym zakamarku firmy to wielka konsumpcja zasobów: finansowych, czasowych i ludzkich.

Ale zadaj sobie pytanie czy potrzebujesz wiedzieć wszystko o każdym zakamarku? Czy może potrzebujesz wiedzy o kluczowych wskaźnikach efektywności (KPI)?

Chciałbyś zobaczyć firmę z jednej strony z lotu ptaka z drugiej mieć widok 360 stopni.

I w razie potrzeby zejść od ogółu do szczegółu (drilldown).

Zapewne pomyślisz, dobrze mam już zintegrowane dane i czy mogę je teraz wyeksportować do Excela i analizować?

To jest jedna z opcji, druga to zbudowanie warstwy prezentacji (raportów), które w wizualny i przejżysty sposób zaprezentują najważniejsze zagrożenia, szanse i powody do dumy.

Jakość danych - pomimo starań zespołu tworzącego rozwiązanie zapewnienie jakości danych to jest proces. Oczywiście, żeby monitorować jakość danych można napisać automatyczne skrypty (automated data quality checks). Ale poprawienie danych to czasem żmudna praca z systemem źródłowym