Förstå skriptsyntax och datastrukturer

Extrahera, omvandla och ladda

Generellt kan den metod du använder för att ladda data i appen förklaras med processen för att extrahera, omvandla och ladda:

  • Extrahera

    Det första stege är att extrahera data från datakällsystemet. I ett skript använder du satserna SELECT eller LOAD för att definiera detta. Vad är då skillnaden mellan dessa satser?

    • SELECT används för att välja data från en ODBC-datakälla eller OLE DB-leverantör. SELECT SQL-satsen utvärderas av dataleverantören, och inte av Qlik Sense.
    • LOAD används för att ladda data från en fil, från data som har definierats i skriptet, från en tidigare inläst tabell, från en webbsida, från resultatet av en efterföljande SELECT-sats eller genom att generera data automatiskt.
  • Omvandla

    Omvandlingsskedet omfattar att manipulera data med hjälp av skriptfunktioner och regler för att få den önskade datamodellsstrukturen. Typiska operationer är:

    • Beräkna nya värden
    • Översätta kodade värden
    • Byta namn på fält
    • Slå samman tabeller
    • Aggregera värden
    • Pivotering
    • Datavalidering
  • Ladda

    I det sista steget kör du skriptet för att ladda den datamodell som du har definierat i appen.

Ditt mål bör vara att skapa en datamodell som möjliggör effektiv hantering av data i Qlik Sense. Normalt betyder detta att du ska sikta på en datamodell som liknar en vanlig stjärna eller snöflinga och som inte innehåller några cirkelreferenser. I en sådan modell hålls varje enhet i en separat tabell. Med andra ord skulle en typisk datamodell se ut så här:

  • en central faktatabell som innehåller nycklar till de dimensioner och tal som används för att beräkna mått (såsom antal enheter, försäljningssummor och budgetsummor).
  • omgivande tabeller som innehåller dimensionerna med alla deras attribut (såsom produkter, kunder, kategorier, leverantörer och kalender).
Observera: I många fall går det att lösa en uppgift, exempelvis en aggregering, antingen genom att bygga en mer utförlig datamodell i laddningsskriptet eller genom att göra aggregeringarna i diagramuttrycken. Normalt får du bättre prestanda om du låter dataomvandling ske i laddningsskriptet.
Tips: Skissa gärna din datamodell på papper. Nu har du en strukturerad skiss över vilka data som ska extraheras och vilka omvandlingar som ska göras.

Satser för att ladda data

Data laddas genom LOAD- eller SELECT-satser. Varje sådan sats genererar en intern tabell. En tabell kan ses som en lista över något, där varje post (rad) motsvarar en ny instans av objekttypen och varje fält (kolumn) ett särskilt attribut eller en särskild egenskap hos objektet.

Vad är då skillnaden mellan dessa satser?

  • SELECT används för att välja data från en ODBC-datakälla eller OLE DB-leverantör. SELECT SQL-satsen utvärderas av dataleverantören, och inte av Qlik Sense.
  • LOAD används för att ladda data från en fil, från data som har definierats i skriptet, från en tidigare inläst tabell, från en webbsida, från resultatet av en efterföljande SELECT-sats eller genom att generera data automatiskt.

Regler

Följande regler gäller när du läser in data i Qlik Sense:

  • Qlik Sense gör ingen skillnad på tabeller som genererats med en LOAD-sats och tabeller som genererats med en SELECT-sats. Det spelar därför ingen roll om tabellerna, när flera tabeller laddas, laddas med LOAD- eller SELECT-satser eller en kombination av de båda.
  • Fältens ordning i satsen eller i den ursprungliga tabellen i databasen är godtycklig för Qlik Senses logik.
  • Fältnamn används i den vidare processen för att identifiera fält och göra associationer. Dessa är skiftlägeskänsliga. Därför kan man ofta behöva byta namn på fält i skriptet.

Exekvera skriptet

För en typisk LOAD- eller SELECT-sats inträffar händelserna ungefär i följande ordning:

  1. Utvärdering av uttryck
  2. Namnbyte av fält med as
  3. Namnbyte av fält med alias
  4. Bestämning av fältnamn
  5. Mappning av data om fältnamn matchar
  6. Datalagring i en intern tabell

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?