Store
Store-satsen skapar en QVD-, Parquet-,CSV- eller TXT-fil.
Syntax:
Store [ fieldlist from] table into filename [ format-spec ];
Satsen skapar en explicit namngiven QVD-, Parquet- eller textfil.
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. Om store sparar till en CSV-fil stöds inte BIFF-export.
Argument:
Argument | Beskrivning |
---|---|
fieldlist::= ( * | field) { , field } ) |
En lista över de fält som ska väljas. Genom att använda * som fältlista anger man alla fält. field::= fieldname [as aliasname ] fieldname är en text som är identisk med fältnamnet i table. (Observera att fältnamnet måste omslutas av raka, dubbla citationstecken eller av hakparenteser om det innehåller exempelvis mellanslag eller andra tecken som inte är standard.) aliasname är ett alternativt namn för det fält som ska användas i den färdiga QVD- eller CSV-filen. |
table | En skriptetikett för en redan inläst tabell som ska användas som datakälla. |
filename |
Namnet på målfilen inkluderar en giltig sökväg till en befintlig mappdatakoppling. Exempel: 'lib://Table Files/target.qvd' I det bakåtkompatibla skriptläget stöds även följande sökvägsformat:
|
format-spec ::=( ( txt | qvd | parquet), komprimering är codec) |
Du kan ställa in formatspecifikationen till något av dessa filformat. Om formatspecifikationen utelämnas antas qvd.
Om du använder parquet kan du också ställa in vilken komprimeringskodek som ska användas med komprimering är. Om du inte anger komprimeringskodeken med komprimering är så används snappy. Följande komprimeringsinställningar är tillgängliga:
Exempel: Store mytable into [lib://DataFiles/myfile.parquet] (parquet, compression is lz4); |
Exempel:
Store mytable into xyz.qvd (qvd);
Store * from mytable into 'lib://FolderConnection/myfile.qvd';
Store Name, RegNo from mytable into xyz.qvd;
Store Name as a, RegNo as b from mytable into 'lib://FolderConnection/myfile.qvd';
Store mytable into myfile.txt (txt);
Store mytable into myfile.parquet (parquet);
Store * from mytable into 'lib://FolderConnection/myfile.qvd';
Lagra i parquet-filer
Parquet är ett starkt typiserat filformat där varje fält innehåller en enda specifik typ av data (t.ex. int32, double, timestamp eller text). Qlik Sense lagrar interna data som en löst typiserad dual, där data från olika källor kan blandas i samma fält. Eftersom bara en part av dualen kan lagras i varje fält i Parquet är det viktigt att veta vad varje fält innehåller. Som standard använder Qlik Sense fälttypen för att avgöra hur fältet ska lagras. När data lagras i Parquet-filer i ett specifikt format måste du ange vilken typ av data dina fält är när de laddas. Om du försöker lagra data i inkompatibla fält i en Parquet-fil, till exempel tal i ett textfält eller text i ett tidsmarkörfält kommer du att erhålla nullvärden.
När data laddas som du tänker lagra i Parquet är det möjligt att ändra standardbeteendet. Du kan antingen formatera det så att din datatyp ändras eller tagga det för att tvinga fram specifika kolumntyper i Parquet.
Formatera data för lagring i Parquet
Du kan använda Qlik Sense formateringsfunktioner för att klassificera dina data. Text(), Num(), Interval() eller Timestamp() kan exempelvis tvinga fram dataformat när data lagras i Parquet. Qlik Sense kan lagra data i nästan 20 datatyper beroende på fältattribut och automatiska fälttaggar. Mer information finns i Tolkningsfunktioner
Exempel: Formatera data med Num() och Text()
I följande exempel presenteras dataförberedelse för lagring i Parquet. Num() tillämpas på num-fältet. Text() tillämpas på både text och blandade. Vid blandade förhindrar Text() det från att behandlas från som ett nummerfält i Parquet och att textvärdena ändras till nullvärden.
NoConcatenate LOAD num, text, Text(mixed) as mixed RESIDENT Data; STORE Format INTO [lib://DataFiles/Tmp.parquet] (parquet);
Tagga data för lagring i Parquet
Du taggar dina data med $parquet-taggar för att tvinga specifika kolumntyper när data lagras i Parquet. Varje datatyp kan tvingas fram genom att man lägger till motsvarande kontrolltagg. För att exempelvis lagra ett fält som INT32 i Parquet, taggar du det med $parquet-int32 i laddningsskriptet. Beroende på datatypen kommer antingen strängen eller den numeriska representationen av de duala data att lagras.
Följande Parquet-kontrolltaggar kan användas för att tagga fält för att lagra dem i Parquet-filer.
Kontrolltagg | Dual | Fysisk typ | Logisk typ | Konverterad typ |
---|---|---|---|---|
$parquet-boolean | Tal | BOOLEAN | NONE | NONE |
$parquet-int32 | Tal | INT32 | NONE | NONE |
$parquet-int64 | Tal | INT64 | NONE | NONE |
$parquet-float | Tal | FLOAT | NONE | NONE |
$parquet-double | Tal | DOUBLE | NONE | NONE |
$parquet-bytearray | Sträng | BYTE_ARRAY | NONE | UTF8 |
$parquet-bytearrayfix | Tal | FIXED_LEN_BYTE_ARRAY | NONE | DECIMAL |
$parquet-decimal | Tal | INT64 | DECIMAL | DECIMAL |
$parquet-date | Tal | INT32 | Datum | Datum |
$parquet-time | Tal | INT64 | Tid | TIME_MICROS |
$parquet-timestamp | Tal | INT64 | TIMESTAMP | TIMESTAMP_MICROS |
$parquet-string | Sträng | BYTE_ARRAY | sträng | UTF8 |
$parquet-enum | Sträng | BYTE_ARRAY | ENUM | ENUM |
$parquet-interval | Tal | FIXED_LEN_BYTE_ARRAY | INTERVAL | INTERVAL |
$parquet-json | Sträng | BYTE_ARRAY | JSON | JSON |
$parquet-bson | Sträng | BYTE_ARRAY | BSON | BSON |
$parquet-uuid | Sträng | FIXED_LEN_BYTE_ARRAY | UUID | NONE |
Exempel: Tagga data för lagring i Parquet
I det här exemplet används två taggar för att definiera data för Parquet. Fältet num taggas med $parquet-int32 för att definiera det som ett talfält som kommer att ställas in som INT32 i Parquet.