Magamról

Saját fotó
Főiskolai, majd egyetemi diplomamunkáimtól kezdve világ életemben, adatok, adatbázisok, adattárházak (leginkább Oracle) környékén mozogtam. Mostanság adattárházasként, adatbányászként élem napjaimat.

2013. július 9., kedd

Tableau: Eset a NEM-létező egzotikus nagygépes adatpiaccal


Folytathatnám a megkezdett "Mindennapi Tableau-örömök" sorozatot, de arra gondoltam az olyan uncsi lenne. Ráadásul ezt a cím-poén-t a világért sem akartam volna kihagyni, még ha vele úgymond "felmentést" is adok a www.bi.hu -nak, hogy kitegye blog-ketrecébe ezt a blogposztot, például a cím hosszúsága miatt.  :)

Ismét sikerült beleszaladni egy real-world Tableau-projektbe, amit aztán már nem volt nehéz általánosítani, ennek rövid leírása következik alább. Nem hinné az ember, de az élet tele van Tableau-kihívásokkal és persze az ember nagyon örül neki, hiszen Tableau-val foglalkozni JÓ.:)

A Tableau közel 40 különböző dedikált adatforrásféleséghez tud kapcsolódni. De mi van - merül fel a kérdés -, ha véletlenül ez sem elég. Mert például van egy olyan egzotikus, mondjuk most így, nagygépes adatbázisunk  - azért ehhez már "tudni" kell megfelelő helyeken forgolódni :) -, amihez véletlenül nincs még ODBC-elérés sem. Az egyetlen amiben bízhatunk, hogy a nyers táblák a pöre valóságukban kiexportálhatók TXT-kbe.

Igen ám, de nem akarnánk megelégedni a zajos-szemetes nyers txt-file-okkal, szeretnénk adatpiac-szerűséget, némi transzformációkkal. Mi sem egyszerűbb ODBC Text-driver segítségével (ami minden korszerű Windows-os gépen ott lapul, de vigyázat 64-bites Windows-ok esetén is a 32-bites ODBC-t kell/célszerű használni), a Tableau-ból kiadható tetszőleges, SQL-92-es ANSI-szabványú Custom SQL. Sőt az implementált szenzációs oszloptömörítésnek köszönhetően feleződött-harmadolódott röptiben a tárigény is, millió rekordok, 100+ MB-os állományok esetében (kellemes mellékhatásként)!

Ez azért már nagyon finomnak hangzik, de máris hallom a kérdést, hogy nem lesz ez lassú?! Egy i5 processzoros Windows8 alatt az említett 100MB+ plusz-os text-ek 30-60 másodperc alatt beolvasódtak Tableau-ba. Az SQL-ben volt minden, mi szemszájnak ingere: outer-join, union, inline view-k, szűrések, and-or-ral kacsolt logikai feltételek, sorfüggvény stb.

Az igazsághoz egyetlen apró negatívum hozzátartozik, és nem lennék igazságos, ha nem említeném meg.

A nagygépes TXT-extractoló olyan "nagytudású", hogy véletlenszerűen sortöréseket helyez el a TXT-extractokba.Sajnos a Text ODBC-driver és/vagy a Tableau csont nélkül (hibaüzenet nélkül) felolvassa ezeket, amikre kiadott custom-sql-ek így persze tudnak "érdekes" outputokkal szolgálni, amik ugye természetüknél fogva, nem is jönnek szembe azonnal és triviális módon.

De még ha fel is készülünk, hogy ezeket az extra sortöréseket létezhetnek, a kiszedésük már nem olyan triviális Mondjuk azért nem is olyan bonyolult "data scientist hacking" kell hozzá, még ha valaki nem is közvetlen barátja a *nix.es például SED-nek. Elég egy egyszerű reguláris kifejezéssel minden NEM mezőhatárolót törölni és csak azokkal a sorokkal foglalkozni, ahol több-kevesebb (pontosabban több VAGY kevesebb) mezőhatároló marad. De még ezen is átlendül(ne) az ember, de azt már nehezen "bocsátja meg", hogy egy szimpla MS-Access képes magától is hibatáblába rakni ezeket a sorokat, külön extra molyolás nélkül is. ;)

Folytatva megkezdett gondolatmenetünket; máris merül fel a következő nagy kérdés:

Adva van egy üzleti felhasználó, aki nem szereti az SQL-eket, különben ugye nem vonzódna annyira a Tableau-hoz, vagy a Tableau-hoz hasonló felhasználóbarát eszközökhöz sem :), és akinek így van egy Tableau-ja (mert mi mása legyen, ugye? Na jó ez csak vicc volt).

Meg van az IT, aki biztosítaná a nagygépes adatpiacos adattömeget, de neki meg nincs Tableau-ja (költségtakarékosság elérte a képzeletbeli cégünket, IT-nek nem jutott sajnos Tableau, az ott dolgozók legnagyobb sajnálatára).

Magyarán aki tudná csinálná a Tableau-etetést, annak eszköze nincs, akinek van Tableau-ja, az meg nem tudja/nem akarja csinálni, például mert van jobb dolga is.

Feloldható-e az ellentmondás?

Ahogy kedvenc főnököm szokta ilyenkor mondani, Tableau esetén, már hogy a viharba ne lehetne feloldani az ellentmondást?! :)

Két dolog kell hozzá:

(1) Tetszőleges ODBC-elérést biztosítani tudó programozási nyelv-környezet. Nem könnyű olyat találni az Assembly-től mondjuk Erlangig terjedő spektrumon, ahol ez nem megoldható. Az internet tele van legkülönfélébb egyébként pársoros sample-code-okkal, ahol a dsn-connection és Custom SQL hatására resultset-et ad vissza.

(2) A fenti demó kódot kell összeintegrálni egy másik rövid demó kóddal, amit viszont már a Tableau-biztosít, API révén. Ennek segítségével az előbb kapott resultsetből felépíthetjük a TDE(=Tableau Data Extract, ez az oszloptömörítéses remek fileformátum) struktúrát is, meg bele is tolhatjuk az adatot.

Ezek után tetszőleges finomságú és mélységű adatpiac adható át az üzleti felhasználónak szíves felhasználásra (adott konkrét kontextusban a létező legoptimálisabb formában, ugye), ahol semmi egyéb (eszköz-)költség nincsen, a fent taglalt egyszeri integrációs feladat költségén felül, mint a magas szintű "absztrakt" rétegben való SQL-programozás és -futtatás/-üzemeltetés.Ha valaki ezzel a kicsi integrációs feladattal sem akar foglalkozni, annak elég lehet csak jó kapcsolatokkal rendelkezni... :)

Természetesen percenként frissülő, 24/7-es, idősoros, petabyte-os adatpiacokra ez nem életképes megoldás, de ilyeneket, ne is akarjon az ember "levegőből" elővarázsolni. Aztán meg különben is esete válogatja, mikor mi a jó megoldás. Lássuk be az adatpiac-építés komoly tudomány és vannak akik ebből (is) élnek.... ;)

PS1: Akinek ennyi varázsszó, hogy ODBC nem lenne elég, annak mesélném, hogy ennél komplexebb a világ. ;) Mind az "SQL-Engine", mind a Tableau oldaláról konfigurálható/finomhangolható/"customizálható" az ODBC-elérés, nem is kicsit.
Itt van, hogy miket illetve, hogy konkréten hogyan lehet állítgatni:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms711681%28v=vs.85%29.aspx

PS2: Természetesen, ha marketinges lennék, azt mondanám, hogy Tableau mindenek elött és venni kell egyet, ha még nincsen, mert élni nélküle lehet, csak teljességgel értelmetlen :)

De a módszer teljesen analóg módon használható még olyan "távoli konkurrens" esetén is, mint az SPSS Clementine. Csak ott nem TDE-be, hanem SAV-ba mentünk, ami persze nem olyan maró hatású, mint amilyennek hallatszik :)

Lehet, hogy a világon tök egyedül vagyok vele, de én adatpiacot kifejezetten nem szeretek Clementine-transzformációkkal építeni (ez akkor elmegy, ha az ember saját magának dolgozik, pláne kisebb projekt esetén, de enterprise környezetben egy szint felett már tud ciki lenni), hanem sokkal inkább SQL-lel. Persze az SPSS Clementine is ad némi SQL-támogatást, de nem annyit amennyit én egészségesnek tartok ;)


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 valaki egy nemlétező egzotikus nagygépes adatpiacból szeretne vizualizálni Tableau-val :), de még nincs meg neki a 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.
hello@tableausoftware.hu

Nincsenek megjegyzések:

Megjegyzés küldése