2 Podczas prowadzonych przez nas wdrożeń narzędzi Business Intelligence, bardzo często spotykamy się z problemem nieadekwatnego do naszych potrzeb układu danych źródłowych. Mniejsze czy większe niedopasowanie występuje niemal w każdym projekcie, dlatego postanowiłem zebrać i opisać najczęściej występujące problemy wdrożeniowe. Mam nadzieję, że powstanie w ten sposób rodzaj „przewodnika”, który pomoże Czytelnikom zarówno dobrze wybrać, jak też dobrze wdrożyć odpowiednie dla nich narzędzie Business Intelligence. Zauważyliśmy 10 najczęściej występujących problemów z danymi – postaram się je szerzej omówić w dwóch kolejnych numerach Controllingu i Zarządzania. Są to: 1. 2. 3. 4. 5. 6. Brak danych. Scalenie i nałożenie na siebie danych z różnych systemów (różne obszary merytoryczne). Scalenie danych bieżących z archiwalnymi (np. przy zmianie systemu informatycznego). Deduplikacja danych (jeden kontrahent w pięciu postaciach, literówki itp.). Mapowanie danych (np. wyciągnięcie wymiarów z konta księgowego, grupowanie produktów). Umożliwienie ewidencji historii zmian danych (gdy potrzebujemy np. znać stan Rachunku Wyników wg danych na określony dzień). 7. Brak dedykowanych mechanizmów uzupełniających przeliczeń (np. alokacji, czy kalkulacji kosztów). 8. Wyliczanie stanów na dany dzień (historii) – stany magazynowe, stan zatrudnienia, stany należności i zobowiązań. 9. Cache’owanie danych historycznych dla typowych / częstych zapytań / raportów. 10. Rozdzielenie danych bieżących i archiwalnych – problem wydajności. Najgorzej jest oczywiście wtedy, gdy danych … po prostu nie ma. Wtedy zostaje nam albo pogodzenie się z tym stanem rzeczy, albo stworzenie jakiegoś obejścia, zastępczej ewidencji, która przynajmniej częściowo taką lukę uzupełni. Trzeba tu jednak bardzo uważać, aby nie wpaść w pułapkę „Excelozy”, czyli zjawiska, w którym firma obrasta setkami arkuszy Excela, pełniących de facto rolę pomocniczych baz danych. (Ostatnio w jednym z zapytań ofertowych pojawiło się zagadnienie „Zapewnienia bezpieczeństwa nieformalnych źródeł danych”…). „Exceloza” jest o tyle groźna, że często owe „pomocnicze” arkusze stają się de facto źródłami absolutnie krytycznych dla funkcjonowania Firmy informacji – w praktyce niezabezpieczonymi w jakikolwiek sposób. Wiele razy widziałem takie pliki z rejestrami np. podpisanych umów, terminami wygaśnięcia kontraktów serwisowych, warunkami gwarancyjnymi dla poszczególnych Klientów, czy kolejnymi wersjami cenników produktów – leżały sobie spokojnie na ogólnodostępnym dysku, niezabezpieczone przed utratą, skopiowaniem, czy nieautoryzowanym dostępem… Żeby było jasne – nie ma nic złego we WPISYWANIU danych przy pomocy EXCELA (jest to nawet bardzo wygodne narzędzie do tego celu), groźne może być na dłuższą metę PRZECHOWYWANIE danych w tym narzędziu. Plik można utracić znacznie łatwiej niż serwerowe repozytorium bazy danych … Zatem zalecane przez nas rozwiązanie problemu braku pomocniczych ewidencji, to tworzenie ich tak, aby dane trafiały do bezpiecznej bazy danych (a narzędziem do ich wprowadzenia może być oczywiście nasz poczciwy EXCEL, przeglądarka www, czy jakakolwiek inna postać formularza). Dane będą bezpieczniejsze, a ich wykorzystanie w narzędziach BI znacznie łatwiejsze, stabilniejsze i dające się zautomatyzować. NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 3 To się zdarza bardzo często – potrzebujemy skonfrontować ze sobą dane o sprzedaży i płatnościach, sprzedaży i reklamacjach, zamówieniach i stanach magazynowych, sprzedaży i liczbie wizyt u danego Klienta, zamówieniach i produkcji itp. Często „u źródła” występują one w różnych bazach danych, różnych formatach. Nawet gdy wszystko dzieje się w obrębie jednego zintegrowanego pakietu, bardzo często ta sama kolumna w różnych tabelach nosi różne nazwy itp. Większość współczesnych narzędzi BI ma możliwość łączenia danych z różnych źródeł, jest to łatwiejsze, lub trudniejsze – dość ciekawie rozwiązano rzecz w Tableau. Jest tam wbudowanych ok. 50 sterowników do różnych źródeł danych, ale co ciekawe, w jednym tzw. ekstrakcie danych możemy nakładać na siebie tabele pochodzące z różnych źródeł. Wówczas nasz model danych może wyglądać na przykład tak: Jak widzimy, w jednej analizie nakładamy na siebie tabele z danymi sprzedażowymi z bazy Oracle, danymi o Klientach i produktach z MS SQL SERVER i pomocnicze dane demograficzne z … arkusza EXCELA. Tabele możemy łączyć różnymi relacjami (czyli definiować, która tabela „filtruje” którą – czy „Lewa Prawą”, czy „Prawa Lewą”, czy bierzemy część wspólną z obu, czy bierzemy pełen zakres obu tabel – wtedy mamy odpowiednio „Left Join”, „Right Join”, „Inner Join” lub „Full Outer Join” i w zależności od typu relacji mamy pełny lub ograniczony zakres danych, niepowiązane rekordy wyświetlają się jako „nulle”, albo wcale ich nie widać itp.) Wymaga to oczywiście pewnej wprawy i znajomości logiki danych – to jest ten etap wdrożenia, na którym można „zrobić sobie krzywdę” i zdefiniować np. model oparty na iloczynie kartezjańskim, w którym wszystko wiążemy ze wszystkim i możemy wygenerować jakąś gigantyczną i nie mającą sensu liczbę rekordów w tabeli wynikowej. Trzeba zatem wiązać tabele według tych kolumn, dla których ma to sens (np. „NIP” pomiędzy tabelą „Kontrahenci” a tabelą „Faktury”) Rzecz występuje bardzo często. Nasz poprzedni system pracował z bazą danych np. Progress, albo MS SQL, a „przesiedliśmy się” na Oracle, albo MySQL. A potrzebujemy wieloletnich analiz np. trendów sprzedażowych, czy historii płatności danego Kontrahenta. Co wtedy? Aby uniknąć żmudnego „dziobania” w starym i nowym narzędziu oraz niebagatelnych kosztów migracji pełnej bazy danych ze starego do nowego systemu (zwykle w takiej sytuacji przenosimy jakieś wielkości graniczne – np. tylko „Bilans Otwarcia”, ewentualnie tylko nierozliczone pozycje na dzień uruchomienia nowego systemu), najlepiej jest „zrzucić” dane z obu systemów do zewnętrznego narzędzia Business Intelligence. Oczywiście, w przypadku „starego” systemu, będzie to działanie jednorazowe, tworzące „Archiwum danych”, w przypadku „nowego” zwykle jest to powiązane z normalnym wdrożeniem narzędzia BI. Aby jednak te dane „widziały się” ze sobą, nie wystarczy że będziemy je mieli w dwóch „sąsiednich” kostkach OLAP, czy tabelach. Tutaj bardzo przydatna jest funkcja „Append to Datasource”, występująca w niektórych narzędziach BI. Daje ona możliwość (po uprzednim „zmapowaniu” części wspólnej obu źródeł danych, czyli wyznaczeniu odpowiadających sobie NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 4 kolumn w obu źródłach danych) „doklejenia” rekordów z jednego źródła danych do kolejnego – tak jakbyśmy po prostu dokleili kolejne wiersze w tabeli. W efekcie uzyskujemy JEDNO źródło danych zarówno dla danych ze starego systemu, jak też nowego – i to z tą samą granulacją danych! Warto zwrócić uwagę coś takiego, jak „unia danych” – gdy źródłami danych są np. identyczne pliki CSV dla różnych zakresów czasowych, krajów, czy produktów, można je bardzo łatwo połączyć w „Unię”, dzięki czemu będą one rozpoznawane jako jedno źródło danych. Warto zapytać o takie funkcjonalności dostawcę naszego narzędzia BI, zarówno „Append to Datasource”, jak też „Data Union” mogą być kapitalnie pomocne w scaleniu danych z różnych systemów. To jeden z najczęściej występujących problemów. Można (i należy!) go rozwiązać na kilku etapach: 1. 2. 3. U źródła – czyli na etapie ewidencji, wdrażając rozmaite procedury weryfikujące, listy/ raporty kontrolne, wyłapując i weryfikując kontrahentów o tym samym NIPie, adresie, podciągu znaków w nazwie itp.) Na etapie ETL, czyli zasilania danymi narzędzia BI – takie procedury deduplikacyjne są standardowym rodzajem skryptów ETL. W samym narzędziu BI – tutaj zwykle mamy do dyspozycji kilka narzędzi. Zawsze warto zdefiniować kilka analiz „weryfikacyjnych”, wyłapujących np. zdublowane rekordy w bazie danych – większość współczesnych narzędzi BI ma możliwość już na etapie analizy danych wykonywania operacji typu „Hide”, „Group”, „Exclude”, „Rename”. Można to zrobić w bardzo prosty sposób nawet na etapie wizualizacji danych – wyłapując np. elementy wybitnie odstające: Tutaj bardzo przydatna może być opcja „View Data”, czyli podglądu danych szczegółowych dla danego obiektu: NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 5 Dzięki temu możemy błyskawicznie wyłapać zduplikowane obiekty. Kolejna rzecz – warto sprawdzić, czy nasze narzędzie BI daje możliwość wyłapania różnego typu „niezmapowanych” obiektów. Może się to odbywać przy pomocy np. komunikatu „Unknown”, jak w przykładzie poniżej: Mamy tu fragment analizy na mapie ze znacznikiem pokazującym, że są tu 2 rekordy o statusie „unknown” – czyli „nieznane systemowi”. Klikając na ów szary prostokąt możemy zobaczyć przyczynę (w pole „Miasto” wpisano Województwo) oraz rozwiązać problem wpisując poprawne mapowanie: Co istotne, nie wstrzymuje to procesów ETL, to Użytkownik decyduje, czy chce takim danym zaufać, czy nie. To również bardzo ważna rzecz – mieliśmy w przeszłości wiele razy do czynienia z sytuacją, gdy odświeżenie Hurtowni Danych potrafiło zatrzymać się z powodu jakiegoś drobnego błędu w danych, powodując spore zakłócenia w funkcjonowaniu Firmy… NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 6 To zagadnienie ma kilka aspektów. Pierwszy – to oczywiście możliwość zdefiniowania nowych wymiarów/ przekrojów analitycznych na podstawie innych wymiarów (np. podciągu znaków konta czy indeksu). Warto zweryfikować możliwość skorzystania w naszym narzędziu BI z tzw. Splittera, który może jednym kliknięciem przekształcić np. wymiar „Imię i Nazwisko” w dwa osobne wymiary „Imię” i „Nazwisko” jak na przykładzie poniżej: (nie mniej ciekawy jest tzw. „Custom Split”, dający możliwość wyznaczenia, jak dane mają być rozdzielone i w oparciu o jakie znaki Oczywiście, niezależnie od tego, co możemy zrobić „jednym kliknięciem”, pozostają nam również znane z Excela, a stosowane w różnych narzędziach funkcje rozdzielania tekstu typu „Left”, czy „Right”. Bardzo przydają się one w sytuacjach, gdy chcemy np. „wyłuskać” 5 i 6 znak z indeksu i stworzyć z nich oddzielny wymiar. Ale nie mniej ciekawe jest tworzenie nowych wymiarów na podstawie poziomu miar – np. klasyfikacji ABC Klientów, czy produktów. Kiedyś było to dość skomplikowane, dziś wystarczy napisać dość prosty warunek, np: NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 7 I nasz nowy wymiar jest gotowy do użycia: Równie częstym zjawiskiem jest problem tzw. „długich ogonów”, czyli wielkości o marginalnym znaczeniu, które zaciemniają nam całą analizę. Może to powodować efekty takie jak poniżej. Jak widzimy, połowa obszaru analizy poświęcona jest danym o zupełnie marginalnym znaczeniu. Jeśli mamy możliwość zgrupowaniu ich na ekranie np. w ten sposób: NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 8 I oznaczenia aliasem „Pozostałe”, to nasza analiza sporo zyskuje na czytelności – a zostaje jeszcze miejsce na inne ciekawe elementy analizy, jak trend, czy KPI: Oczywiście, to dopiero początek listy, kolejne ciekawe aspekty modelowania danych i dopasowywania ich do naszych potrzeb opiszę w kolejnym artykule – zapraszam serdecznie! Witold Kilijański, Prezes Zarządu NewDataLabs sp. z o.o. NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581 9 - Jesteśmy jedynym w Polsce Partnerem Tableau w 100% skoncentrowanym na wdrożeniach tej technologii. - Pomagamy Klientom nauczyć się Tableau oraz wdrożyć nowe podejście do pracy z danymi, oferowane przez tę technologię. - Projektujemy raporty, dashboardy i wizualizacje. - Pomagamy zamodelować dane na potrzeby importu do Tableau. - Świadczymy usługi Asysty Powdrożeniowej (zdalnie/online lub w siedzibie Klienta). - Szkolimy obecnych oraz przyszłych użytkowników Tableau. [email protected] 601 79 77 83 al. T. Boy'a - Żeleńskiego 28/4, 51-160 Wrocław https://newdatalabs.com/ Niniejsza publikacja zawiera jedynie ogólne informacje i bazuje na doświadczeniach i analizach konsultantów NDLS. Niniejsza publikacja nie jest substytutem profesjonalnego doradztwa, nie powinna być wykorzystywana jako podstawa do podejmowania decyzji lub działań, które mogą mieć wpływ na firmę. Przed podjęciem jakichkolwiek decyzji lub podjęciem jakichkolwiek działań należy przeprowadzić indywidualną konsultację. NDLS nie ponosi odpowiedzialności za jakiekolwiek straty poniesione przez jakąkolwiek firmę czy osobę, która opiera się na tej publikacji. Copyright © NDLS 2017 NDLS sp. z o.o., 51-160 Wrocław, al. T. Boy’a – Żeleńskiego 28 lok.4, NIP 895 205 25 28, REGON 362492669 KRS 0000575114, kapitał zakładowy 100 000 PLN, opłacony w całości, nr konta: 03 1020 5226 0000 6202 0520 0581