Qlik Sense aplikacija gali būti optimizuota, kad naudodama mažiau serverio resursų veiktų greičiau. Yra keletas būdų, kaip tai padaryti. Iš esmės aplikacija gali būti optimizuojama tokiu būdu:
- optimizuojant serverį;
- optimizuojant kodą;
- optimizuojant vizualizavimo galimybes.
Šiame tekste paaiškinsiu Qlik Sense aplikacijos efektyvinimą, optimizuojant kodą. Tai tampa ypač aktualu, esant dideliam duomenų kiekiui aplikacijoje. Taigi, Qlik Sense aplikaciją optimizuoti kodo lygyje galima šiais būdais:
1. Naudojant APPLYMAP funkciją vietoje JOIN funkcijos
Naudojant JOIN funkciją su dideliais duomenų masyvais duomenų krovimas vyksta lėčiau, nei naudojant APPLYMAP funkciją. Taip pat gali būti atvejų, kad JOIN funkcija grąžins daugiau reikšmių, nei originalioje lentoje esančių įrašų skaičius. Tuo tarpu APPLYMAP funkcija nedaro įtakos įrašų skaičiui.
2. Kiek įmanoma labiau mažinant duomenų masyvo dydį
Qlik Sense aplikacija kodo pagalba duomenis įkelia į operatyviąją atmintį (RAM). Kuo didesnė duomenų apimtis, tuo didesni operatyviosios atminties resursai yra reikalingi ir ilgiau užtrunka duomenų įkėlimas į aplikaciją. Siekiant sumažinti duomenų dydį aplikacijoje, galimi šie kodo efektyvinimo būdai:
- pašalinant nenaudojamus lentų laukus;
- pašalinant nenaudojamas lentas iš duomenų modelio;
- sumažinant unikalių reikšmių kiekius (distinct values).
Qlik Sense į atmintį įkelia ne kiekvieną lentos lauko reikšmę, o tik unikalias lauko reikšmes. Todėl, esant dideliam duomenų lentos lauko unikalių reikšmių skaičiui, didesnis duomenų kiekis yra talpinamas į RAM‘ą. Esant galimybei, patartina sumažinti unikalių reikšmių skaičių. Pavyzdžiui, duomenų lenta turi timestamp lauką, kuris nurodo duomenų įrašo įvedimo datą ir laiką. Jeigu analizei laikas nėra reikalingas, tuomet galima imti tik datą, taip sumažinant unikalių reikšmių skaičių timestamp laukui ir sumažinant duomenų dydį.
- naudojant AUTONUMBER funkciją.
Lentų surišimui dažniausiai naudojami raktiniai laukai, kurie yra tekstinio formato ir užima didesnę dalį visame duomenų masyve. Siekiant sumažinti duomenų kiekį, rekomenduojame naudoti AUTONUMBER funkciją. Funkcija bet kokią raktinio lauko reikšmę konvertuoja į skaičių.
3. Optimaliai užkraunant QVD duomenų failus
QVD – yra Qlik‘o duomenų formatas, naudojamas greitam duomenų įkėlimui į Qlik Sense aplikaciją. Taip pat duomenys šiuo formatu yra saugomi labai kompaktiškai.
Panagrinėkime optimalų ir neoptimalų duomenų įkėlimą iš QVD failų:
- Neoptimalus duomenų užkrovimas
Jeigu yra naudojamos šios operacijos duomenų kėlimo metu, procesas tampa neoptimalus:
- pridedamas naujas laukas prie kraunamos lentos;
- išraiškų (expressions)/kalkuliacijų naudojimas lentos laukui;
- to pačio lauko traukimas du kartus;
- JOIN funkcijų naudojimas QVD krovimo metu.
Šių funkcijų naudojimas yra ne tik yra neoptimalus, bet gali ir pailginti duomenų įkėlimo procesą.
Apačioje pateikti neoptimalaus duomenų kėlimo iš QVD duomenų failų pavyzdžiai:
- Optimalus duomenų įkėlimas
Optimalus duomenų įkėlimas yra daug greitesnis, lyginant su neoptimaliu. Nenaudojant jokių operacijų duomenų kėlimo metu, Qlik gali tiesiu keliu sukelti QVD duomenis į operatyviąją atmintį. Šis kelias yra daug greitesnis. Verta paminėti, jog yra keletą funkcijų, kurių naudojimas neturi didelės įtakos duomenų kėlimo iš QVD failų greitaveikai:
- lauko pervadinimas;
- EXIST funkcijos naudojimas su vienu parametru.
Apačioje pateikiami optimalaus duomenų įkėlimo iš QVD duomenų failų pavyzdžiai:
4. Šalinant sintetinius raktus
Duomenų modelyje sintetiniai raktai susiformuoja tuo atveju, kai įkeliamos dvi ar daugiau lentų su tokiu pačiu lauko pavadinimu. Sintetiniai raktai stipriai veikia Qlik Sense aplikacijos greitaveiką, todėl patartina vengti šių atvejų.
Sintetinį raktą duomenų modelyje iliustruojantis pavyzdys:
Paminėti optimizavimo būdai turėtų stipriai pagreitinti esamos aplikacijos vykdymą, sunaudojant mažiau serverio resursų. Verta paminėti, jog šie optimizavimo metodai taip pat pritaikomi ir QlikView aplikacijoms.
***
Turite klausimų, rašykite info@dayq.eu.
Informaciją parengė Mindaugas Devyžis, duomenų vizualizacijos specialistas