.
Én értékelésemben minden idők legrosszabb szakkönyve jelent meg 2013 augusztusában (elektronikusan 20, míg papírkötésben 40 USD):
Pact Publishing: Tableau Data Visualization Cookbook
Pedig a könyvkiadót a szakkönyveivel nagyon szeretem. Nagyon frissen cuppannak rá, nagyon aktuális témákra.
Ennél a könyvnél ráadásul a kiadó inkorrektnek tűnik első ránézésre, mert a tartalomjegyzéknél nem látszanak oldalszámok. Ez a cookbook írd és mondd, az index utolsó oldalával együtt 156.oldal(!). A könyv "overview"-jánál meg egyenesen 172 oldal látszik.
Már ennyiből is látszik, hogy nehéz komolyan venni a könyvet, leginkább azért, mert nincs minősítés (kezdő-haladó).
Azt el tudom (nagy nehezen) képzelni, hogy haladó fogások egy halmazára elég legyen 156 oldal, de ilyesmiről itt nincs szó.
Azt is el tudom képzelni, hogy egy bevezető "szakácskönyv" legyen 156 oldal - hiszen egyébként pártolom a minél kevesebb betűre való törekvést, itt a blogomon is :)
Chapter 1: Connecting to Data Sources
Chapter 2: Creating Univariate Charts
Chapter 3: Creating Bivariate Charts
Chapter 4: Creating Multivariate Charts
Chapter 5: Creating Maps
Chapter 6: Calculating User-defined Fields
Chapter 7: Customizing and Saving
Chapter 8: Exporting and Sharing
Chapter 9: Exploring Advanced Features
Hogyan lehet egy ilyen tartalomjegyzékkel megúszni a témát? A legdurvább, legutolsó advanced feature a "create parameter". Ezt mégis hogyan tudja komolyan gondolni egy ember? A könyvnek egyetlen érdemi értéke van, hogy az egyes tippeknél vannak "there's more" szekciók, valós, nagyon jó linkekkel. A könyv egyedül emiatt lehet esetleg érdekes, meg ha azt vesszük annyira nem drága (szigorúan csak elektronikus verzióban).
Személyes adalék:
Jövőre, 30 éves pályám során (20 évesen kezdtem lyukkártyás R-11-es IBM360-as KGST-klónon), mindösszesen csak három téma kapcsán fordult meg bennem, hogy de jó lenne tanítani, meg milyen nagy dolog lenne.
(1) SQL. Ezt elsősorban azért, mert meggyőzödésem, hogy világszerte rosszul tanítják, rossz elvek és rossz tankönyvek alapján. Én magam mondhatni egyetlen jó SQL-tankönyvet nem láttam (referencia nem tartozik ide, hiszen az nehezen tud rossz lenni). Ezt tudom nagyon hihetetlenül/morbidan hangzik, egy alaptémánál, de akkor is így van. Az én határozott véleményem az, hogy jobb tanítási módszerekkel, sokkal többet hozhatnának ki a felhasználók az sql-ből, sokkal "funny"-bb módon.
(2) Adatbányászat. Nyilván. :) Itt persze elsősorban az izgat, hogy hogyan lehetne kedvet csinálni hozzá, hogyan kellene a hatalmas anyagból válogatni, rendszerezni, mondjuk 1 másfélórás előadásra vagy 1 féléves főiskolai kurzusra. Hogyan lehetne közelhozni az egészet, érdekes és nem triviális módon (ami a legtöbb tananyag nagy hibája olvasatomban).
(3) Tableau. Szintén nyilván :) Tableau-val egy nagy gondom van e téren, hogy az idő múlásával párhuzamosan amint belekeveredek egyre "durvább" Tableau-s projektekbe, veszem észre, hogy egyre több mindent kéne még tudnom, egyre több van hátra. ;) Pedig egy egyszerű, felhasználóbarát szoftvernek néz csak ki, amit imádnak az üzleti userek.
Mindez pedig azért gond, mert egy oktató felé minimális elvárás, értelmezésemben, hogy legalább valamilyen szinten ontopik módon meg tudjon válaszolni minden - oktatás során - felmerülő kérdést. Na ettől én még messze érzem magamat, igazándiból csak egyetlen embert ismerek, aki megfelel ennek a kritériumnak. Azt gondolom egyébként, hogy nagyon nagy erőfeszítést igényel a 90%-ról a 99%-ra lépni.(ezért is lenne jó hivatalos Tableau oktatási anyagokat látni, amire eddig nem volt még módom).
A következő címkéjű bejegyzések mutatása: interactive. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: interactive. Összes bejegyzés megjelenítése
2013. december 8., vasárnap
2013. november 21., csütörtök
Tableau: Lehet-e egy vizualizálás "lassú"?
.
Bizony lehet - mily meglepő... ;) A dolog háttere, orvosságai viszont nem egyszerű topik.
Az én tapasztalatom szerint az üzleti userek, perdöntően nem szeretik az SQL-t, viszont tetszőleges mennyiségben szeretnek kattingatni. Nem véletlen, hogy annó SQL-alternatívaként létrejöttek különféle query-builderek, amik elfedték az SQL-t a felhasználó elöl, és megadták a kattingatás élményét.
Én mindig is nagy ellensége voltam ezeknek a query-buildereknek (ahogy szerintem az sql-ezni szeretők többsége is), mert általában éles környezetben sok adatra elengedett összeklikkelgetett query-k finoman szólva sem voltak optimálisak, súlyosabb esetben kvázi felsírt a szerver a végrehajtás során.
Ami még ezt is überelte, amikor "drag and drop"-pal tudtak valami soseem lefutó kifagyáshoz vezető csodát összehozni, teljesen torz szemléletet kölcsönözve az egész témának, hamisan értelmezett "ügyfélért mindent" elv alkalmazásaként. Ebben a műfajban a legelviselhetetlenebb szoftver az Oracle Discoverer volt.
Külön "szép" az idevágó Oracle Exadata sztori, ami úgy rettenetes pénzbe kerülő, hogy a problémakört nem oldja meg, csak egy kicsit jobban lazít a tárgybeli szorításon. Tipikusan az az út, amikor gondolkodás/tervezés helyett ablakon lehet kidobni zsákszámra a pénzt, vitatható megtérüléssel.
Volt olyan munkahelyem, ahol egyenesen tiltották is ezeket az adhoc összeklikkelgetett lekérdezéseket. Az a felhasználói kívánság még vágyálom, hogy ne kelljen foglalkozni ilyen aspektusokkal, csak csinálja meg a gép - és persze gyorsan - amire szükség van.
Na most a Tableau-ban is van ilyen eldugott query-builder, kerülöm is saját munkám során. ;) És ha van ilyen, akkor ebből a tényből triviálisan következik, hogy van ügyfélpanasz arra, hogy "lassú a Tableau".
Szegény Tableau két rossz között választhat: egy rossz és egy még rosszabb között. Elviseli igazságtalanul a vádat, hogy ő lassú lenne (ráadásul "gyorsuló idő" közepette), noha csak azt csinálja, amire utasítják. Vagy pedig lebeszéli a usereket az észnélküli adhoc lekérdezés-klikkelgetésről, potenciális ügyfeleket veszítve.
A poén az, hogy a Tableau-ban egy II.generációs intelligensebb query-builder van. Magyarán lehet úgy kattingatni az adatoforrások között, hogy okosabb kattingatáshoz gyorsabb vizualizálás tartozhat. Mit is jelent ez?
Például vizualizálás elötti adatforrás-definiáló "kattingatáshoz" érdemes tudni
- Hogy számít a filterek sorrendje.
- Hogy érdemes contextet használni, hogy ne full táblás joinok legyenek szűrések elött
- Hogy érdemes nem denormalizált táblákkal dolgozni (súlyos distinctes allekérdezéseket feleslegesen generálva), hanem a dimenziókat rendesen behúzni.
- Hogy nem mindegy live-e az adatkapcsolat.
- Hogy érdemes riportálási adatpiacra rácsattani, lényegesen jobb felhasználói élményért.
- És itt egy szót sem szólva olyan lehetőségekről, hogy szerver odlalon meg lehet nézni a Tableau által kigenerált SQL és végrehajtási tervét. Pedig mekkora okosság ám ez.
És akkor ezek csak a kattingatós trükkök. Most képzeljük el,hogy mennyivel jobb eredmény/feeling érhető el SQL segítségével. ;)
Bizony lehet - mily meglepő... ;) A dolog háttere, orvosságai viszont nem egyszerű topik.
Az én tapasztalatom szerint az üzleti userek, perdöntően nem szeretik az SQL-t, viszont tetszőleges mennyiségben szeretnek kattingatni. Nem véletlen, hogy annó SQL-alternatívaként létrejöttek különféle query-builderek, amik elfedték az SQL-t a felhasználó elöl, és megadták a kattingatás élményét.
Én mindig is nagy ellensége voltam ezeknek a query-buildereknek (ahogy szerintem az sql-ezni szeretők többsége is), mert általában éles környezetben sok adatra elengedett összeklikkelgetett query-k finoman szólva sem voltak optimálisak, súlyosabb esetben kvázi felsírt a szerver a végrehajtás során.
Ami még ezt is überelte, amikor "drag and drop"-pal tudtak valami soseem lefutó kifagyáshoz vezető csodát összehozni, teljesen torz szemléletet kölcsönözve az egész témának, hamisan értelmezett "ügyfélért mindent" elv alkalmazásaként. Ebben a műfajban a legelviselhetetlenebb szoftver az Oracle Discoverer volt.
Külön "szép" az idevágó Oracle Exadata sztori, ami úgy rettenetes pénzbe kerülő, hogy a problémakört nem oldja meg, csak egy kicsit jobban lazít a tárgybeli szorításon. Tipikusan az az út, amikor gondolkodás/tervezés helyett ablakon lehet kidobni zsákszámra a pénzt, vitatható megtérüléssel.
Volt olyan munkahelyem, ahol egyenesen tiltották is ezeket az adhoc összeklikkelgetett lekérdezéseket. Az a felhasználói kívánság még vágyálom, hogy ne kelljen foglalkozni ilyen aspektusokkal, csak csinálja meg a gép - és persze gyorsan - amire szükség van.
Na most a Tableau-ban is van ilyen eldugott query-builder, kerülöm is saját munkám során. ;) És ha van ilyen, akkor ebből a tényből triviálisan következik, hogy van ügyfélpanasz arra, hogy "lassú a Tableau".
Szegény Tableau két rossz között választhat: egy rossz és egy még rosszabb között. Elviseli igazságtalanul a vádat, hogy ő lassú lenne (ráadásul "gyorsuló idő" közepette), noha csak azt csinálja, amire utasítják. Vagy pedig lebeszéli a usereket az észnélküli adhoc lekérdezés-klikkelgetésről, potenciális ügyfeleket veszítve.
A poén az, hogy a Tableau-ban egy II.generációs intelligensebb query-builder van. Magyarán lehet úgy kattingatni az adatoforrások között, hogy okosabb kattingatáshoz gyorsabb vizualizálás tartozhat. Mit is jelent ez?
Például vizualizálás elötti adatforrás-definiáló "kattingatáshoz" érdemes tudni
- Hogy számít a filterek sorrendje.
- Hogy érdemes contextet használni, hogy ne full táblás joinok legyenek szűrések elött
- Hogy érdemes nem denormalizált táblákkal dolgozni (súlyos distinctes allekérdezéseket feleslegesen generálva), hanem a dimenziókat rendesen behúzni.
- Hogy nem mindegy live-e az adatkapcsolat.
- Hogy érdemes riportálási adatpiacra rácsattani, lényegesen jobb felhasználói élményért.
- És itt egy szót sem szólva olyan lehetőségekről, hogy szerver odlalon meg lehet nézni a Tableau által kigenerált SQL és végrehajtási tervét. Pedig mekkora okosság ám ez.
És akkor ezek csak a kattingatós trükkök. Most képzeljük el,hogy mennyivel jobb eredmény/feeling érhető el SQL segítségével. ;)
Címkék:
Adatvizualizálás,
blog,
interactive,
software,
tableau,
Tableau8,
visualization,
vizualizálás,
windows
Breaking News: Kijött a Tableau v8.1
.
Kijött a Tableau v8.1 :)
Letölthető a doksi is, és egy újabb hiányosság pipálódhat ki. Kisebb lett 866 oldal, 1.000 oldal helyett (redundanciák remélhetőleg kevesebben vannak), illetve szervezettebb, és olvashatóbb lett. Az R integration-t viszont first look-ra nem találtam. :(
Ígéret szerint van már full 64-bit. fel is raktam. 420 MB a tárfogalalása (v8.0-nak csak 300 MB volt). Kulcsot nem kér pluszba, de regisztrálni kell.
Ígéret szerint van benne R Integration.
Íme alul a gyönyörűségesen szépségesen szép képek
1.K-Means
2-3. Outlier-analízis.
Na innentől klasszikus értelmet nyer a Visual Data Mining És meglehet a Datameer-típusú versenytásaknak is fel van adva ezáltal a lecke.
;)
.
Kijött a Tableau v8.1 :)
Letölthető a doksi is, és egy újabb hiányosság pipálódhat ki. Kisebb lett 866 oldal, 1.000 oldal helyett (redundanciák remélhetőleg kevesebben vannak), illetve szervezettebb, és olvashatóbb lett. Az R integration-t viszont first look-ra nem találtam. :(
Ígéret szerint van már full 64-bit. fel is raktam. 420 MB a tárfogalalása (v8.0-nak csak 300 MB volt). Kulcsot nem kér pluszba, de regisztrálni kell.
Ígéret szerint van benne R Integration.
Íme alul a gyönyörűségesen szépségesen szép képek
1.K-Means
2-3. Outlier-analízis.
Na innentől klasszikus értelmet nyer a Visual Data Mining És meglehet a Datameer-típusú versenytásaknak is fel van adva ezáltal a lecke.
;)
.
Címkék:
Adatvizualizálás,
blog,
interactive,
software,
tableau,
Tableau8,
visualization,
vizualizálás,
windows
Tableau: ETL-Monitoring GANTT-diagramon keresztül
.
Egy érdekes tárgybeli éles projekt DEMO-verziójának leírása következik alább, természetesen anonimizált adatokkal, de meghagyva az "éles kontextust".
FELADAT:
Adva van egy ETL-eszköz (egyébként TALEND), ami mindenféle job-ok révén adatot tölt adatbázisokba.
LEÍRÁS, SCREENSHOT-okkal :
Miért érdekes a téma, hogy blogposztot szánok neki?
- Mert megmutatja (szvsz) a vizualizálás hihetetlen erejét: komplex Tableau-kalkulációk, dashboard, action filter, minden haladó üzleti intellgiencia hókusz-pókusz NÉLKÜL is.
- Mert ingyen (hiszen lehet-e létezni Tableau nélkül egy enterprise kategóriájú business-ben :), pár kattintással, sok embernek ad konszenzusos információt.
Adatokról:
- Vannak tehát JOBGROUP-ok
- Amik futásilag elindulnak (opcionálisan periodikusan)
- Kézzel vagy automatikusan
- Hétközben vagy hétvégén
- Tartanak valameddig
- Van nekik státuszuk
- Van nekik futási idejük
- Végül, de nem utolsó sorban vagy teljesítik az SLA-t (=Service Level Agreement), vagy nem.
- Futó JOBGROUP-ok esetén meg különböztetődnek az "in progress" meg "pending" job-ok. Az előbbi jó ("futhat"), az utóbbira lehet, hogy rá kell nézni. Minden JOB-nak van előélete (futott már korábban), ha vesszük a MAXIMÁLIS futásidőt, ezt szorozzuk egy konstanssal (pl.: 0.9-cel), akkor ez lehet egy küszöbérték, ami alatt "in progress", ami felett "pending"-nek vesszük az adott JOBGROUP-ot.
Mikor "jó" az ábránk, értve ezalatt, hogy a menedzser nyugodtan issza meg a kávéját, miután rátekintett.
- Minden automatikus JOBGROUP elindult
- Lefutott
- Sikeresen futott le minden
- Nem volt megelőzően sikertelen futás
- Belül van a futás vége az SLA-nak
- Futó JOBGROUP, ha van akkor "in progress"
Az igazi "real-life" projekt persze komplexebb volt:
- Voltak JOB-ok, JOBGROUP-okba szervezve (hierarchikusan)
- Voltak fontosabb és még fontosabb JOB-ok/JOBGROUP-ok
- Volt, hogy ebédtől(12:00) ebédig is kellett ábrázolni a napokat.
- Voltak effektív hibaüzenetek
- Voltak contextek
- A TALEND-logokat előemészteni, adatgazdagítani kellett
- stb.
Nem lehet célom a teljes projekt bemutatása egy ilyen blogposztban, még ez a maximálisan könnyített verzió sem lesz rövid.
1.
Ahogy megbeszéltük az elején, van egy kész "DEMO" adatforrásunk, a szükséges adatokkal (esetünkben 80.000+ rekorddal)
.
2.
Nézzünk bele az adatokba.
Rögtön az első oszlopnál (day_of_week), a WE(=WeekEnd) mutatja, hogy az adott nap hétvége-e.
A start_hours_minutes a 4:30-at 4.5-re konvertálja (60-as számrendszerről 10-esre áttérés)
.
3.
"Start Time" oszlopot konvertáljuk "CONTINUOS-ra"
.
4.
Ugyanígy az "End Time" oszlopot is konvertáljuk "CONTINUOS-ra"
.
5.
Válasszuki a "GANTT-diagrammot".
Az elképzelés az, hogy a vízszintes tengelyen lesznek a napok, függölegesen az órák [0-24]
Lesznek téglalapocskáink a töltésekre (adott napon mettől meddig tartott egy töltés)
.
6.
Vonszoljuk fel drag and drop-pal a "COLUMNS"-ba, a "DIMENSIONS"-ök közül a "DAY_OF_WEEK"-et. A színe automatiksuan kék lesz a "DIMENSIONS" miatt.
.
7.
Ugyamígy vonszoljuk fel a "ROWS"-ba a "MEASURES" -k közül a "START_HOURS_MINUTES"-t. A színe automatiksuan zöld lesz a "MEASURES" miatt.
.
8.
Mivel a "START_HOURS_MINUTES"-t measure-ként ismerte fel a Tableau (ennek aggregálási hátrányaival), konvertáljuk DIMENSION-né.
.
9.
Vonszoljuk a "MESSAGE_IMPORTANT_JOBGROUP" dimenziót a "COLOR"-ra (ott balközép tájon).
A dimension-név mellett megjelent a jellegzetes, "COLOR"-specifikus ikon.
Nyilván szinesben szeretnénk látni, hogy sikeres-e vagy sem egy JOB-futás.
Kezd alakulni a vizualizációnk, megjelentek a várva-várt téglalapocskák, ráadásul színesen :)
.
10.
A Tableau default-ban "ZÖLD"-re rakta a "sikeres"-ket (ami jó), de a "sikerteleneket" "KÉK"-be. Ezért az utóbbi módosítsuk "PIROS"-ra
.
11.
Ki kell jelölni a "FAILURE"-t, majd lehet a "PIROS" négyzetre klikkelni.
.
12.
Rögtön jobban elüt a sikeres töltés a sikertelentől :)
.
13.
Vonszoljuk fel a "DURATION_IN_HOUR" measure-t a "SIZE"-ba.
Nyilván egy téglalap annál hosszabb. minél tovább tartott a futás idő.
A measure-név mellett megjelent a jellegzetes "SIZE"-specifikus ikon.
.
14.
Formázzuk meg a függőleges tengelyt.
.
15.
Ne automatikus legyen, nem szimpatikus értékekkel
.
16.
Hanem "FIXED", elvégre egy napban mindig konstansan 24 óra van. :)
.
17.
A skálázás se default automatikus legyen
.
18.
Hanem félórás léptékű.
Ez még nem túl sok, de már elég finom felbontás
.
19.
Gyönyörködhetünk a frissen elkészült függöleges tengelyben.
.
20.
Jöhet a vízszintes tengely
Én elfordítottam "ROTATE"-tel 90%-kal a napokat (default beállítással szemben), hogy több napot lehessen egybe látni.
Mivel a napok végén van a "WE", ha hétvégére esik, így azonnal szembeszökik, hogy melyik nap hétvége.
Nyilván kérdés, hogy a WE hol mutat jobban, a dátum elején (szintbehozva a dátumokat) avagy a végén. Ez ízlés kérdése, nekem így tetszett jobban :)
Nyilván szebb lenne, ha a tengelyen szinezni lehetne a napokat, de ez kulturáltan nem kivitelezhető a Tableau jelenlegi 8.0-s verziójában. Valami ígéret van, hogy 8.1-ben lesz előrelépés ez ügyben is.
.
21.
Most már jöhet a diagram formázása.
.
22.
Nyilván szeretnénk valamiféle GRID-et, hogy jobban vezetődjék a szemünk.
A gridnek van vonaltípusa, vonalvastagsága, vonalszíne.
Külön felhívnám a figyelmet, hogy ezt a várakozásokkal ellentétben, nem a "GRID"-ikonra kattintva lehet beállítani, hanem a "LINES"-nál ;)
.
23.
Egyre inkább alakul :)
.
24.
Természetesen (quick)filterek nélkül nem élet az élet.
Vonszoljuk fel az "IMPORTANT JOBGROUP"-ot a filterek közé
Válasszuk ki a "USE ALL"-t (hogy mindenből lehessen választani)
.
25.
Majd pipáljuk be a "SHOW QUICK FILTER-t"
.
26.
Lám jobb oldalon megjelent a kívánt quick filter. :)
.
27.
Helykímélésből nem ismétlem meg a screenshot-okat
A további mezők quick fitleresítése ugyanígy megy.
- MANUAL_OR_BATCH_PID
- MESSAGE_IMPORTANT_JOBGROUP
- IS_SLA
stb. (igény szerint)
.
28.
Quick filtereknél lehet állítani, hogy "ONLY RELEVANT VALUES".
Ennek az az értelme, hogy mivel minden mindennel összefügg, lehet, hogy egy kattintás nyomán nem lesz az ábrán minden lehetséges érték - például csak sikeres futások találhatók adott kontextusban. :)
.
29.
Hátravan a téglalapocskák "TOOLTIP"-ezése
Ehhez elsőként a megjelenítendő adatokat vonszoljuk a "DETAIL"-be.
Elsőként az IMPORTANT_JOBGROUP-ot
.
30.
Majd:
RUNNING_TIME_WO_DAYS (00:00:00 formában mutatja a futási időt)
START_TIME-ot
.
31.
YEAR(START_TIME) defaultot , állítsuk "EXACT DATE"-re.
.
32.
Ugyanígy az END_TIME-nál is, ismételjük meg ezt.
.
33.
A TOOLTIP-re kettőt kattinva, notepad-szerűen szerkeszthetjük a TOOLTIP-et
.
34.
Sőt meg is nézhetjük "PREVIEW" -val mit alkottunk.
.
35.
Így néz ki a TOOLTIP élesben
.
36.
Mivel előbb-utóbb több napnyi adat lesz, mint ami egy képernyőre kifér, célszerű állítani, hogy csak az utolsó X nap látszódjék
.
37.
Ezt kell állítani hozzá
.
38.
És készen vagyunk.
Nyilván egyéni ízlés szerint lehet finomhangolni vizuális elemeket, egyebeket.
Az én főnököm például jobban szereti a rádiógombokat, míg én meg a checkbox-okat szeretem jobban, stb. :)
Vagy lehetne vízszintes referenciavonalat húzni az SLA-hoz, például reggel 8:00-hoz
A lényegen ez már nem változtat. ;)
Mit látunk?
Bár korábban volt rendesen sok piros, mostanra normalizálódott a helyzet, egyre több a zöld, egyre kevesebb a piros téglalap. Ráadásul mindegyik ugyanakkor indul automatikusan, nem kézzel kell hackelni, hibalehetőségekkel. Sőt a még a futási idők is hasonlítanak egymásra.
Mire nem jó egy vizualizáció ugye :)
.
Eddigi TABLEAU-blogposztjaim:
2013.06.17 - Data Science: Tableau-feladatok
2013.06.22 - Tableau: Egy vizualizációs stratégia lehetséges szubjektív sarokpontjai
2013-07-05 - Tableau: Mindennapi örömök
2013.07.09 - Tableau: Eset a NEM-létező egzotikus nagygépes adatpiaccal
2013.11.16 - Tableau: Aktuális Pros/Cons egyenleg
2013.11.17 - Tableau: Text Table
Ha valakinek még nincs meg a Tableau-szoftver, miközben szeretne engedni a birtoklási csábításnak, az alábbi mail-címen egy kedves, fiatal, aranyos kolléganő igyekszik hatékony és konkrét eszközök segítségével ápolni minden Tableau-vonzatú kapcsolatot. Illetve biztos segít optimális árat találni a termékhez vezető rögös úton. :)
hello@tableausoftware.hu
Egy érdekes tárgybeli éles projekt DEMO-verziójának leírása következik alább, természetesen anonimizált adatokkal, de meghagyva az "éles kontextust".
FELADAT:
Adva van egy ETL-eszköz (egyébként TALEND), ami mindenféle job-ok révén adatot tölt adatbázisokba.
LEÍRÁS, SCREENSHOT-okkal :
Miért érdekes a téma, hogy blogposztot szánok neki?
- Mert megmutatja (szvsz) a vizualizálás hihetetlen erejét: komplex Tableau-kalkulációk, dashboard, action filter, minden haladó üzleti intellgiencia hókusz-pókusz NÉLKÜL is.
- Mert ingyen (hiszen lehet-e létezni Tableau nélkül egy enterprise kategóriájú business-ben :), pár kattintással, sok embernek ad konszenzusos információt.
Adatokról:
- Vannak tehát JOBGROUP-ok
- Amik futásilag elindulnak (opcionálisan periodikusan)
- Kézzel vagy automatikusan
- Hétközben vagy hétvégén
- Tartanak valameddig
- Van nekik státuszuk
- Van nekik futási idejük
- Végül, de nem utolsó sorban vagy teljesítik az SLA-t (=Service Level Agreement), vagy nem.
- Futó JOBGROUP-ok esetén meg különböztetődnek az "in progress" meg "pending" job-ok. Az előbbi jó ("futhat"), az utóbbira lehet, hogy rá kell nézni. Minden JOB-nak van előélete (futott már korábban), ha vesszük a MAXIMÁLIS futásidőt, ezt szorozzuk egy konstanssal (pl.: 0.9-cel), akkor ez lehet egy küszöbérték, ami alatt "in progress", ami felett "pending"-nek vesszük az adott JOBGROUP-ot.
Mikor "jó" az ábránk, értve ezalatt, hogy a menedzser nyugodtan issza meg a kávéját, miután rátekintett.
- Minden automatikus JOBGROUP elindult
- Lefutott
- Sikeresen futott le minden
- Nem volt megelőzően sikertelen futás
- Belül van a futás vége az SLA-nak
- Futó JOBGROUP, ha van akkor "in progress"
Az igazi "real-life" projekt persze komplexebb volt:
- Voltak JOB-ok, JOBGROUP-okba szervezve (hierarchikusan)
- Voltak fontosabb és még fontosabb JOB-ok/JOBGROUP-ok
- Volt, hogy ebédtől(12:00) ebédig is kellett ábrázolni a napokat.
- Voltak effektív hibaüzenetek
- Voltak contextek
- A TALEND-logokat előemészteni, adatgazdagítani kellett
- stb.
Nem lehet célom a teljes projekt bemutatása egy ilyen blogposztban, még ez a maximálisan könnyített verzió sem lesz rövid.
1.
Ahogy megbeszéltük az elején, van egy kész "DEMO" adatforrásunk, a szükséges adatokkal (esetünkben 80.000+ rekorddal)
.
2.
Nézzünk bele az adatokba.
Rögtön az első oszlopnál (day_of_week), a WE(=WeekEnd) mutatja, hogy az adott nap hétvége-e.
A start_hours_minutes a 4:30-at 4.5-re konvertálja (60-as számrendszerről 10-esre áttérés)
.
3.
"Start Time" oszlopot konvertáljuk "CONTINUOS-ra"
.
4.
Ugyanígy az "End Time" oszlopot is konvertáljuk "CONTINUOS-ra"
.
5.
Válasszuki a "GANTT-diagrammot".
Az elképzelés az, hogy a vízszintes tengelyen lesznek a napok, függölegesen az órák [0-24]
Lesznek téglalapocskáink a töltésekre (adott napon mettől meddig tartott egy töltés)
.
6.
Vonszoljuk fel drag and drop-pal a "COLUMNS"-ba, a "DIMENSIONS"-ök közül a "DAY_OF_WEEK"-et. A színe automatiksuan kék lesz a "DIMENSIONS" miatt.
.
7.
Ugyamígy vonszoljuk fel a "ROWS"-ba a "MEASURES" -k közül a "START_HOURS_MINUTES"-t. A színe automatiksuan zöld lesz a "MEASURES" miatt.
.
8.
Mivel a "START_HOURS_MINUTES"-t measure-ként ismerte fel a Tableau (ennek aggregálási hátrányaival), konvertáljuk DIMENSION-né.
.
9.
Vonszoljuk a "MESSAGE_IMPORTANT_JOBGROUP" dimenziót a "COLOR"-ra (ott balközép tájon).
A dimension-név mellett megjelent a jellegzetes, "COLOR"-specifikus ikon.
Nyilván szinesben szeretnénk látni, hogy sikeres-e vagy sem egy JOB-futás.
Kezd alakulni a vizualizációnk, megjelentek a várva-várt téglalapocskák, ráadásul színesen :)
.
10.
A Tableau default-ban "ZÖLD"-re rakta a "sikeres"-ket (ami jó), de a "sikerteleneket" "KÉK"-be. Ezért az utóbbi módosítsuk "PIROS"-ra
.
11.
Ki kell jelölni a "FAILURE"-t, majd lehet a "PIROS" négyzetre klikkelni.
.
12.
Rögtön jobban elüt a sikeres töltés a sikertelentől :)
.
13.
Vonszoljuk fel a "DURATION_IN_HOUR" measure-t a "SIZE"-ba.
Nyilván egy téglalap annál hosszabb. minél tovább tartott a futás idő.
A measure-név mellett megjelent a jellegzetes "SIZE"-specifikus ikon.
.
14.
Formázzuk meg a függőleges tengelyt.
.
15.
Ne automatikus legyen, nem szimpatikus értékekkel
.
16.
Hanem "FIXED", elvégre egy napban mindig konstansan 24 óra van. :)
.
17.
A skálázás se default automatikus legyen
.
18.
Hanem félórás léptékű.
Ez még nem túl sok, de már elég finom felbontás
.
19.
Gyönyörködhetünk a frissen elkészült függöleges tengelyben.
.
20.
Jöhet a vízszintes tengely
Én elfordítottam "ROTATE"-tel 90%-kal a napokat (default beállítással szemben), hogy több napot lehessen egybe látni.
Mivel a napok végén van a "WE", ha hétvégére esik, így azonnal szembeszökik, hogy melyik nap hétvége.
Nyilván kérdés, hogy a WE hol mutat jobban, a dátum elején (szintbehozva a dátumokat) avagy a végén. Ez ízlés kérdése, nekem így tetszett jobban :)
Nyilván szebb lenne, ha a tengelyen szinezni lehetne a napokat, de ez kulturáltan nem kivitelezhető a Tableau jelenlegi 8.0-s verziójában. Valami ígéret van, hogy 8.1-ben lesz előrelépés ez ügyben is.
.
21.
Most már jöhet a diagram formázása.
.
22.
Nyilván szeretnénk valamiféle GRID-et, hogy jobban vezetődjék a szemünk.
A gridnek van vonaltípusa, vonalvastagsága, vonalszíne.
Külön felhívnám a figyelmet, hogy ezt a várakozásokkal ellentétben, nem a "GRID"-ikonra kattintva lehet beállítani, hanem a "LINES"-nál ;)
.
23.
Egyre inkább alakul :)
.
24.
Természetesen (quick)filterek nélkül nem élet az élet.
Vonszoljuk fel az "IMPORTANT JOBGROUP"-ot a filterek közé
Válasszuk ki a "USE ALL"-t (hogy mindenből lehessen választani)
.
25.
Majd pipáljuk be a "SHOW QUICK FILTER-t"
.
26.
Lám jobb oldalon megjelent a kívánt quick filter. :)
.
27.
Helykímélésből nem ismétlem meg a screenshot-okat
A további mezők quick fitleresítése ugyanígy megy.
- MANUAL_OR_BATCH_PID
- MESSAGE_IMPORTANT_JOBGROUP
- IS_SLA
stb. (igény szerint)
.
28.
Quick filtereknél lehet állítani, hogy "ONLY RELEVANT VALUES".
Ennek az az értelme, hogy mivel minden mindennel összefügg, lehet, hogy egy kattintás nyomán nem lesz az ábrán minden lehetséges érték - például csak sikeres futások találhatók adott kontextusban. :)
.
29.
Hátravan a téglalapocskák "TOOLTIP"-ezése
Ehhez elsőként a megjelenítendő adatokat vonszoljuk a "DETAIL"-be.
Elsőként az IMPORTANT_JOBGROUP-ot
.
30.
Majd:
RUNNING_TIME_WO_DAYS (00:00:00 formában mutatja a futási időt)
START_TIME-ot
.
31.
YEAR(START_TIME) defaultot , állítsuk "EXACT DATE"-re.
.
32.
Ugyanígy az END_TIME-nál is, ismételjük meg ezt.
.
33.
A TOOLTIP-re kettőt kattinva, notepad-szerűen szerkeszthetjük a TOOLTIP-et
.
34.
Sőt meg is nézhetjük "PREVIEW" -val mit alkottunk.
.
35.
Így néz ki a TOOLTIP élesben
.
36.
Mivel előbb-utóbb több napnyi adat lesz, mint ami egy képernyőre kifér, célszerű állítani, hogy csak az utolsó X nap látszódjék
.
37.
Ezt kell állítani hozzá
.
38.
És készen vagyunk.
Nyilván egyéni ízlés szerint lehet finomhangolni vizuális elemeket, egyebeket.
Az én főnököm például jobban szereti a rádiógombokat, míg én meg a checkbox-okat szeretem jobban, stb. :)
Vagy lehetne vízszintes referenciavonalat húzni az SLA-hoz, például reggel 8:00-hoz
A lényegen ez már nem változtat. ;)
Mit látunk?
Bár korábban volt rendesen sok piros, mostanra normalizálódott a helyzet, egyre több a zöld, egyre kevesebb a piros téglalap. Ráadásul mindegyik ugyanakkor indul automatikusan, nem kézzel kell hackelni, hibalehetőségekkel. Sőt a még a futási idők is hasonlítanak egymásra.
Mire nem jó egy vizualizáció ugye :)
.
Eddigi TABLEAU-blogposztjaim:
2013.06.17 - Data Science: Tableau-feladatok
2013.06.22 - Tableau: Egy vizualizációs stratégia lehetséges szubjektív sarokpontjai
2013-07-05 - Tableau: Mindennapi örömök
2013.07.09 - Tableau: Eset a NEM-létező egzotikus nagygépes adatpiaccal
2013.11.16 - Tableau: Aktuális Pros/Cons egyenleg
2013.11.17 - Tableau: Text Table
Ha valakinek még nincs meg a Tableau-szoftver, miközben szeretne engedni a birtoklási csábításnak, az alábbi mail-címen egy kedves, fiatal, aranyos kolléganő igyekszik hatékony és konkrét eszközök segítségével ápolni minden Tableau-vonzatú kapcsolatot. Illetve biztos segít optimális árat találni a termékhez vezető rögös úton. :)
hello@tableausoftware.hu
Címkék:
Adatvizualizálás,
blog,
interactive,
software,
tableau,
Tableau8,
visualization,
vizualizálás,
windows
2013. november 17., vasárnap
Tableau: Text Table
.
Végre volt egy kis időm, hogy a tárgybeli cucc "algoritmusát" megírjam - ami "algoritmus" az én ízlésemnek kicsit komplikált, egy "funny" felhasználóbartá szoftver esetében. Pláne, hogy irányomba történt személyes megkeresés is volt az ügyben.
FELADAT: A "view data"-hoz hasonló kétdimenziós táblát szeretnénk a "nagy" Tableau-ban is, natúr, nyers adatok formájában - mindenféle pivotálás meg üzleti intelligencia okosság nélkül megjeleníteni.
MEGOLDÁS:
1.
A Tableau megnyitása, vegyük a Tableau-hozdemóként kapott SuperStore Excel-t.
2.
Az adatforráson jobb egérklikk után nézzünk bele az adatokba, hogy mit is szeretnénk látni.
3.
Az adatok mellett (amit majd látni szeretnénk), látjuk, hogy 9.426 rekordunk van az Excel-ben.
4.
Baloldalon a "Measures"-nél, az üres fehér részen jobb egérklikk után "Create Calculated Field"-er válasszunk.
5.
A megnyíló ablakban hívjuk az ujonnan kalkulált mezőnket ROWNUM-nak, a számítási képlete meg legyen INDEX(). A dolog vélja, hogy be tudjuk sorszámozni a rekordjainkat (mesterséges integer ID)

6.
Az OK-ra való enter után megjelenik szépen a ROWNUM.
8.
Ott fenn, jobb egérklikk után "Compute using" és "Table (Across)"-t válasszuk ki.
9.
Majd ismét jobb egérklikk és következzék a "Discrete"
10.
Zöldből kékbe váltott a ROWNUM ennek nyomán.
11.
A "Dimensions"-ből a predefinit "Measure Names-t" vonszoljuk a a "Columns"-ba
12.
A "Measure Names"-n jobb egérklikk, és pipáljuk be a a "Show Quick Filter"-t. Ezzel tudjuk majd ki be kapcsolgatni, hogy mely mezők jelenjenek meg.
13.
A "Filters"-ek között is megjelenik ezáltal a "Measure Names"
14.
Vonszoljuk a "Measures"-ből a szintén predefinit "Measure Values"-t az "ABC-Text"-be (ott engedjük el).
Ezzel megjelennek a measure-jeink, az első rekordra.
15.
A "Dimensions"-ből vonszoljuk például a "RowID"-t a "ROWNUM" mellé.
Egyelőre azt látjuk, hogy a "ROWNUM"=1 minden rekordra.
16.
A "ROWNUM"-on jobb egérklikk, és ismét állítsuk be, hogy Table (Down)
17.
Ezennel szépen egyesével fognak növekedni a ROWNUM-ok, amit akartunk.
18.
És most jön az egész mókolás után az orgazmusos rész: vonszoljuk a Dimensions-ből "Ship Mode"-t a "RowID" mellé. Nem kellett "Measure"-ré alakítani egy dimenziót, mégsincs pivotálás, hanem rekordonként szépen megjelenik a dimenzio értéke, amit el akartunk érni.
Eddigi TABLEAU-blogposztjaim:
2013.06.17 - Data Science: Tableau-feladatok
2013.06.22 - Tableau: Egy vizualizációs stratégia lehetséges szubjektív sarokpontjai
2013-07-05 - Tableau: Mindennapi örömök
2013.07.09 - Tableau: Eset a NEM-létező egzotikus nagygépes adatpiaccal
2013.11.16 - Tableau: Aktuális Pros/Cons egyenleg
2013.11.17 - Tableau: Text Table
Ha valakinek még nincs meg a Tableau-szoftver, miközben szeretne engedni a birtoklási csábításnak, az alábbi mail-címen egy kedves, fiatal, aranyos kolléganő igyekszik hatékony és konkrét eszközök segítségével ápolni minden Tableau-vonzatú kapcsolatot. Illetve biztos segít optimális árat találni a termékhez vezető rögös úton. :)
hello@tableausoftware.hu
Végre volt egy kis időm, hogy a tárgybeli cucc "algoritmusát" megírjam - ami "algoritmus" az én ízlésemnek kicsit komplikált, egy "funny" felhasználóbartá szoftver esetében. Pláne, hogy irányomba történt személyes megkeresés is volt az ügyben.
FELADAT: A "view data"-hoz hasonló kétdimenziós táblát szeretnénk a "nagy" Tableau-ban is, natúr, nyers adatok formájában - mindenféle pivotálás meg üzleti intelligencia okosság nélkül megjeleníteni.
MEGOLDÁS:
1.
A Tableau megnyitása, vegyük a Tableau-hozdemóként kapott SuperStore Excel-t.
2.
Az adatforráson jobb egérklikk után nézzünk bele az adatokba, hogy mit is szeretnénk látni.
Az adatok mellett (amit majd látni szeretnénk), látjuk, hogy 9.426 rekordunk van az Excel-ben.
4.
Baloldalon a "Measures"-nél, az üres fehér részen jobb egérklikk után "Create Calculated Field"-er válasszunk.
5.
A megnyíló ablakban hívjuk az ujonnan kalkulált mezőnket ROWNUM-nak, a számítási képlete meg legyen INDEX(). A dolog vélja, hogy be tudjuk sorszámozni a rekordjainkat (mesterséges integer ID)

6.
Az OK-ra való enter után megjelenik szépen a ROWNUM.
7
Vonszoljunk fel "drag and drop"-pal ezt a ROWNUM-ot a "Rows"-hoz
8.
Ott fenn, jobb egérklikk után "Compute using" és "Table (Across)"-t válasszuk ki.
9.
Majd ismét jobb egérklikk és következzék a "Discrete"
10.
Zöldből kékbe váltott a ROWNUM ennek nyomán.
11.
A "Dimensions"-ből a predefinit "Measure Names-t" vonszoljuk a a "Columns"-ba
12.
A "Measure Names"-n jobb egérklikk, és pipáljuk be a a "Show Quick Filter"-t. Ezzel tudjuk majd ki be kapcsolgatni, hogy mely mezők jelenjenek meg.
13.
A "Filters"-ek között is megjelenik ezáltal a "Measure Names"
14.
Vonszoljuk a "Measures"-ből a szintén predefinit "Measure Values"-t az "ABC-Text"-be (ott engedjük el).
Ezzel megjelennek a measure-jeink, az első rekordra.
15.
A "Dimensions"-ből vonszoljuk például a "RowID"-t a "ROWNUM" mellé.
Egyelőre azt látjuk, hogy a "ROWNUM"=1 minden rekordra.
16.
A "ROWNUM"-on jobb egérklikk, és ismét állítsuk be, hogy Table (Down)
17.
Ezennel szépen egyesével fognak növekedni a ROWNUM-ok, amit akartunk.
18.
És most jön az egész mókolás után az orgazmusos rész: vonszoljuk a Dimensions-ből "Ship Mode"-t a "RowID" mellé. Nem kellett "Measure"-ré alakítani egy dimenziót, mégsincs pivotálás, hanem rekordonként szépen megjelenik a dimenzio értéke, amit el akartunk érni.
Eddigi TABLEAU-blogposztjaim:
2013.06.17 - Data Science: Tableau-feladatok
2013.06.22 - Tableau: Egy vizualizációs stratégia lehetséges szubjektív sarokpontjai
2013-07-05 - Tableau: Mindennapi örömök
2013.07.09 - Tableau: Eset a NEM-létező egzotikus nagygépes adatpiaccal
2013.11.16 - Tableau: Aktuális Pros/Cons egyenleg
2013.11.17 - Tableau: Text Table
Ha valakinek még nincs meg a Tableau-szoftver, miközben szeretne engedni a birtoklási csábításnak, az alábbi mail-címen egy kedves, fiatal, aranyos kolléganő igyekszik hatékony és konkrét eszközök segítségével ápolni minden Tableau-vonzatú kapcsolatot. Illetve biztos segít optimális árat találni a termékhez vezető rögös úton. :)
hello@tableausoftware.hu
Címkék:
Adatvizualizálás,
blog,
interactive,
software,
tableau,
Tableau8,
visualization,
vizualizálás,
windows
Feliratkozás:
Bejegyzések (Atom)
.jpg)























































