Narzędzia Business Intelligence dla managera: QlikView i Qlik Sense

Szukając odpowiedniego narzędzia do analizy i prezentacji danych, z pewnością natrafimy na szeroki wachlarz produktów dostępnych na rynku Business Intelligence. W ostatnim raporcie Gartnera dotyczącego analizy narzędzi rynku BI, w którym bierze się pod uwagę kompletność wizji i zdolność do jej realizacji, na pozycji lidera uplasowały się trzy produkty: Microsoft BI, Tableau i Qlik. W tym artykule pragnę przedstawić narzędzia platformy Qlik, które na rynku polskim wdrażane są już od wielu lat, a z obserwacji śmiem twierdzić, że przyjmują się u nas znacznie lepiej niż system Tableau…

Zapraszam do przeczytania całego mojego artykułu na stronie JCommerce:

http://www.jcommerce.pl/jpro/article/narzedzia-business-intelligence-dla-managera-qlikview-i-qlik-sense

Najważniejsze trendy w analityce i gospodarce cyfrowej w 2016 roku – webinarium

Bezpłatne webinarium na żywo | czwartek, 28 stycznia | godz. 13:00

Weź udział w webinarium Qlik i IDC, podczas którego eksperci opowiedzą o najważniejszych trendach w analityce i gospodarce cyfrowej w 2016 roku, takich jak: aktywizm informacyjny zmieniający zaangażowanie użytkowników, koniec szumu wokół Big Data i coraz większa rola historii opowiadanych za pomocą danych. Przekonaj się, czy nie umknęło Ci nic ważnego, i dowiedz się, na co zwrócić uwagę w nadchodzących miesiącach.

Zapis na stronie: http://go.qlik.com/POL_2016_Q1_2016_Trends_Live_Webinar_Macrologic_Registration_LP.html

Zaokrąglanie liczb

Jeśli potrzebujesz właściwie zaokraglić do „iluś” miejsc po przecinku użyj funkcji ROUND:

=Round(86.656982, 0.01)   Rezultat: 86.66

 

Użycie funkcji Num() będzie zmieniało wyświetlany format, ale nie zaokrągli liczby np. przy wyliczeniu TOTAL lub exporcie do Excela.

Round(86.656982, 0.01) = Round(86.660001, 0.01)

Num(86.656982, '#0.00′) <> Num(86.660001, '#0.00′)

Czyszczenie wszystkich selekcji kalendarza w set analysis

Czasami potrzeba by w set analysis wyłączyć selekcję na datach. Zamiast wypisywać wszystkie pola, użyte w kalendarzu, a mogące być selekcją, np. Year=, MonthName=, itd… możemy użyć zmiennej.

Henric Cronström z Qlika podpowiada, by użyć zmiennej, która automatycznie wygeneruje nam listę selekcji użytkownika na Kalendarzu i wyczyści ją.

W Load Scripcie ustawiamy jej definicję:

Set vClearCalendar = "='[' & Concat({1<$Table={'Calendar'}>} $Field, ']=,[') & ']=' ";

W naszych obiektach możemy odwołać się do niej w set analysis:

Sum ({$<$(vClearCalendar)>} Amount)

Co rozumie się przez wykonanie przykładowo poniższego kodu:

Sum ({$<[Date]=,[Day]=,[Month]=,[Week]=,[Year]=>} Amount)

Analogiczne czyszczenie selekcji, możemy zastosować do innych tabel, wpisując w definicję zmiennej daną nazwę tabeli.

Żródło: https://community.qlik.com/blogs/qlikviewdesignblog/2013/11/18/dollar-expansions

QlikView vs Qlik Sense – wrzesień 2015

Ostatnimi czasy, przy nasilonej kampanii Qlik Sense, deweloperzy jak i potencjalni użytkownicy technologii Qlik zadają sobie pytanie: Co wybrać? Dojrzałe narzędzie QlikView czy startujący w podboju systemów self-service BI Qlik Sense? Wielu deweloperów QV podchodzi do nowego produktu z wielką ostrożnością. Być może nie poznali jeszcze, czym jest całe otwarte środowisko Qlik Sense, z możliwościami API, rozbudowywania o własne rozszerzenia, implementacją obiektów na własnych stronach. Sama wersja desktop nie pokazuje pełni tych możliwości. Powracając do pytania, wszystko zależy od tego, co chcemy uzyskać. Ktoś na forum Community napisał, że QV jest zaawansowanym narzędziem, dla wymagającego użytkownika, a QS jest prostszy, ładniejszy, przygotowany pod self-service i urządzenia mobilne. Jeśli Qlik nie przerzuci do QS większości praktycznych funkcji z QV, nie zyska szybko poparcia. Oczywiście, możemy sobie sami napisać rozszerzenia, właściwie zrobić swój system BI. QV pozwala deweloperowi na bardzo wiele możliwości konfiguracyjnych i definiowanych akcji, dając to w standardzie. Tu jest jego przewaga, choć z każdą wersją Qlik Sense jest coraz lepiej z dostępną funkcjonalnością. Podsumowując. Żyjemy w czasach dynamicznie zmieniających rynek BI. Jeśli Qlik chce konkurować z Tableau, musi proponować rozwiązania otwarte, pisane w najnowszych technologiach. Lecz przy tym nie należy lekceważyć głosu deweloperów, którzy oczekują od produktu większych możliwości – również w standardzie.

Lp. Porównanie QlikView 11.20 Qlik Sense 2.1 Uwagi
1.  Pierwsza publikacja 1996 09.2014  
2.  Środowisko pracy QlikView Desktop Qlik Sense Desktop darmowe
    QlikView Server Qlik Sense Enterprise komercyjne
    QlikView Publisher   komercyjne
3.  Platforma Windows 32/64 bitowa 64 bitowa  
4.  Zalecana przeglądarka Internet Explorer Google Chrome  
5.  Możliwość tworzenia  aplikacji w przeglądarce nie tak  
6.  Asocjacyjna analiza danych tak tak wybór jednej wartości filtruje inne obiekty połączone z daną selekcją
7.  Analiza in-memory (RAM) tak tak  
8.  Przygotowanie aplikacji po  stronie developera developera lub użytkownika  
9.  Intuicyjne i szybkie  nauczenie się pracy z  aplikacją nie tak dotyczy tworzenia; większość w QS drag and drop
10.  Rozszerzenie pliku aplikacji .qvw .qvf  
11.  Możliwość dodania gotowych  rozszerzeń JavaScript nie tak Implementacja rozszerzeń wymaga pracy developera/programisty JS;  zasoby gotowych rozwiązań na www.branch.qlik.com
12.  Virtual proxy nie tak  
13.  Export do Excela, pdf tak tak  
14.  Eksport do pdf –  przygotowanie layoutu  raportu tak nie w QS mamy eksport całego dashboardu do pdf
15.  NPrinting tak nie  
16.  Macro tak nie w zamian Extensiony pisane w JavaScript
17.  Mashup – osadzenie  obiektów Qlik na  zewnętrzych stronach nie tak  
18.  Implementacja rozszerzeń słabe wsparcie rozbudowana w QS przede wszystkim JavaScript
19.  Alternate States tak nie  
20.  Triggery / definiowanie akcji tak nie bardzo słaby punkt dla QS
21.  Ajax tak nie  
22.  HTML5 nie tak chyba najważniejsza zaleta systemu QS
23.  WebSockets, JSON, CSS3,  REST nie tak QS to środowisko otwarte; możliwość programowej ingerencji
24.  Responsywność layoutu nie tak tu QS odskakuje QV!
25.  API skromne rozbudowane można się np. podpiąć do samego Engine API, dostając czyste dane z funkcją asocjacji wg selekcji
26.  Dostosowanie wizualizacji  obiektów rozszerzone dość ograniczone ciągle się to zmienia, z każdą wersją QS jest tego więcej; choć nadal QlikView odskakuje do przodu z pakietem standardowych możliwości dostosowania wykresu lub tabeli; oczywiście w QS można przeedytować wizualizację w java scripcie oraz css (zmiany globalne).
28.  QMC – konsola administracji QMC dla QV QMC dla QS w QS konsola bardziej user-friendly
29.  Section Access tak tak, ale nie w Desktopie  
30.  Licencjonowanie Named User, User Session, Document CAL, Usage CAL 1 Token = 1 user full access lub 10 access pass (sesji) w QS możliwość pracy przez anonimowego użytkownika
31.  Tworzenie i edytowanie  aplikacji wiele osób tylko 1 osoba (twórca)  
32.  Edycja opublikowanej  aplikacji tak nie w QS można jedynie dodawac nowe arkusze do analizy, bądź zduplikować aplikację by ją później móc edytować
33.  Engine – specjalny silnik  aplikacyjny od wersji 12 jest wersja 12 QV jeszcze nie ma oficjalnego wydania
34.  Repozytorium danych  technicznych pliki systemowe PostgreSQL  
35.  Tworzenie plików .qvd tak tak  
36.  Load Script tak tak  
37.  Profilowanie kolumn  (analiza i ujednolicenie  aliasów kolumn  zawierających podobne  dane) nie tak  
38.  Set analysis tak tak  
39.  DataMarket z poziomu  aplikacji – import gotowych  rozszerzeń nie tak sklep zawiera bezpłatne oraz płatne rozszerzenia
40.  Tworzenie scenariuszy /  prezentacji danych z opisem  i zrzutami wykresów nie tak w QS nazywa się to Stories
41.  Snapshoty (zrzuty ekranu,  obiektów) nie tak  
42.  Bookmarki (własne zbiory  selekcji) tak tak  
43.  Usługa cloudowa (dzielenie  się z innymi) nie tak Cloud rozbudowany – dodatkowo płatny
44.  Wspomaganie pracy wielo- węzłowej (multi-node) nie tak możliwa instalacja serwisów Qlik Sense na wielu instancjach Servera Windows

 

Opracowanie własne, wrzesień 2015

Obowiązkowa lektura dla każdego developera – zapisywanie danych przez Qlik (Bit-Stuffed Pointers)

Jeśli nie czytałeś nic wcześniej o zapisywaniu danych w Qliku (tzw. Bit-Stuffed pointers) to koniecznie zapoznaj się z tym artykułem:

Po nim odsyłam Cię do artykułu na temat optymalizacji zapisu danych (przykład z datą i czasem – m.in. jak zmniejszyć plik qvd z 3 GB do 50 KB !!)

TAG FIELD – oznacz co jest wymiarem, a co miarą

Po utworzeniu modelu warto zrobić mały porządek z oznaczeniami kolumn, co jest czym – wymiarem czy miarą. Jeśli oznaczymy, że dana kolumna jest wymiarem (dimension), to przy tworzeniu nowego obiektu (np.chart) na liście wyborów kolumn wymiary będą zaznaczone na szaro i wylistowane u góry.

Gdy przejdziemy do określania miar obiektu w polu w definicji miary (expression) nasze kolumny oznaczone jako miary będą zaznaczone i wylistowane pierwsze.

 

W Qliku możemy to zrobić na kilka sposobów. Ja opiszę trzy:

  • Sposób I – W ustawieniach dokumentu – zakładka Tables:

 

  • Sposób II – w Load Script tworzymy nową zakładkę, nazwijmy ją TAGS >> oznaczamy nasze kolumny jako $dimension lub $measure:
//DIMENSIONS - wymiary
TAG FIELD Produkt with $dimension ;

//MEASURES - miary
TAG FIELD SprzedazNetto with $measure;
TAG FIELD SprzedazBrutto with $measure;

  

  • Sposób III – w Load Script wprowadzamy INLINE TABLE lub ładujemy dane z Excela. Wymiary i miary rozpisujemy w dwóch kolumnach: Pole, Tags ($dimension lub $measure):

Nastepnie mapujemy Excela i poleceniem TAG FIELDS USING nazwa_tabeli oznaczamy TAGI w dokumencie.

TagsTable:
Mapping LOAD 
	 Pole, 
     Tags
FROM
tags.xlsx
(ooxml, embedded labels, table is Arkusz1);

Tag Fields using TagsTable;

 

Jeśli jakieś kolumny nie mamy w naszym modelu, a oznaczamy ją TAG`iem, zostanie on zignorowany.

Nazwa miesiąca z daty lub numeru miesiąca (Load script)

Jeśli chcemy w Load Script do jakieś tabeli dodać kolumnę z nazwą miesiąca, najprościej odwołać się do ustawionej zmiennej w głównej zakładce Load Scriptu:

SET MonthNames=’sty;lut;mar;kwi;maj;cze;lip;sie;wrz;paź;lis;gru’;

Aby pobrać te nazwy wystarczy zastosować funkcję MONTH:

LOAD
Miesiac_nr,
Month(MakeDate(2015,Miesiac_nr)) as Miesiac_nazwa
FROM...

Prosty sposób, bez kombinowania z mapowaniem nazw miesiąca. Rok w tym przypadku może być dowolny, tworzymy sztuczną datę, a „Miesiac_nr” to oczywiście nazwa kolumny z numerem miesiąca.