Qlik-skript-processor
Skapar eller transformerar indata med Qlik-skript.
Med Qlik-skript-processorn kan du direkt ange Qlik-skript i en textredigerare för att förbereda data eller läsa in data när de används som indata. Den riktar sig till mer avancerade användare och du kan dra nytta av hela Qlik-syntaxen om du föredrar att koda vissa operationer manuellt när du manipulerar tabeller.
Användning
-
För att kunna använda Skript-processorn i ett dataflöde måste den kod som du lägger till i redigeraren överensstämma med schemat för inkommande data och de förberedelser som har utförts fram till denna datapunkt. Skriptet måste också följa vissa regler:
-
Skriptet måste innehålla en resident-sats för att använda tabellen som kommer från indataflödet.
resident tablename
Se Läs in för mer information.
-
Du måste inkludera en NoConcatenate-sats.
NoConcatenate LOAD A,B
Se NoConcatenate för mer information.
-
När du har lagt till skriptet för den specifika operation som du vill utföra måste du inkludera en drop table-sats i slutet för att släppa den inkommande tabellen och bara behålla genererad utdata.
drop table tablename
Se Ta bort tabell för mer information.
- När du använder processorn som indatanod kan du ha max två utflöden för att ladda två olika tabeller.
- När processorn används som mellannod kan du ha flera ingångsflöden och max två utgångsflöden.
Egenskaper
Egenskap | Konfiguration |
---|---|
Skript |
Skriv in ditt Qlik-skript i textredigeraren som innehåller följande platshållare med de obligatoriska satserna.
Namnen på dina indatatabeller visas ovanför skriptredigeraren. De motsvarar de ingångar som är kopplade till processorn. |
Om du vill byta namn på processorn eller redigera dess beskrivning klickar du på ikonen Redigera bredvid processornamnet i panelen Egenskaper.
Exempel
-
Ladda flera tabeller med samma schema, till en inmatning för ditt flöde. I det här exemplet används två .txt-filer från din katalog, med samma fyra fält, men med olika innehåll:
[MyTable_1]: NOCONCATENATE LOAD [id], [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_1.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); //[MyTable_2]: CONCATENATE([MyTable_1]) LOAD [id], [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_2.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); [Union1]: NOCONCATENATE LOAD DISTINCT [id], [firstname], [lastname], [nationality] RESIDENT [MyTable_1];
Du kan också utföra samma åtgärd, men istället lägga till ett fält för att spåra vilka data som kommer från vilken tabell och generera ett heltal som id-nummer:
[MyTable_1]: NOCONCATENATE LOAD 'table1' as source_table, [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_1.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); [MyTable_2]: CONCATENATE (MyTable_1) LOAD 'table2' as source_table, [firstname], [lastname], [nationality] FROM [lib://DataFiles/MyTable_2.txt] (txt, codepage is 28591, embedded labels, delimiter is ',', msq); [NewTable]: LOAD recno() as id, * RESIDENT MyTable_1; drop table MyTable_1;
Se Concatenate för mer information.
-
Skapa en inline-tabell med redigerbara data som indata för ditt flöde:
MyTable: Load * Inline [ Country, Year, Sales Argentina, 2014, 66295.03 Argentina, 2015, 140037.89 Austria, 2014, 54166.09 Austria, 205,182739.87 ];
Se Använda inline-laddningar för att ladda data för mer information.
-
Lägg till ett nytt fält i dina data:
MyTable: NoConcatenate Load *, 1 as newfield Resident [name of input table]; Drop Table [name of input table];
Fler exempel på skriptuttryck finns i Vanliga satser och Skript- och diagramfunktioner.