Emark

BIG DATA: Ako zjednodušiť analýzy veľkých objemov dát

Zatiaľ čo pred niekoľkými rokmi sme sa len málokedy stretávali s dátovými setmi s viac ako milión záznamami, dnes už bežne analyzujeme dáta s desiatkami miliónov záznamov i väčšie. V minulosti nebol problém nahrať celý dátový set s najväčším možným detailom do jednej Qlik aplikácie. Ako však rastú objemy dát a analytika sa sprístupňuje širšiemu počtu používateľov, je potrebné zvážiť, či sú aj tie najdrobnejšie detaily naozaj podstatné pre úplne všetkých používateľov.

Väčšina používateľov si v skutočnosti pri bežnej práci vystačí s istou úrovňou agregácie. Len v špecifických prípadoch potrebujú analyzovať viac detailov. Úplne všetky detaily spravidla potrebuje analyzovať len úzka skupina analytikov. Je preto rozumné vytvoriť z pôvodného detailného dátového setu aj menšie agregované aplikácie (napr. podľa oblastí, regiónov alebo období), ktoré budú previazané s detailnou aplikáciou. Pri výbere konkrétnych filtrov v agregovanej aplikácii sa tieto filtre prenesú do detailnej aplikácie a používateľ môže so svojou analýzou plynulo pokračovať.

Na big data treba ísť smart

Okrem efektívneho využitia pamäte tým výrazne zlepšíme komfort používateľov, pretože už nebudú musieť po každom kliku čakať, kým sa prerátajú desiatky alebo stovky miliónov záznamov, pretože agregovaný dátový set bude samozrejme menší, bude teda reagovať podstatne rýchlejšie. Aj v detailnej analýze budú používatelia mať akceptovateľné odozvy, pretože ju začnú až istom bode. Málokedy (ak vôbec) budú pracovať s kompletným dátovým setom.

V QlikView sme na tento prístup používali techniku s názvom Document Chaining, ktorá bola celkom dobre zdokumentovaná na Qlik komunite i v dokumentácii. Prakticky rovnaká technika je použiteľná i v Qlik Sense, ale po novom sa označuje App Integration API.

Princíp fungovania

Princíp fungovania je v oboch prípadoch veľmi podobný a – ako som už naznačil – spočíva v existencii minimálne dvoch aplikácií: agregovanej pre bežnú každodennú prácu a detailnej, pre špecifické požiadavky na analýzu detailov. Detailných aplikácií môže byť i viac. Ak napríklad v agregovanej aplikácii analyzujeme a spájame údaje z viacerých zdrojových systémov (napr. účtovníctvo, mzdy, výroba), môže existovať detailná aplikácia pre každý z týchto zdrojových systémov. Používateľ začne svoju prácu v agregovanej aplikácii, v ktorej bude analyzovať výsledky, ukazovatele a robiť drill-down až do tej úrovne, na ktorú je aplikácia agregovaná. Ak narazí na potrebu detailnejšej analýzy, klikne na tlačidlo, ktoré otvorí detailnú aplikáciu a aplikuje rovnaké filtre, aké už používateľ definoval v agregovanej aplikácii, aby nemusel prácne filtrovať znova a mohol rovno pokračovať v analýze. V agregovanej aplikácii teda potrebujeme ošetriť tri veci:

  • vytvorenie tlačidla, ktoré umožňuje otvoriť ľubovoľnú URL
  • vedieť, ktorú aplikáciu s detailami máme otvoriť
  • vedieť, ktoré filtre je potrebné do tejto aplikácie preniesť

Vytvorenie tlačidla

Qlik Sense v sebe neobsahuje objekt, ktorý by umožňoval vytvoriť tlačidlo vedúce do inej aplikácie (alebo na inú ľubovoľnú URL). Podobné správanie je čiastočne možné dosiahnuť pomocou tabuľky, nie je to však úplne ono a nevyzerá to pekne. Preto je potrebné hľadať na Branchi – v knižnici rozšírení pre Qlik. Jedným z riešení je rozšírenie Sheet Navigation + Actions for Qlik Sense od Stefana Walthera (qliksite.io): http://branch.qlik.com/#!/project/56728f52d1e497241ae698a0. Toto rozšírenie vie zobraziť tlačidlo s konfigurovateľnou URL adresou.

Kam navigovať: detailná aplikácia

Základom pre fungovanie App Integration API je tzv. Base URL, teda URL adresa aplikácie, ktorú chceme otvoriť. Keď sa pri práci s Qlik Sense pozriete do navigačnej lišty prehliadača zistíte, že URL adresy majú rovnakú štruktúru:

http[s]://nazovservera/{virtual proxy}/sense/app/{appid}/sheet/{sheetid}/state/analysis/

Táto URL určuje aplikáciu, ktorá má byť otvorená (definovaná parametrom appid) a hárok, ktorý sa má používateľovi zobraziť (definovaný parametrom sheetid). Najjednoduchší spôsob, ako túto časť URL získať, je otvoriť želanú aplikáciu na želanom hárku a skopírovať si URL z navigačnej lišty prehliadača. Toto bude základ našej práce.

Čo filtrovať: prenesenie filtrov

Aby používateľ nemusel opakovane zadávať všetky filtre, je potrebné do URL doplniť ďalšie dynamické parametre. Filtrovanie umožňuje parameter select, v ktorom ďalej definujeme pole, v ktorom chceme filtrovať a hodnoty, ktoré chceme filtrovať:

select/{field}/{[value1];[value2]}

Príklad výslednej URL môže vyzerať takto:

https://sense.server.com/sense/app/096a73ca-48de-4d0e-be30-6bf6b1c90fce/sheet/bEmvU/state/analysis/select/State/[California];[Colorado]

Táto URL otvorí aplikáciu s ID 096a73ca-48de-4d0e-be30-6bf6b1c90fce a v poli State vyberie hodnoty California a Colorado. Tieto hodnoty chceme samozrejme definovať dynamicky, takže v našom prípade sa v agregovanej aplikácii budeme riadiť podľa už aplikovaných filtrov. Vytvoriť takýto reťazec pre jedno pole je jednoduché:

=’select/State/[‚&Concat(Distinct State, ‚];[‚)&‘]‘

Ak potrebujeme filtrovať vo viacerých poliach, budeme musieť zadefinovať obdobný vzorec pre každé pole a pripojiť ho na koniec URL. Zároveň je rozumné vygenerovať platnú URL len v prípade, že používateľ urobil aspoň niekoľko základných filtrov, aby sme urýchlili otváranie detailnej aplikácie a načítanie objektov. Celý vzorec pre vytvorenie správnej URL teda môže vyzerať napríklad takto:

=If(GetSelectedCount(State)>0 AND GetSelectedCount(State)<3,

‚https://sense.server.com/sense/app/096a73ca-48de-4d0e-be30-6bf6b1c90fce/sheet/bEmvU/state/analysis/select/State/[‚&Concat(Distinct State, ‚];[‚)&‘]‘,

  ‚http://about:blank‘

)

Týmto spôsobom môžete medzi aplikáciami preniesť filtre vo vybraných poliach. Na bežnú prácu budú používatelia vo väčšine prípadov používať agregovanú verziu aplikácie, čím ušetria zdroje a zabezpečia si rýchlejšie odozvy. Len v prípade potreby si otvoria detailnú aplikáciu s vopred vybranými filtrami, čím opäť ušetria zdroje (táto aplikácia bude veľká, lebo bude obsahovať všetky detaily, ale používatelia ju budú otvárať len občas) a taktiež si zabezpečia akceptovateľné odozvy (pretože budú mať preddefinovaný filter). Spokojnosť na všetkých stranách.

Viac o našich (aj big data) riešeniach na platforme Qlik sa dozviete na emarkanalytics.com

Juraj Mišina

Senior BI Specialist, Qlik Partner

Sdílejte na sociálních sítích:

Ďalší články