Arbeta med Apache Parquet-filer
Apache Parquet är ett kolumnformat som är mycket effektivt för lagring och sökning av stora datauppsättningar. I Qlik Sense kan du läsa data från Parquet-filer och lagra tabeller som Parquet-filer.
Parquet gör det möjligt att effektivt söka efter specifika kolumner i en tabell i stället för att läsa hela tabellen. Detta gör den väl lämpad för behandling av stora datamängder. Parquet stöder också effektiv komprimering och kodning av data. Detta kan ytterligare minska lagringsutrymmet och förbättra prestanda vid sökningar.
Skapa Parquet-filer
Du kan skapa Parquet-filer med hjälp av Lagring-kommandot i 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. Du kan nästla de data du lagrar i data i Parquet-filer.
Mer information finns i Store.
Läsa in data från Parquet-filer
Du kan ladda data från en Parquet-fil precis som alla andra datafiler som stöds av Qlik Sense. Detta inkluderar Datahanteraren, Skriptredigeraren eller när du lägger till data i en ny app.
Mer information finns i Läsa in data från filer.
Du kan också läsa in data från en Parquet-fil i dataladdningsskriptet med LOAD-kommandot. Exempel:
Mer information finns i Load.
Ladda data från Parquetfiler
Om en Parquet-fil innehåller nästlade data måste den laddas i flera laddningssatser, där var och en anger vilken delmängd som ska laddas till varje tabell. Table is-specifikatorn används för att kontrollera en sökväg till gruppnoden i schemat som ska ladda.
Du kan använda specificeraren Avgränsare är för att ange hur noder ska kombineras. En LOAD-sats laddar en fil med nästlade data som inte inkluderar Avgränsare är använder det värde som anges i skriptvariabeln FieldNameDelimiter. Om ingen avgränsare tillhandahålls och FieldNameDelimiter inte har ställts in kommer standardavgränsaren att vara '.'.
Endast noder som matchar sökvägen Table is laddas.
Datanoder laddas till en fil utan nästling.
Gruppnoder grupperar fälten i gruppen genom att lägga till deras namn i fältnamnet. Exempelvis laddas en grupp med fält1 och fält2 som grupp.fält1 och grupp.fält2.
Listnoder genererar nyckelfält som används för att länka tabellerna. Exempelvis, %Key_group.list. Alla grupper och datanoder i listan måste laddas i en separat laddningssats. Ett nyckelfält till den överordnade listan kommer också att läggas till.
I följande exempel visas samma nästlade Parquet-fil som skapades i exemplet i Lagra nästlade data i Parquet-filer, laddad i en app med Datahanteraren och Skriptredigeraren (med standardskriptet från Välj data och anpassade skript).
Exempel: Datahanteraren
Om du laddar customer.parquet i Datahanteraren och tillämpar alla rekommenderade associationer blir resultatet följande datamodell:
Exempel: Skriptredigeraren (Välj data)
Om du laddar data med Välj data i Skriptredigeraren blir resultatet följande skript:
Datamodellen ser nu ut så här i Datamodellvyn.
Exempel: Skriptredigeraren (Anpassat laddningsskript)
Om du använder ett anpassat laddningsskript har du mer kontroll över hur fälten och tabellerna laddas från customer.parquet. I det följande laddningsskriptet laddas tabellerna och fälten från company.parquet:
Resultaten i följande datamodell som är identisk till den ursprungliga datamodellen innan data lagrades i Parquet-filen.
Begränsningar
Parquet-filer har följande begränsningar:
-
Parquet-filer som innehåller ett int96-tidsmarkörfält kanske inte laddas korrekt.
Int96 är en föråldrad datatyp som innehåller en tidsmarkör utan information om tidszon. Ett försök kommer att göras att läsa fältet som UTC, men eftersom det finns olika implementeringar från olika leverantörer finns det ingen garanti för att det lyckas.
Kontrollera de laddade uppgifterna och justera dem till rätt tidszon med en förskjutning om det behövs.