Dobre dane to dobre decyzje

Na etapie wstępnych analiz trzeba określić poziom skalowalności systemu ETL. Należy też oszacować liczbę rekordów danych - przeznaczonych wkrótce do przetwarzania - oraz ewentualny wpływ tej liczby na umowy SLA. Zmianie może ulec czas pozyskania danych z systemów źródłowych, co sprawi, że na proces czyszczenia i ładowania do hurtowni będziemy mieli znacznie mniej czasu. Znaczenie ma też przyrost liczby danych i objętości komórek w poszczególnych rekordach, powodujący, że wkrótce nie będziemy przetwarzać pojedynczych terabajtów danych, ale ich dziesiątki.

"Projektując system ETL, trzeba zwracać uwagę na złożoność reguł czyszczenia danych, bo potrafią one znacznie ograniczyć wydajność" - mówi Konrad Mokrzański. Nigdy nie należy czyścić wszystkich danych w tym samym momencie procesu. Czasami można tak zaprojektować raportowanie, aby wybrane informacje były czyszczone na chwilę przed powstaniem raportu. Trzeba też odpowiednio rozłożyć priorytety czyszczenia danych. Tu każda firma indywidualnie określa swoją politykę.

Narzędzia

Proces ETL może być zapro-gramowany praktycznie w dowolnym języku, ale tworzenie go od początku jest dość skomplikowane i nieopłacalne. Na rynku jest dużo narzędzi, które ułatwiają zaprojektowanie procesu ETL. Dobre narzędzie ETL musi komunikować się z wieloma różnymi relacyjnymi bazami danych i odczytywać masę różnych formatów plików. Wielu dostawców narzędzi ETL ma teraz także profilowanie danych, badanie ich jakości i przypisywanie znaczników metadanych.

Oprócz samego narzędzia, do wdrożenia procesu ETL konieczne będzie też zaimplementowanie słowników. Na rynku jest kilka firm tworzących słowniki, ich autorami często są firmy partnerskie, realizujące wdrożenia baz danych. Ale wielokrotnie słowniki tworzą też sami klienci - użytkownicy końcowi.

Co zrobić, żeby nie czyścić?

O jakość danych, ich odpowiedni model oraz zależności biznesowe trzeba zadbać już na etapie budowania repozytorium. Jeżeli już na początku do systemu trafią dane poprawne, to na etapie przenoszenia ich do hurtowni danych unikniemy stresu i zagwarantujemy lepszą wydajność całego systemu, który nie będzie musiał skupiać się na naprawianiu danych.

"Już na etapie wprowadzania danych do aplikacji użytkownik powinien mieć możliwość ich weryfikacji, np. poprzez wybieranie danych ze słownika, a nie wprowadzanie ręczne" - twier-dzi Andrzej Frydecki. Ale projektując taki system, trzeba zastanowić się nad modelem tych danych. Należy unikać duplikowania się tych samych danych (listy klientów itp.) w różnych miejscach. W przeciwnym razie szybko może dojść do znacznych niespójności między tymi danymi. "Naszym celem jest posiadanie tylko jednej wersji prawdziwych danych, co w rezultacie przekłada się na lepszą jakość podejmowanych decyzji biznesowych" - twierdzi Andrzej Frydecki.

Tę opinię potwierdza Konrad Mokrzański. Jego zdaniem, aby uniknąć procesu czyszczenia danych, należy zadbać o ich odpowiednią jakość na wejściu. "Najważniejszy element to słownikowanie danych - daje największą skuteczność, zabraniając człowiekowi wprowadzania informacji, które już raz zostały zapisane w systemie. Pracownik oczywiście ma możliwość ręcznego wprowadzania informacji, ale wówczas takie dane trafiają także do słownika, uzupełniając go" - tłumaczy Konrad Mokrzański. Wtedy trzeba też ustanowić organ, zespół, który będzie kontrolował poprawność danych umieszczonych w słowniku.

Operacje w procesie czyszczenia danych:
  • Wybór konkretnych kolumn do załadowa-nia lub wskazaniepustych kolumn jako nie przeznaczonych do załadowania.
  • Tłumaczenie określonych wartości, m.in. gdy system źródłowy oznacza kobietę i mężczyznę jako 1 i 2, a system docelowy jako K i M.
  • Kodowanie dowolnych wartości - oznaczanie jednym symbolem wyrażeń występujących w różnych formach, np. "Kobieta", "Female" czy "1" jako "K".
  • Wprowadzanie przeliczonych wartości, np. wartość sprzedaży = ilość * cena za sztukę.
  • Łączenie danych z różnych źródeł.
  • Sumowanie różnych rekordów z danymi, m.in. łączna sprzedaż dla każdego sklepu i każdego regionu.
  • Przekształcanie i obracanie, np. zmiana kolumn w wiersze itp.
  • Dzielenie kolumny na wiele kolumn, m.in. rozdzielanie zapisów oddzielonych średnikami, umieszczonych w jednym polu, na indywidualne kolumny.

TOP 200