Zagadnienia

11. Hurtownie danych

Tradycyjne bazy danych są skonfigurowane na wiele małych, prostych zapytań. Rozpowszechnienie baz danych spowodowało jednak zainteresowanie wykorzystaniem zgromadzonej informacji nie tylko do obsługi codziennej działalności, lecz także do analiz statystycznych i wspierania podejmowania decyzji o znaczeniu strategicznym dla firmy.

Takie nowe aplikacje używają mniej, ale bardziej czasochłonnych i złożonych zapytań. Ale za to operują na większych bazach danych, często obejmujących materiał wieloletni.

Powstały więc nowe architektury przeznaczone do efektywnej obsługi złożonych zapytań analitycznych.

11.1. Hurtownia danych

Zanim jednak zaczniemy analizować dane należy je ze sobą połączyć. Informacja bowiem może pochodzić z rozmaitych operacyjnych baz danych. Proces łączenia takiej często niejedorodnej informacji nazywamy integracją danych.

Najpopularniejszy sposób integracji danych to użyciw hurtowni danych. Kopiujemy dane źródłowe z operacyjnych baz danych do pojedynczej zbiorczej bazy danych (hurtowni) i dbamy o ich aktualność.

Aktualność osiąga się przez doładowanie: okresową rekonstrukcję hurtowni (np. w nocy lub na koniec tygodnia), polegającą na jej uzupełnieniu o nowe dane.

Hurtownie są często używane bezpośrednio do obsługi zapytań analitycznych, lepiej jednak tworzyć z nich specjalizowane tematyczne bazy danych.

11.2. OLTP

Większość codziennych operacji na operacyjnej bazie danych to On-Line Transaction Processing (OLTP): krótkie, proste i częste zapytania lub modyfikacje, każde dotyczące niewielkiej liczby krotek.

Przykłady: odpowiedzi na zapytania z interfejsu WWW (np. o rozkład jazdy pociągów, bankomaty, sprzedaż biletów lotniczych.

11.3. OLAP

Obecnie rośnie znaczenie programów typu On-Line Analytical Processing (OLAP). Zawierają one niewiele zapytań, ale dużo bardziej złożonych — ich przetwarzanie może trwać godzinami.

Zapytania takie przy tym nie wymagają bezwzględnie aktualnej bazy danych, bowiem zwykle służą poszukiwaniu ogólnych prawidłowości.

Integralność danych zapewniana podczas konstrukcji (lub doładowania)

  • Później sprawdzanie integralności zbędne, bo tylko zapytania (bez modyfikacji).

  • Brak transakcji.

Przykłady aplikacji OLAP

  • Amazon analizuje zamówienia swoich klientów, aby wyświetlić im ekran powitalny z produktami z zakresu ich zainteresowań.

  • Analitycy w Wal-Mart szukają towarów z rosnącą sprzedażą w jakimś regionie. Pojęcie o skali aplikacji daje informacja o używanym sprzęcie: system Teradata z 900 CPU, 2700 dysków, 23 TB pamięci dyskowej.

Typowa architektura

  • Lokalne bazy danych w oddziałach obsługują OLTP.

  • Nocą kopiuje się lokalne bazy danych do centralnej hurtowni danych.

  • Analitycy używają hurtowni do zapytań OLAP.

Co to jest hurtownia?

  • Kolekcja rozmaitych danych

    • zorientowana tematycznie

    • przeznaczona dla menadżerów, do podejmowania decyzji

    • często kopia danych operacyjnych

    • z dodatkowymi informacjami (np. podsumowania, historia)

    • zintegrowana

    • zmienna w czasie

    • nieulotna

  • Kolekcja narzędzi do:

    • zbierania danych

    • czyszczenia i integracji danych

    • analizy i raportowania

    • monitorowania i zarządzania hurtownią

Konieczność integracji danych

  • Obecnie duże firmy (np. banki, towarzystwa ubezpieczeniowe) posiadają co najmniej kilka operacyjnych baz danych.

  • Obok własnych danych operacyjnych często korzysta się również ze źródeł zewnętrznych: wyników badań rynkowych, publicznych administracyjnych baz danych itp.

  • Zanim więc przystąpi się do analizy zawartej w nich informacji, należy dokonać integracji danych z różnych źródeł.

Integracja danych

  • Informacje ze źródłowych (najczęściej operacyjnych) baz danych są łączone w zbiorczą bazę danych, nazywaną hurtownią danych (data warehouse).

  • Oddzielenie od systemów operacyjnych umożliwia operowanie również danymi historycznymi — potrzebne np. do analizy trendów.

Realizacja hurtowni danych

  • Dwa sposoby realizacji:

    • Realna zbiorcza baza danych wraz procedurami okresowego doładowywania nowymi informacjami źródłowymi.

    • Hurtownia wirtualna, oparta na koncepcji mediatora i wrapperów.

Wybór źródeł danych

  • Idealnym rozwiązaniem przy wyborze danych do załadowania do hurtowni danych byłoby wstępne określenie wszystkich zapytań, które będą generowane przez aplikacje odpalone na hurtowni danych i ustalenie wszystkich tabel i pól zawartych w tych zapytaniach.

  • Zaletą hurtowni wirtualnej jest możliwość zbadania, jakie dane źródłowe są potrzebne w używanych zapytaniach.

  • Po przeanalizowaniu logów wygenerowanych przez zapytania z wszystkich aplikacji łatwiej określić schemat hurtowni.

Łączenie danych

  • Łączenie to okazja do usunięcia błędów.

  • Przede wszystkim jednak dane są uspójniane.

  • Przykład: pole klient możę

    • w jednej z baz oprócz imienia i nazwiska obejmować tytuł (np. ,,prof.”),

    • w drugiej na tytuł jest przeznaczone osobne pole,

    • a w trzeciej imię i nazwisko trzymane są w osobnych polach, a tytułu brak.

  • Czyszczenie danych obejmuje też przeformatowanie danych i eliminację duplikatów.

Kroki budowy hurtowni

  1. Analiza źródłowych danych pod względem rozmieszczenia, spisanie rodzaju i zawartości danych.

  2. Projekt hurtowni danych zawierający spis dostępnych źródłowych baz danych wraz z narzędziami scalającymi.

  3. Wydobywanie odpowiednich danych z baz źródłowych, przekształcenie wydobytych danych tak aby pasowały do zaprojektowanej hurtowni danych. Załadowanie przekształconych danych do hurtowni danych.

Słownik (repozytorium) metadanych

Zawiera informacje:

  • skąd pochodzą dane (z jakiej bazy danych i jakiej tabeli);

  • co reprezentują, np. kolumna salesyr to ,,roczna sprzedaż brutto towaru wyrażona w złotych”;

  • jak dane są przechowywane (format zapisu), np. salesyr jako fixed-decimal;

  • kto odpowiada za aktualizację danych (dział/rola), np. ,,księgowość”;

  • kiedy dana jest zwykle zmieniana, np. ,,na koniec każdego roku”.

11.3.1. Problem jakości danych

Większość przedsiębiorstw nie ma najmniejszego pojęcia o jakości swoich danych i jest zawsze naiwna w tym względzie. Dopiero przy próbie integracji kilku źródeł danych wychodzą na jaw rozmaite błędy.

Analizując jakość danych (lub jej brak) dobrze jest wprowadzić kategorie usterek w danych. Dane mogą być:

  • Brakujące (lub częściowo brakujące)

  • Błędne

  • Nieaktualne

  • Niespójne

  • Wprowadzające w błąd

Brakujące dane są stosunkowo łatwe do wychwycenia, trudniej jest natomiast je poprawiać. Dane błędne mogą być trudniejsze do wykrycia, choć ich poprawianie może czasem być łatwiejsze.

Dane wprowadzające w błąd mogą wystapić, gdy robione są zmiany retrospektywne, a reprezentacja czasu nie jest poprawna. Dzieje się tak na przykład, gdy nastąpi zmiana adresu i (z uwagi na niepoprawne zastosowanie retrospekcji) nowy ades jest mylnie stosowany do poprzednich danych.

Błędne dane

  • Wartości spoza zakresu poprawności. Są one zwykle łatwe do rozpoznania.

    • Ten typ błędu zdarza się, kiedy, powiedzmy, płeć klienta, która powinna mieć wartość ”F” lub ”M”, zawiera inną wartość, taką jak ”X”.

    • Odnosi się to także do wartości numerycznych, takich jak wiek. Poprawne wartości mogłyby byćzdefiniowane między 18 a 100 lat. Jeśli wiek znajduje się poza tym zakresem, to uznaje się, że wystąpił błąd.

  • Błędy referencyjne. Jest to każdy błąd naruszający więzy spójności referencyjnej.

  • Błedy poprawności. Są to błędy w danych niemal niemożliwe do wykrycia: wartości, które po prostu zostały wstawione niepoprawnie, ale są z zakresu poprawności. Na przykład wstawiono wiek klienta jako 26, podczas gdy powinno być 62. Błędy takie pochodzą z operacyjnych baz danych i w zasadzie tam właśnie powinny być korygowane.

Ujednolicenie danych

Jednolitość jest problemem dla wielu przedsiębiorstw, zwłaszcza tych, które używają różnych typów narzędzi.

  • Niektóre różnice dotyczą kwestii podstawowych, jak choćby kodowanie znaków.

    • W większości systemów stosuje się kod ASCII (American Standard Code for Information Interchange).

    • Są jednak wyjątki. IBM oparł wszystkie systemy ,,mainframe” na całkowicie odmiennym kodowaniu znaków, zwanym EBCDIC (Extended Binary Coded Decimal Interchange Code).

    • Litera ,,P” w kodzie ASCII ma wartość dziesiętną 80, a w EBCDIC wartość 215 (znakiem, który ma wartość 80 w EBCDIC jest ,,&”).

  • Inne róźnice dotyczą dat. Większość systemów zarządzania bazami danych obsługują typ ”Date”, ale format przechowywania jest zależny od DBMS.

  • Jeszcze subtelniejsze są różnice wewnątrz różnych aplikacji tworzonych przy użyciu tych samych narzędzi.

    • Może się to na przykład zdarzyć, żę jeden z projektantów postanowi zapisywać adresy klientów w pięciu polach po 25 znaków każde, inny zaś zdecyduje się gromadzić je w jednym polu typu Varchar(100).

    • Kolor czarny w jednej aplikacji reprezentuje się napisem ”BLACK”, w drugiej napisem ”BL”, a w trzeciej ”BL” oznacza kolor niebieski.

  • Różnice semantyczne: w jednej bazie danych odróżnia się półciężarówki od mikrobusów, a w drugiej nie.

  • Katalogi nazw i adresów pozwalają naprawić błędy przy wprowadzaniu danych i pozwolą uzupełnić brakujące informacje takie jak kod adresowy, powiat itp.

  • Takie naprawianie typowych błędów wymaga jednak interwencji człowieka, który zatwierdzi poprawki programu.

Problem wydajności i skalowalności

  • Relacyjne bazy danych używają metod przyśpieszania dostępu takich jak haszowanie lub indeksy do wybrania małej liczby pożądanych rekordów bez potrzeby skanowania całej tabeli lub bazy danych.

  • Takie metody przyśpieszania dostępu są wysoce efektywne w odpowiedziach na zapytania o pojedyncze pole (lub małą liczbę pól), kiedy wynikiem jest niewielka część całej tabeli.

  • Przykładem takich zapytań jest: ,,znajdź wszystkich 25 letnich programistów”.

  • Odpowiedzi na takie zapytania są szybkie, gdyż może być stworzony indeks dla kolumny ,,wiek” lub kolumny ,,zawód”.

  • Klasyczne metody dostępu sa mało pomocne w odpowiedziach na zapytania, których rezultatem jest znaczna część tabeli.

  • Przykładem jest ,,znajdź wszystkich młodych pracowników”.

Treść automatycznie generowana z plików źródłowych LaTeXa za pomocą oprogramowania wykorzystującego LaTeXML.

Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego.

Projekt współfinansowany przez Ministerstwo Nauki i Szkolnictwa Wyższego i przez Uniwersytet Warszawski.