Według raportu Gartnera porównującego łatwość użycia różnych narzędzi BI, Tableau i QlikView jest w tym samym segmencie.
Postanowiłem porównać oba produkty próbując uzyskać prostą wizualizację. Zadanie polega na analizie danych sprzedażowych w czasie.
Dane wejściowe są w postaci transakcji sprzedaży (z systemu ERP), dane są w gotowym widoku w MS SQL, zawierają informacje takie jak: data sprzedaży, nazwa klienta, adres, nazwa towaru, ilość, wartość, koszt własny sprzedaży. Ilość wierszy ~33mln.
Podłączenie do danych
Tableau:
Stworzenie wizualizacji
Tableau:
Stworzenie raportu pokazującego sprzedaż vs. przyrost rok do roku (Y2Y) jest bardzo proste, wystarczy wybrać na miarze sprzedaż odpowiednią kalkulacje tabelaryczną.
QlikView:
Szybkość działania
Podsumowanie
Postanowiłem porównać oba produkty próbując uzyskać prostą wizualizację. Zadanie polega na analizie danych sprzedażowych w czasie.
Dane wejściowe są w postaci transakcji sprzedaży (z systemu ERP), dane są w gotowym widoku w MS SQL, zawierają informacje takie jak: data sprzedaży, nazwa klienta, adres, nazwa towaru, ilość, wartość, koszt własny sprzedaży. Ilość wierszy ~33mln.
Podłączenie do danych
Tableau:
Wybieramy zakładkę "Connect to Data", po czym z listy MS SQL Server, po wpisaniu parametrów połączenia uzyskujemy dostęp do serwera, z listy możemy wybrać bazę danych i odpowiedni widok. Tableau poprosi nas jeszcze o wybór czy chcemy skorzystać z silnika "in memory" czy też analizować dane "live". Ściąganie danych do ekstraktu in memory trwa ~15 min, tworzony plik na dysku ma ~700Mb.
QlikView:
Doszukanie się miejsca gdzie podłącza się dane zajęło mi trochę czasu. Źródło danych musi być zdefiniowane w ODBC, samo okienko do podłączenia danych wymaga właściwie napisania zapytania w języku skryptowym wyciągającego dane z odpowiedniej bazy danych. Składnia zapytania przypomina język SQL, wymaga określenia z jakich obiektów pobieramy dane do jakich tabel w QV. Dla IT nie stanowi
to problemu. Sądze jednak, że ludzie z biznesu mieliby spory opór, żeby na wstępie pisać skrypt do podłączenia się do danych.
Zassanie danych do QV zajmuje dokładnie tyle samo czasu co w Tableau z tą różnica że dane ładowane są od razu do pamięci (nie na dysk). Ilość zużytej pamięci podobna ~700Mb.
Stworzenie wizualizacji
Tableau:
Po przejściu kroku podłączania do danych, w Tableau widzimy wymiary i miary, które możemy natychmiast używać do tworzenia wizualizacji. Możemy również przy użyciu drag&drop tworzyć hierarchie (np. grupa produktu->produkt) albo definiować swoje własne miary/wymiary (edytor wyrażeń regularnych).
Zacznijmy od analizy sprzedaży w czasie. Po kliknięciu na miarę sprzedaż pojawia nam się słupek z wartością sprzedaży, kliknięcie w datę powoduje zamianę słupka na linie i pokazanie na wykresie lat. Możemy swobodnie zmieniać granulę, korzystając z naturalnej hierarchii czasu rok->kwartał->miesiąc itp.
Zmiana wizualizacji (bar chart, wykres, inne) następuje automatycznie dostosowując się do zestawu wybranych miar i wymiarów. Można oczywiście kontrolować to ręcznie wybierając np. tabelę przestawną.Stworzenie raportu pokazującego sprzedaż vs. przyrost rok do roku (Y2Y) jest bardzo proste, wystarczy wybrać na miarze sprzedaż odpowiednią kalkulacje tabelaryczną.
QlikView:
Po zaimportowaniu danych widzimy zestaw tabel dla każdej kolumny 1 tabela. Po kliknięciu w element/y 1 tabeli widzimy natychmiast zależności, czyli gdzie występują (lub nie występują dane elementy). Np. do jakich klientów sprzedawał się dany towar i kiedy. Przy 12 tys. towarów i podobnej liczbie klientów, takie klikanie ma mały sens.
Próba stworzenia wykresu sprzedaż w czasie zaczyna się zaskoczeniem. Daty nie posiadają naturalnych hierarchii, stąd też wyświetlane są jako poszczególne dni. Analiza rok->kwartał->miesiąc jest tak naturalna, że definiowanie za każdym razem dodatkowych miar rok, kwartał, miesiąc jest stratą czasu. Po chwili poszukiwań, wróciłem do momentu podłączenia się do danych, gdzie korzystając ze znajomości SQL zdefiniowałem potrzebne wymiary. Niestety dane trzeba było zassać jeszcze raz (15 minut czekania).
Po ponownym zaimportowaniu danych pojawiają mi się odpowiednie kolumny, mogę więc zrobić wizualizacje. W odróżnieniu od Tableau, QV ma wizardy do tworzenia wizualizacji, gdzie musimy wybrać typ wizualizacji miary i wymiaru. Jest to o tyle niewygodne, że proces ten trzeba przechodzić ponownie w przypadku dowolnej zmiany, co spowalnia proces tworzenia i wymaga wcześniejszego zaplanowania co chcemy robić.
Stworzenie raportu pokazującego sprzedaż vs. przyrost Y2Y nie powiodło się, ponieważ wymagane jest zdefiniowanie nowej odpowiedniej miary, czego nie mogłem się szybko doszukać w google (w sumie analizy Y2Y są standardowe, więc ich tworzenie powinno być prostsze).
Szybkość działania
Oba produkty są pod tym względem porównywalne, z tą różnicą że Tableau przy pierwszym użyciu danego zestawu miar wymiarów odczytuje dane z dysku do pamięci, co sprawia, że pierwsze wyświetlenie raportu może być spowolnione (potem działa bardzo szybko), w QV działa błyskawicznie, nie ma tego efektu.
Podsumowanie
Ten krótki test pokazuje pokazuje już zasadnicze różnice między narzędziami. Tableau jest zdecydowanie bardziej przyjazne, więcej rzeczy da się zrobić bez angażowania się w technologie typu pisanie skryptów. Pomimo że posiadam techniczne wykształcenie (min. znam dobrze SQL), QV potrzebowałem dłuższej chwili (i szukania w google) żeby zrozumieć jak działa QV. Nie kwestionuje tu możliwości narzędzi ETL w QV, wydaje mi się jednak że sposób tworzenia wizualizacji i raportów wymaga jednak nieco bardziej wyrafinowanych umiejętności technologicznych.
KOMENTARZE