Preload vs load & drop în QlikView™ și Qlik Sense™

În urma unor observații recente și a unor dezbateri interne pe această temă, ne-am hotărât recent să aprofundăm o comparație referitoare la timpul de execuție al unor porțiuni de script cu abordări diferite, dar cu rezultate similare: adăugarea unor coloane calculate suplimentare la un tabel încărcat în Qlik.

Am ales să comparăm ca primă alternativă, așa-numita variantă preload, în care se adaugă în fața unei instrucțiuni load (sau select)  o instrucțiune suplimentară de genul:
load *, as CampNou ;

Alternativa cealaltă: varianta load & drop, în care se reîncărca resident tabela deja incărcată sub alt nume, cu câmpurile calculate noi, după care se aruncă tabela inițială.

Comparația am facut-o pe un calculator obișnuit, fără pretenții, folosind versiunile desktop QlikView™ 11.2 SR8 și Qlik Sense™ 2.1.

Cum era  de așteptat, versiunea de script cu preload este mai scurtă și mai elegantă,

față de cea în care folosim comanda load & drop:

În ceea ce privește viteza de procesare, pentru citirea a 1 milion de înregistrări, abordarea preload în QlikView™ a fost măsurat un timp total de execuție de 23 de secunde,

în timp ce varianta în care abordarea load & drop s-a finalizat în 16 secunde, pe același set de date

În cazul Qlik Sense™, citirea celor 1 milion de rânduri a avut loc în mai puțin de 1 minut și din nou, în varianta preload,

și cu 16 secunde mai puțin în cazul care folosim abordarea load & drop.

Apoi am setat executarea automat, la interval de 2 minute, a celor două variante de script: cu preload și cu load & drop.

Rezultatele au fost stocate într-un fișier qvd. Apoi am prelucrat aceste rezultate și am observat că în medie atunci când este folosită comanda preload, reload-ul durează circa 36-38 de secunde,

în timp ce atunci când este folosită comanda load & drop, reload-ul datelor durează în medie 25-26 de secunde.

Dar, daca timpul de reload nu este important, varianta preload face totul mai lizibil, adăugând și opțiunea de a folosi funcții QlikView™ alături de  comanda SQL SELECT și a unor clauze adiționale WHEREWHILE sau GROUP BY, daca e nevoie.

Ca atare, recomandăm evitarea abordării preload în cazurile în care timpul de reload este prea mare în raport cu constrângerile concrete (mai ales pe cazuri cu date de ordinul sutelor de milioane de rânduri, sau mai mult).

Așteptăm impresiile, comentariile și părerile voastre cu privire la Preload vs. Load & Drop, aici sau pe adresa noastră de mail:

office@qqinfo.ro