KNIME jako platforma analityczna

INFO_22_26.jpg
Tekst otwarty nr 22/2020

Codzienna praca na danych finansowych (i nie tylko), poza szeroką wiedzą z danej dziedziny, wymaga również wykorzystywania nowoczesnych rozwiązań informatycznych, które wspomagają w analizie danych i pozyskaniu wiedzy z danych (niezależnie od posiadanych systemów ERP). Pozwalają one zwiększyć szybkość i jakość uzyskiwanej wiedzy oraz zapewniają bardzo istotną powtarzalność procesów. Jednym z takich narzędzi jest darmowa platforma analityczna KNIME, która może stać się nieodzownym elementem w pracy z danymi zarówno finansowymi, jak i niefinansowymi.

KNIME Analytics Platform

Oprogramowanie jest udostępniane na zasadach open source przez Uniwersytet w Konstancji. Można je pobrać pod adresem https://www.knime.com/downloads. Początkowo było znane pod nazwą Konstanz Information Miner i stworzono je jako otwarty projekt, w założeniach umożliwiający przetwarzanie i analizę danych specjalistom z wielu dziedzin, bez wymogu szerokiej wiedzy informatycznej (programistycznej).

KNIME – filozofia

Oprogramowanie ma na celu wspierać użytkownika, ma być też proste i intuicyjne w użyciu – dlatego KNIME ma graficzny interfejs oraz zapewnia tworzenie procesów przetwarzania danych graficzną metodą programowania (metodą „przenieś i upuść”) bez konieczności programowania (pisania kodu programów). Procesy (ang. workflow) tworzy się, wykorzystując graficzne bloki funkcjonalne zwane węzłami (ang. nodes). Każdy węzeł wykonuje określone zadania/akcje, które mogą dotyczyć dostępu do danych, manipulacji czy wizualizacji informacji. Węzły łączy się ze sobą, otrzymując całościowy proces przetwarzania i analizy danych. Twórcy zadbali, aby osoby korzystające z KNIME nie popełniały błędów podczas łączenia węzłów. Każdy z nich ma specjalnie oznaczone porty wejścia/wyjścia, wyróżniające się kształtem oraz kolorem. Dla przykładu dane tabelaryczne są pokazane jako czarny trójkąt, a port zmiennych jako czerwone koło. Program nie pozwala na złączenie ze sobą niekompatybilnych typów danych. Filozofia dostępności i łatwości przejawia się również w podejściu do nauki aplikacji oraz jej wykorzystania. W samym programie można zapoznać się z pełnymi opisami każdego węzła oraz uzyskać połączenie do serwera udostępniającego ogromną liczbę przykładów użycia KNIME. Pod adresem https://forum.knime.com/ zainteresowani znajdą forum, gdzie można zadawać pytania oraz skorzystać z wiedzy i pomocy użytkowników z całego świata (jak również twórców platformy). Poprzez zastosowanie otwartego modelu w aplikacji bardzo szybko wdrażane są nowe metodologie oraz rozwiązania, jak machine learning, Big Data czy ostatnio modne deep learning.

KNIME jako platforma

Integracja rozwiązań oraz najnowszych metodologii pracy na danych jest bardzo silną stroną platformy. KNIME poprzez rozszerzenia (specjalne dodatki) umożliwia prostsze wykonywanie zadań oraz wykorzystanie oprogramowania przez bardziej zaawansowanych użytkowników, na przykład kodu pisanego w językach skryptowych, takich jak Python, R czy Java. Dodanie kolejnego rozszerzenia do aplikacji powoduje zwiększenie w repozytorium (Node Repository) dostępnych węzłów (node), co w konsekwencji zwiększa funkcjonalności i możliwości samej aplikacji.

KNIME – zagadnienia, problemy, które można rozwiązać

Jeśli przyjmiemy za Wikipedią, że analiza danych to „proces przetwarzania danych w celu uzyskania na ich podstawie użytecznych informacji i wniosków, a w zależności od rodzaju danych i stawianych problemów może to oznaczać użycie metod statystycznych, eksploracyjnych i innych”, to warto wspomnieć, że KNIME umożliwia wdrożenie takich technik, jak:

  • EDA (Eksploracyjna Analiza Danych),
  • Big Data,
  • text mining,
  • statystyczna analiza danych,
  • wykrywanie wzorców,
  • ETL – procesy przetwarzania danych,
  • wizualizacja danych (wykresy, grafy),
  • machine learning, czyli algorytmy uczenia maszynowego,
  • SNA – analiza sieci społecznych,
  • web mining.

KNIME jest nieustannie rozwijane, a już obecna liczba możliwych rozwiązań i zagadnień jest ogromna i zależy tylko od problemu, wyobraźni i wiedzy osoby korzystającej z tego oprogramowania. Może stanowić realną alternatywę lub uzupełnienie dla „wysokopłatnych” rozwiązań oferujących to samo lub mniej. KNIME jest „platformą analityczną” na równi konkurującą z komercyjnym oprogramowaniem, co potwierdza również niezależna firma badawczo-doradcza Gartner1. Istnieje możliwość wykonania w niej większości zadań (jak w oprogramowaniu komercyjnym) oraz poprzez integrację różnych technologii i metodyk, które dotyczą przetwarzania i analizy danych elektronicznych.

Podstawą we wszystkich analizach jest dostęp do danych. KNIME pozwala na bezpośredni dostęp do baz danych, co w przypadku działu controllingu, managementu, audytora, controllera, księgowych może być niezmiernie ważne – uzyskują oni dostęp do aktualnych danych, a co za tym idzie do bieżących raportów, wykazu nadużyć finansowych czy wskazań trendów – wszystko w czasie rzeczywistym. Praca poświęcona na przygotowanie procesu analizy danych może być wykorzystywana wielokrotnie oraz w prosty sposób parametryzowana czy modyfikowana pod aktualne potrzeby analityczne/sprawozdawcze. Zapewnia automatyzację procesów kontroli i powtarzalność przy jednoczesnym zachowaniu jakości oraz dokumentacji procesów.

Przykładowe scenariusze

Rozważmy dwa przykłady analiz dla hipotetycznej firmy, dokonującej zakupów surowców/towarów.

Zagadnienia:

I. Weryfikacja, czy wszystkie zlecenia zakupu surowców/towarów zostały poprawnie zatwierdzone.

Jakie kroki należy wykonać:

  1. Import bazy danych zleceń.
  2. Import bazy danych zatwierdzeń.
  3. Import bazy danych loginów mających uprawnienia do zatwierdzania zleceń.
  4. Stworzenie relacji pomiędzy bazami danych (punkt zaczepienia login).
  5. Filtrowanie rekordów niepołączonych i wygenerowanie tabeli.
  6. Sprawdzenie, czy ta sama osoba nie wygenerowała i nie zatwierdziła zlecenia zakupów (rozdział obowiązków) – filtr rekordów połączonych i test, czy login ze zlecenia = loginowi zatwierdzenia.

Oczekiwany efekt:

Zapewnienie realizacji działań weryfikacyjnych w funkcjonowaniu mechanizmów kontrolnych firmy. Pożądana jest sytuacja, kiedy wszystkie zlecenia zakupu są autoryzowane w systemie przez odpowiednie osoby z zachowaniem dwuinstancyjności (kto inny generuje zlecenie, a kto inny zatwierdza). W ten sposób możemy stwierdzić, czy występują zjawiska negatywne, polegające na błędnej autoryzacji, nadużyciu uprawnień i pominięciu procedur. Końcowy przepływ pokazuje Rysunek 1.

Pobranie danych

Analizę rozpoczynamy od dostępu do danych oraz ich pobrania do KNIME (pkt 1, 2 i 3). Dane mogą być dostarczone z różnych systemów i w różnych formatach. W przykładzie dane pochodzą z dwóch źródeł:

  • z relacyjnej bazy danych (KNIME poprzez dodatki ma dedykowany dostęp do takich baz jak: MySQL, Microsoft SQL Server, PostgreSQL, SQLite oraz do wszystkich baz mających sterownik JDBC, np. ORACLE, IBM DB2). Import (pkt 1, 2) wykonujemy, wykorzystując uniwersalny węzeł „Database Connector”, służący do ustanowienia połączenia do bazy danych, oraz „Database Reader”, pobierający dane zgodnie z zapytaniem SQL (Rysunek 2 i Rysunek 3);
  • z płaskiego pliku z separatorem ­(KNIME ma możliwość importu danych z płaskich plików o określonym separatorze, plików o stałej szerokości kolumn, ale również takich typów dokumentów jak doc, docx, xlsx, xls, pdf, odt, ods). Import (pkt 3) wykonujemy za pomocą węzła „CSV Reader” – Rysunek 4.

Warto nadmienić, że kiedy dane już znajdą się w KNIME, ich pochodzenie oraz sposób importu nie ma znaczenia i wpływu na sposób ich przetwarzania czy analizy. KNIME przetwarza je do własnego formatu, w tym przypadku typu tabelarycznego.

Łączenie danych

Kolejnym krokiem jest połączenie ze sobą wcześniej zaimportowanych danych (pkt 4). Podobnie jak w relacyjnych bazach danych, gdzie łączenie realizuje się poprzez zastosowanie polecenia JOIN w SQL, w KNIME najlepiej wykonać tę operację, wykorzystując „Joiner” lub „Database Joiner” (jeżeli dane pochodzą z tej samej bazy danych). „Joiner” pokazany na Rysunku 5 ma dwa wejścia dla łączonych tabel oraz tabelę wyjściową, możemy również nadać własny opis węzła. W przykładzie połączenie następuje na podstawie numeru zamówienia „order_no” tabeli „zlecenia” i „ORDER_NO” tabeli „zatwierdzenia” (Rysunek 6). Wykorzystamy złączenie typu „Inner Join” – tylko dane mające ten sam identyfikator. Istnieje wsparcie dla innych typów złączeń, jak „Left Outer Join”, „Right Outer Join” oraz „Full Outer Join”. Złączenie danych można również ustanowić dla jednej lub wielu kolumn oraz określić warunek I lub OR („Match all of the following” – wszystkie wartości z kolumn muszą być zgodne, lub „Match any of the following” – dopasowanie według dowolnej zgodnej pary kolumn). Wynik złączenia pokazuje Rysunek 7.

Wyszukiwanie informacji

KNIME ma bardzo szerokie spektrum dostępnych filtrów, w których każdy może odnaleźć najodpowiedniejszy do wykonania konkretnego zadania. W przykładzie celowo wykorzystano trzy węzły do filtrowania danych z repozytorium (Manipulation\Row\Filter), aby choć częściowo pokazać różnorodność możliwych rozwiązań oraz przybliżyć czytelnikowi wiedzę o kilku węzłach (Rysunek 8).

„Row Filter” to bardzo uniwersalny i prosty w konfiguracji węzeł, służący do filtrowania danych według wartości z konkretnej kolumny (obsługuje wartości numeryczne, a dla wartości tekstowych wieloznaczniki „*” i „?” oraz wyrażenia regularne, identyfikator rekordu lub jego pozycję). Pozostawiamy tylko pracowników mających uprawnienia do autoryzacji (Rysunek 4).

„Reference Row Filter” – pozwala odfiltrować rekordy z jednej tabeli przy użyciu tabeli referencyjnej (na podstawie jednej kolumny, przy określeniu, czy chcemy uzyskać dane dla rekordów istniejących lub nieistniejących w tabeli referencyjnej). W naszym przykładzie chcemy zobaczyć, czy istnieją zatwierdzone transakcje przez osoby, które nie mają uprawnienia do autoryzacji transakcji (Rysunek 9).

„Rule-based Row Filter” – pozwala wykorzystać szereg reguł i funkcji dla danych (jak LIKE czy IN), daje możliwość wyboru danych z kolumn oraz zmiennych. Węzeł umożliwia bardzo dokładne i rozbudowane filtrowanie danych, na które może składać się wiele reguł [„Rule-based Row Splitter (Dictionary)” to węzeł pozwalający na pobieranie reguł z wyodrębnionej tabeli]. W przykładzie użyto prostej zasady porównania wartości dwóch kolumn, zgodnie z regułą „$Ent_By$ = $PERS_NO$ => TRUE” (Rysunek 10). Otrzymany wynik pokazuje zlecenia, których zleceniodawcą i osobą akceptującą był ten sam pracownik (Rysunek 11). Cel został więc osiągnięty.

Wyniki

Uzyskane wyniki zapisujemy do skoroszytu XLSX (Rysunek 12) w celu przekazania osobom odpowiedzialnym w firmie za ten rodzaj incydentu.

Przykład celowo nie zawiera zaawansowanych metod analitycznych, a jedynie proste metody przetwarzania danych. Pokazuje jednak, że opisany proces jest udokumentowany (mamy gotowe, opisane rozwiązanie w postaci przepływu – Rysunek 1). W każdej chwili użytkownik może dokonać modyfikacji procesu oraz zapoznać się ze szczegółową konfiguracją każdego węzła. Wytworzony „produkt” w postaci przepływu jest więc produktem inżynierskim – jest udokumentowany, gwarantuje powtarzalność wyników (przy takich samych danych wejściowych model zawsze zwróci takie same wyniki), zapewnia jakość procesu (poprzez opisanie kolejnych, zautomatyzowanych kroków wykluczamy błędy ludzkie, na przykład pominięcie jakiegoś elementu procesu) oraz jest powtarzalny (oszczędność czasu, możliwość współdzielenia, wykorzystania przez wielu pracowników). Warto podkreślić, że dane źródłowe nie zostają zmodyfikowane, co jest szczególnie istotne w przypadku audytu.

II. Weryfikacja i analiza przepływu pieniędzy

Jakie kroki należy podjąć:

  1. Import operacji przelewów bankowych.
  2. Podstawowe statystyki dotyczące kwot operacji.
  3. Zestawienie roczne w podziale na kwartały.
  4. Import bazy danych firm z rachunkiem bankowym z systemu ERP.
  5. Wizualizacja łącznych kwot przelewów z uwzględnieniem rodzaju firmy.
  6. Wyszukanie duplikatów transferów po kwotach, nazwie firmy, opisie i momencie płatności (w siedmiodniowym oknie czasowym).

Po co:

Pozwoli to efektywniej zarządzać płynnością (przepływami pieniędzy), analizować płatności pod kątem trendów, porównać poszczególne okresy oraz sprawdzić, czy nie ma podwójnej płatności za te same zakupy/usługi. Końcowy przepływ pokazuje Rysunek 13. Omówione zostaną na nim aspekty i węzły wcześniej niewystępujące.

Próbkę zanonimizowanych danych wejściowych pokazuje Rysunek 14.

Statystyka

Przydatnym węzłem, od którego warto zacząć badanie danych, jest „Statistics” generujący podstawowe statystyki i przedstawiający je w prosty i czytelny sposób (Rysunek 15).

Wizualizacja

Kolejnym krokiem jest dalsza eksploracja danych, choćby z wykorzystaniem „Box Plot (JavaScript)” - wykresu pudełko-wąsy (Rysunek 16) czy histogramu „Histogram (JavaScript)” (Rysunek 17) pozwalająca poznać dane w formie wizualnej.

Agregaty

Grupowanie czy tabele przestawne można wykonać węzłami „GroupBy” lub „Pivot­ing” – wynik w postaci tabeli pokazuje Rysunek 18. Ciekawym wykresem jest wykres zależności generowany przez „Parallel Coordinates Plot (JavaScript)” (Rysunek 19).

Pętle

KNIME obsługuje dużą liczbę pętli pozwalających na powtarzalność procesów/kroków. Przykład szczególnej pętli został wykorzystany do tworzenia siedmiodniowych okien czasowych w celu sprawdzenia, czy nie występują wielokrotne płatności. Wynik wyszukiwania obrazuje Rysunek 20, gdzie pokazano, w których dniach dokonano takiej samej operacji przelewu środków.

Raportowanie

Aplikacja została wyposażona w funkcjonalne narzędzie do budowania raportów. Praca przypomina tworzenie dokumentów w edytorach tekstowych, jednak zawartość jest uzupełniania w sposób dynamiczny danymi pochodzącymi z procesu (workflow). Poza standardowymi obiektami tabelarycznymi, tekstowymi czy graficznymi możemy również w samym raporcie tworzyć wizualizację danych, korzystając z pakietu dostępnych wykresów. Przykład budowania raportu obrazuje Rysunek 21, a efekt końcowy (wygenerowanego dokumentu) – Rysunek 22.

Podsumowanie

Darmowa platforma, jaką jest KNIME Analytics Platform, to doskonałe narzędzie do analizy danych. Niemodyfikowalność danych oryginalnych, udokumentowanie procesu, powtarzalność oraz stabilność wyników sprawiają, że to narzędzie daje rękojmię jakości procesów i jest szczególnie przydatne dla działu controllingu, managementu, audytora, controllera czy księgowego. Pokazane przykłady oraz omówione węzły stanowią tylko niewielki ułamek z ponad 2500 dostępnych węzłów. Każdy czas poświęcony na naukę programu zwraca się wielokrotnie, dlatego zachęcamy do pogłębiania wiedzy o KNIME.


Przydatne linki:

KNIME – https://www.knime.com

KNIME Analytics Platform – https://www.knime.com/knime-software/knime-analytics-platform

Forum KNIME – https://forum.knime.com

Oficjalny kanał na YouTubie – https://www.youtube.com/user/KNIMETV

Wyszukiwarka węzłów wraz z opisami – https://nodepit.com

Ulubione Drukuj

Zobacz również

Tekst otwarty Tylko on-line nr 23/2020

WMS – 10 korzyści dla twojego biznesu

WMS.jpg

WMS to rozwiązanie do zarządzania zadaniami na magazynie, którego wdrożenie może znacznie usprawnić twój biznes. System to nie tylko pełniejsze wykorzystanie powierzchni magazynowej, ale także liczne usprawnienia związane z szybkim dostępem do informacji, łatwiejszym kierowaniem pracą magazynierów oraz kompletacją i pakowaniem zamówień. Jakie korzyści mogą płynąć z wdrożenia systemu WMS? Przygotowaliśmy listę 10 najważniejszych efektów, które osiągają nasi klienci w swoich firmach.

Czytaj więcej
Tylko on-line nr 23/2020

Ocena opłacalności projektów

MC_68_42.jpg

Chcąc ocenić opłacalność projektów inwestycyjnych w przedsiębiorstwach, trzeba przyjąć właściwą metodologię, a także określić zasady wyznaczania mierników służących ocenie efektywności inwestycji. Tylko wówczas możemy przystąpić do właściwej oceny i uzyskać interesujące nas dane. W artykule omawiamy te zagadnienia na przykładzie przedsiębiorstwa z branży chemicznej, które rozważa wdrożenie projektu polegającego na zakupie technologii do wytwarzania nowego preparatu.

Czytaj więcej
Tylko on-line nr 23/2020

Kiedy system ERP nie wspiera księgowości

MC_68_76.jpg

Przestarzałe systemy, odgórnie narzucone rozwiązania i ciągłe odmowy, gdy zespół wnosi o wprowadzenie zmian. Tak wygląda codzienność w lokalnych działach rachunkowości i finansów wielu międzynarodowych firm. W nieustannym wyścigu o maksymalizowanie wydajności i minimalizowanie kosztów księgowość znajduje się poza torem, nigdy nie mogąc doprosić się o traktowanie na równi z działami sprzedaży czy produkcji.

Czytaj więcej

Przejdź do

Partnerzy

Reklama