Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Masz plik z danymi i pytanie, na które chcesz odpowiedzieć, ale Excel już nie wyrabia, a nauka programowania wydaje się drogą przez mękę. To najczęstszy moment, w którym warto poznać KNIME (czytamy „najm") - darmową platformę do analizy danych, w której zamiast pisać kod, układasz gotowe klocki jak w wizualnym schemacie blokowym. Ten artykuł to praktyczny tutorial: pokażemy, czym KNIME jest, zainstalujemy go, zwiedzimy interfejs, a potem zbudujemy od zera pierwszy przepływ analityczny, który z pliku CSV zrobi zestaw interaktywnych wykresów. Wszystkie zrzuty pochodzą z żywej instalacji KNIME Analytics Platform, a dane w przykładach to przygotowany zbiór sprzedażowy sklepu elektronicznego.
KNIME (skrót od Konstanz Information Miner) to otwarta, bezpłatna platforma do analizy danych. Powstała w 2004 roku na uniwersytecie w niemieckiej Konstancji i przez dwie dekady urosła do jednego z najpopularniejszych narzędzi analitycznych na świecie. Jej idea jest prosta: cały proces analizy - od wczytania danych, przez ich czyszczenie i przekształcanie, aż po wizualizację i eksport - budujesz wizualnie, układając na kanwie kolejne węzły (klocki wykonujące pojedyncze operacje) i łącząc je strzałkami w łańcuch.
Program, który robi całą pracę, nazywa się KNIME Analytics Platform i jest w pełni darmowy oraz otwartoźródłowy. Instalujesz go na własnym komputerze - nie mylić z płatnymi wersjami serwerowymi (KNIME Hub, Business Hub), które dokładają współdzielenie pracy w chmurze. Do nauki i do większości codziennych zadań wystarcza bezpłatna platforma desktopowa.
Analiza danych w KNIME niemal zawsze przebiega według tej samej, pięcioetapowej ścieżki, którą warto mieć z tyłu głowy przez cały tutorial:
Najważniejsza obietnica KNIME jest taka: podstawowe analizy złożysz wyłącznie myszką, przeciągając węzły i klikając w ich ustawienia, a raz zbudowany przepływ uruchomisz na nowych danych jednym kliknięciem. Comiesięczny raport przestaje być godziną klikania w arkuszu. A gdy potrzebujesz więcej, wpinasz w przepływ własny kod w Pythonie, R lub zapytania SQL - o tym w dalszej części.
Instalacja jest banalna i identyczna w duchu na każdym systemie. Wchodzisz na oficjalną stronę knime.com, pobierasz KNIME Analytics Platform w wersji dla swojego systemu (Windows, macOS lub Linux, zawsze 64-bitowej) i uruchamiasz instalator. Program przynosi ze sobą własne środowisko uruchomieniowe, więc nie musisz nic doinstalowywać. Przy pierwszym starcie KNIME zapyta o katalog roboczy (workspace) - to zwykły folder na Twoje przepływy.
Po uruchomieniu wita Cię ekran startowy: po lewej lokalna przestrzeń robocza i KNIME Community Hub z gotowymi przepływami społeczności, w centrum przykłady do podejrzenia, a po prawej przycisk tworzenia nowego przepływu.
Klikamy Create new workflow, nadajemy przepływowi nazwę (u nas „Analiza_sprzedazy_2025") i zatwierdzamy przyciskiem Create.
Po utworzeniu przepływu KNIME pokazuje swój właściwy warsztat. Na pierwszy rzut oka paneli jest sporo, ale każdy ma jedno, jasne zadanie. Poznanie ich to dosłownie pierwsze dziesięć minut pracy.
Sześć obszarów, które warto rozpoznać od razu:
Cała filozofia KNIME sprowadza się do dwóch pojęć. Węzeł (po angielsku node) to pojedynczy klocek, który wykonuje jedną operację: wczytuje plik, odfiltrowuje wiersze, liczy sumę, rysuje wykres. Dane wpływają do węzła portem wejściowym z lewej strony, a wynik wychodzi portem wyjściowym z prawej. Przepływ (workflow) to kilka węzłów połączonych strzałkami w logiczny łańcuch: „weź wynik tego węzła i podaj do następnego".
Pod każdym węzłem świeci małe światło, które działa jak sygnalizacja i jest pierwszą rzeczą, na którą patrzysz, gdy coś nie gra. Czerwony oznacza, że węzeł dopiero dodano i nie ma jeszcze kompletu ustawień. Żółty - że jest skonfigurowany i gotowy do uruchomienia. Zielony - że został wykonany, a jego wynik jest policzony i gotowy, by popłynąć dalej.
Zaczynamy budować. Naszym zadaniem będzie wczytać plik ze sprzedażą sklepu elektronicznego, podsumować sprzedaż według kategorii produktów i pokazać to na wykresach. Zaczynamy od wczytania danych.
W panelu repozytorium (po lewej) w polu wyszukiwania wpisujemy nazwę węzła - tutaj interesuje nas czytnik plików CSV, więc szukamy „CSV Reader". KNIME pokazuje pasujące klocki. Tak samo znajdziesz każdy inny węzeł, na przykład wykresy, których użyjemy dalej.
Żeby dodać znaleziony węzeł na kanwę, wystarczy go dwukrotnie kliknąć. Jest przy tym wygodny skrót: jeśli na kanwie masz zaznaczony jakiś węzeł, nowo dodany od razu podłączy się do niego strzałką. Dzięki temu budujesz łańcuch bez ręcznego łączenia portów.
Świeżo dodany węzeł CSV Reader świeci na czerwono, bo nie wie jeszcze, co ma czytać. Klikamy w niego i w panelu konfiguracji po prawej wskazujemy plik. KNIME od razu rozpoznaje kolumny i pokazuje podgląd. Po uruchomieniu (klawisz F7 albo przycisk „Wykonaj") węzeł zmienia kolor na zielony, a w dolnym panelu pojawia się tabela z danymi.
Chcesz przejść ten tutorial na tych samych danych? Pobierz nasz przykładowy plik ze sprzedażą sklepu elektronicznego (2025, ten sam, który widać na zrzutach) i wskaż go w węźle CSV Reader.
Pobierz przykładowy plik CSV
To dobry moment, żeby po prostu obejrzeć dane w dolnym panelu: przewinąć wiersze i sprawdzić, czy liczby wczytały się jako liczby, a daty jako daty. KNIME potrafi wczytywać nie tylko pliki CSV, lecz również arkusze Excela (węzeł Excel Reader), pliki JSON i XML, a także dane prosto z baz danych.
W realnym świecie dane rzadko są czyste. Nazwy miast miewają zbędne spacje albo raz są pisane wielką, raz małą literą, część cen bywa pusta, a kilka wierszy się dubluje. To kolejny obszar, w którym KNIME błyszczy, bo dla każdego typowego problemu ma gotowy węzeł. Zwykle wstawiamy je zaraz za czytnikiem danych.
| Problem w danych | Węzeł KNIME | Co robi |
|---|---|---|
| Brakujące wartości (puste komórki) | Missing Value | Uzupełnia braki średnią, medianą, stałą albo usuwa takie wiersze |
| Zdublowane wiersze | Duplicate Row Filter | Wykrywa i usuwa powtórzone rekordy |
| Zbędne spacje, różna wielkość liter | String Manipulation | Przycina i ujednolica tekst (na przykład wszystko małymi literami) |
| Liczby wczytane jako tekst | String to Number | Zamienia tekst na liczby, żeby dało się na nich liczyć |
| Niepotrzebne wiersze lub kolumny | Row Filter / Column Filter | Zostawia tylko to, czego naprawdę potrzebujesz |
Gdy dane są już czyste, chcemy je podsumować. Mamy pojedyncze transakcje, a interesuje nas suma sprzedaży w rozbiciu na kategorie. Do grupowania i podsumowywania służy węzeł GroupBy. Dodajemy go za czytnikiem i otwieramy jego okno konfiguracji.
W zakładce grupowania wskazujemy kolumnę kategoria, a w zakładce agregacji mówimy: policz sumę kolumny ilość. Po ludzku: „dla każdej kategorii zsumuj sprzedane sztuki".
Po wykonaniu węzeł zwraca krótką, uporządkowaną tabelę: osiem kategorii, a przy każdej łączna liczba sprzedanych sztuk. To już gotowa odpowiedź analityczna, ale liczby w tabeli trudno porównać wzrokiem - dlatego zamieniamy je na wykresy.
Teraz najprzyjemniejsza część. W KNIME wykres to po prostu kolejny węzeł, który podłączasz do danych. Dodajemy węzeł wykresu, wskazujemy, co ma być na osiach, uruchamiamy go i otwieramy interaktywny widok. Zbudujemy trzy różne wykresy z tych samych danych, żeby pokazać, jak łatwo zmienia się formę prezentacji.
Zaczynamy od klasyki. Dodajemy węzeł Bar Chart, wskazujemy, że wymiar kategorii to kolumna kategoria, a wysokość słupków ma odpowiadać zsumowanej sprzedaży. Po uruchomieniu otwieramy widok węzła (prawy przycisk myszy na węźle, a następnie „Open view") i dostajemy czytelne porównanie sprzedaży między kategoriami.
Te same dane, inna forma. Dodajemy węzeł Pie Chart i konfigurujemy tak samo: kategoria jako wymiar, suma sprzedaży jako wartość. Wykres kołowy świetnie pokazuje udział każdej kategorii w całości sprzedaży.
Na koniec coś efektowniejszego. Węzeł Sunburst Chart rysuje dane hierarchicznie, w formie promienistych pierścieni. Ustawiamy hierarchię na dwa poziomy: wewnętrzny pierścień to kategoria, zewnętrzny to produkt. Efekt to jeden obraz, który pokazuje naraz i udział kategorii, i rozbicie na konkretne produkty.
Zwróć uwagę na najważniejszą rzecz: te trzy zupełnie różne wizualizacje powstały z tych samych danych, przez podłączenie kolejnego klocka. Nie napisaliśmy ani linijki kodu, a każdy z wykresów jest interaktywny.
Na koniec najlepsza sztuczka. KNIME pozwala zamknąć kilka węzłów w jeden komponent, a widoki tych węzłów połączyć w jeden, interaktywny kokpit (dashboard). Zaznaczamy węzły wykresów, klikamy prawym przyciskiem myszy i wybieramy „Create component", a potem otwieramy widok komponentu. Dostajemy dokładnie ten kokpit, który widziałeś na samej górze artykułu: wykres słupkowy, sunburst i kołowy na jednym ekranie, z tych samych danych. To gotowy, jednoekranowy raport, który odświeżysz jednym kliknięciem po podmianie pliku wejściowego.
Zobaczmy, co właściwie zbudowaliśmy. Nasz przepływ to czytnik danych, węzeł podsumowujący i węzły wykresów - wszystko połączone strzałkami i widoczne na jednej kanwie.
To jest właśnie moment, w którym doceniasz powtarzalność. Za miesiąc dostajesz nowy plik ze sprzedażą, podmieniasz go w węźle CSV Reader, klikasz „Wykonaj" i masz zaktualizowane wszystkie wykresy w kilka sekund. Nikt nie zepsuł formuł, bo formuł nie ma - jest widoczny, powtarzalny proces. Rozbudowany przepływ, w którym z jednego źródła danych wyrasta kilka różnych analiz naraz, wygląda tak:
Do pewnego momentu KNIME wystarcza sam. Gdy jednak potrzeba czegoś nietypowego, nie odbijasz się od ściany „braku kodu" - wpinasz kod dokładnie tam, gdzie jest potrzebny, a resztę zostawiasz na klockach. To najczęściej niedoceniana zaleta KNIME: dobrze skaluje się razem z Twoimi umiejętnościami.
Węzeł Python Script pozwala uruchomić własny kod na danych płynących przez przepływ. Tabela wchodzi jako input_table, a to, co ustawisz jako output_table, wypływa do kolejnych węzłów:
# Wezel Python Script w KNIME - dane wchodza i wychodza jako tabele
import knime.scripting.io as knio
df = knio.input_tables[0].to_pandas() # dane z poprzedniego wezla
df["marza_pln"] = df["cena_jedn"] * 0.18 # wlasne wyliczenie
knio.output_tables[0] = knio.Table.from_pandas(df) # wynik plynie dalej
Analogicznie działa węzeł R Snippet dla osób pracujących w języku R, na przykład do zaawansowanej statystyki:
# Wezel R Snippet - knime.in to dane wejsciowe, knime.out to wynik
knime.out <- aggregate(ilosc ~ kategoria, data = knime.in, FUN = sum)
Z kolei do baz danych KNIME łączy się przez węzły konektorów (dla Oracle, PostgreSQL, MS SQL i innych) i pozwala pobierać dane wprost zapytaniem SQL, żeby nie ściągać całej tabeli na dysk:
-- Zapytanie w wezle DB Query Reader: pobierz tylko to, co potrzebne
SELECT kategoria, SUM(ilosc) AS sprzedane_sztuki
FROM sprzedaz
GROUP BY kategoria
ORDER BY sprzedane_sztuki DESC;
Dla naprawdę dużych zbiorów są węzły big data oparte na Apache Spark i Hadoop - temat, który szerzej omawiamy w tekście o współczesnych rozwiązaniach big data. KNIME staje się wtedy wygodną, wizualną nakładką na ciężką maszynerię przetwarzania danych. Podobną drogą - od gotowych klocków po zaawansowaną analitykę - idzie też uczenie maszynowe po stronie bazy danych.
Skoro znasz już KNIME od podszewki, uporządkujmy, gdzie leży na tle narzędzi, które prawdopodobnie już znasz. KNIME nie zastępuje ich wszystkich - raczej wypełnia lukę między łatwością arkusza a mocą programowania.
Ta sama filozofia - „układanie procesu z gotowych bloków zamiast pisania kodu" - napędza dziś także automatyzację firm. Pokazujemy to na przykładzie narzędzia n8n w kompletnym przewodniku po automatyzacji bez kodu. KNIME jest odpowiednikiem tej idei po stronie danych.
Kilka nawyków, które oszczędzą Ci frustracji na początku:
Przeszliśmy razem całą drogę: od instalacji KNIME, przez interfejs i logikę węzłów, aż po zbudowany od zera przepływ, który z surowego pliku CSV zrobił trzy interaktywne wykresy - słupkowy, kołowy i sunburst. Po drodze zobaczyłeś, że każdy krok to jedno kliknięcie i garść ustawień, a nie linijki kodu. Pokazaliśmy też, że gdy potrzeba więcej, KNIME bez oporów przyjmuje kod w Pythonie i R oraz zapytania SQL, a dla dużych danych sięga po Sparka.
Najlepszym kolejnym krokiem jest po prostu pobranie KNIME i przejście tej samej ścieżki na własnym pliku. A jeśli wolisz nauczyć się platformy szybko i pod okiem praktyka, na realnych, firmowych przykładach - zapraszamy na nasze szkolenie.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...