QVD-filer
En QVD (QlikView Data)-fil är en fil som innehåller en tabell med data som har exporterats från Qlik Sense eller QlikView. QVD är ett Qlik-originalformat och kan bara skrivas till och läsas av Qlik Sense eller QlikView. Detta filformat är optimerat för hastighet vid datainläsning från ett Qlik Sense-skript, men är samtidigt mycket kompakt. Datainläsning från en QVD-fil är vanligtvis 10-100 gånger snabbare än inläsning från andra datakällor.
QVD-filer kan läsas in på två olika sätt: standard (snabbt) och optimerat (snabbare). Vilket sätt som används bestäms automatiskt av Qlik Sense-skriptmotorn. Det optimerade läget kan endast användas när alla inlästa fält läses utan någon typ av transformering (formler som påverkar fälten). Filnamnen kan dock ändras. En Where-sats som gör att Qlik Sense packar upp posterna leder också till att optimerad laddning inaktiveras.
En QVD-fil innehåller exakt en datatabell och består av tre delar:
- Ett XML-huvud (i teckenuppsättningen UTF-8) som beskriver tabellens fält, layouten för den efterföljande informationen, samt vissa ytterligare metadata.
- Symboltabeller i byte-komprimerat format.
- Faktiska tabelldata i bit-komprimerat format.
QVD-filer har många användningsområden. Fyra huvudsakliga användningsområden kan omedelbart identifieras. Fler än ett användningsområde kan gälla på samma gång:
- Snabbare dataladdningshastighet
- Minskat tryck på databasservrar
- Konsolidera data från flera Qlik Sense-applikationer.
- Inkrementell laddning
Genom att buffra de block av indata som inte har ändrats respektive ändrats långsamt i QVD-filer kan skriptexekveringen snabbas upp väsentligt för stora datamängder.
Mängden data som hämtas från externa datakällor kan minskas avsevärt. Detta minskar arbetstrycket på de externa databaserna och mängden nätverkstrafik. En annan fördel är att när flera Qlik Sense-skript delar samma data, behöver data bara laddas en gång från källdatabasen till en QVD-fil. De andra applikationerna kan använda data genom denna QVD-fil.
Med Binary-skriptsatsen går det att ladda data från en enda Qlik Sense-applikation till en annan, men med QVD-filer kan ett Qlik Sense-skript kombinera data från flera olika Qlik Sense-applikationer. Detta möjliggör konsolidering av likartade data från olika affärsenheter med mera.
I många fall kan QVD-funktionaliteten användas för att förenkla inkrementell laddning genom att bara ladda nytillkomna poster i en växande databas.
Skapa QVD-filer
En QVD-fil kan skapas på två sätt:
- Skapas och namnges explicit med hjälp av Store-kommandot i Qlik Sense-skriptet.
- Skapa och sköta underhåll automatisk direkt från skriptet.
Ange i skriptet att en tabell, eller delar av en tabell, som tidigare har lästs in ska exporteras till en namngiven fil på en viss plats.
Om en load- eller select-sats föregås av prefixet Buffer, skapar Qlik Sense automatiskt en QVD-fil som under vissa omständigheter kan användas istället för den ursprungliga datakällan vid laddning.
De resulterande QVD-filerna skiljer sig inte åt vad gäller inläsningshastighet.
Store
Denna skriptfunktion skapar en namngiven QVD-, CSV- eller txt-fil.
Syntax:
Satsen kan endast exportera fält från en datatabell. Om fält från flera tabeller ska exporteras, måste du först göra en explicit join i skriptet för att skapa den datatabell som ska exporteras.
Textvärdena exporteras till CSV-filen i UTF-8-format. En avgränsare kan anges, se LOAD. Satsen store (spara) till en CSV -fil stöder inte BIFF -export.
Exempel:
Gör följande:
- Öppna appen Avancerad skriptvägledning.
- Klicka på skriptavsnittet Product.
- Lägg till följande i slutet av skriptet:
- Klicka på Ladda data.
Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);
Ditt skript bör se ut så här:
CrossTable(Month, Sales) LOAD Product, "Jan 2014", "Feb 2014", "Mar 2014", "Apr 2014", "May 2014" FROM [lib://DataFiles/Product.xlsx] (ooxml, embedded labels, table is Product); Store * from Product into [lib://DataFiles/ProductData.qvd](qvd);
Filen Product.qvd bör nu finnas i listan med filer.
Den här datafilen är resultatet av ett Crosstable-skript och är en tabell med tre kolumner, med en kolumn för varje kategori (Product, Month, Sales). Den här datafilen kan nu användas för att ersätta hela Product -skriptavsnittet.
Läsa in data från QVD-filer
En QVD-fil kan laddas eller nås av Qlik Sense på följande sätt:
- Läsa in en QVD-fil som explicit datakälla. Det går att referera till QVD-filerna genom en load-sats i Qlik Sense-skriptet, precis som med vilken annan typ av textfil som helst (csv, fix, dif, biff och så vidare).
Exempel:
- Automatisk inläsning av buffrade QVD-filer. När buffer-prefixet används för load- eller select-satser, behöver du inte uttryckligen ange hur inläsningen ska ske. Qlik Sense avgör i vilken utsträckning data från QVD-filen ska användas eller om data istället ska hämtas med hjälp av den ursprungliga LOAD- eller SELECT-satsen.
- Nå QVD-filer från skriptet. Ett antal skriptfunktioner (alla börjar med QVD) kan användas för att hämta olika typer av information för data som återfinns i XML-huvudet till en QVD-fil.
Gör följande:
- Kommentera ut hela skriptet i Product-skriptavsnittet.
- Ange följande skript:
- Klicka på Ladda data.
Load * from [lib://DataFiles/ProductData.qvd](qvd);
Data laddas från filen QVD.

Buffer
QVD-filer kan skapas och underhållas automatiskt via prefixet Buffer. Detta prefix kan användas på de flesta LOAD- och SELECT-satser i skript. Det anger att en QVD-fil används för att cacha/buffra satsens resultat.
Syntax:
Om inget alternativ används så används den QVD-buffert som skapades när skriptet kördes första gången på obegränsad tid.
Example:
stale [after] amount [(days | hours)]
Amount är ett tal som anger tidsperioden. Decimals kan användas. Om ingen enhet anges förutsätts dagar.
Alternativet stale after används oftast med databaskällor där det inte finns någon enkel tidsangivelse för ursprungsdata. En stale after-sats anger helt enkelt en tidsperiod efter att QVD-bufferten skapades då den inte längre kommer att anses vara giltig. Dessförinnan används QVD-bufferten som källa för data och därefter används den ursprungliga datakällan. Därefter uppdateras QVD-buffertfilen automatiskt och en ny period påbörjas.
Example:
Incremental
Med alternativet incremental öppnas möjligheten att enbart läsa in delar av den underliggande filen. Filens tidigare storlek lagras i XML-huvudet i QVD-filen. Detta är särskilt användbart för loggfiler. Alla tidigare inlästa poster läses in från QVD-filen, medan följande nya poster läses in från originalkällan. Slutligen skapas en uppdaterad QVD-fil.
Observera att alternativet incremental bara kan användas tillsammans med LOAD-satser och textfiler och att inkrementell laddning inte kan användas där gamla data ändras eller tas bort.
Example:
Normalt avlägsnas QVD-buffertar när de inte längre blir refererade under en fullständig skriptexekvering i den app som skapade dem. De avlägsnas även när den app som skapade dem inte längre finns. Store-satsen ska användas om du vill behålla innehållet i bufferten som en QVD- eller CSV-fil.
Gör följande:
- Skapa en ny app och ge den ett namn.
- Lägg till ett nytt skriptavsnitt i Skriptredigeraren.
-
Klicka på Välj data under DataFiles i menyn till höger.
- Ladda upp och välj sedan Cutlery.xlsx.
- Klicka på Infoga skript i fönstret Välj data från.
- Kommentera ut fälten i load-satsen och ändra den till följande:
- Klicka på Ladda data.
- Klicka på Ladda data igen.
- Den här gången laddas data från QVD-filen som skapades av Buffer-satsen när du laddade data första gången.
Buffer LOAD *
Ditt skript bör se ut så här:
Buffer LOAD * // "date", // item, // quantity FROM [lib://DataFiles/Cutlery.xlsx] (ooxml, embedded labels, table is Sheet1);
Den första gången du laddar data laddas de från Cutlery.xlsx.

Buffer-satsen skapar även en QVD-fil och lagrar den i Qlik Sense. I en molnutrullning lagras den i en katalog i molnet.

Tack!
Nu när du är klar med den här introduktionskursen vet du lite mer om skript i Qlik Sense. Besök gärna vår webbplats för mer information om den ytterligare utbildningar som finns tillgängliga.