Werken met Apache Parquet-bestanden | Qlik Sense onder Windows Help
Ga naar hoofdinhoud Ga naar aanvullende inhoud

Werken met Apache Parquet-bestanden

Apache Parquet is een opslagindeling met kolommen, wat zeer efficiënt is voor het opslaan en doorzoeken van grote gegevensverzamelingen. In Qlik Sense kunt u lezen vanuit Parquet-bestanden en tabellen opslaan als Parquet-bestanden.

Met Parquet kunnen specifieke kolommen in een tabel efficiënt worden doorzocht in plaats van dat de volledige tabel gelezen moet worden. Daarom is het zeer geschikt om te gebruiken voor de verwerking van big data. Parquet ondersteunt ook efficiënte compressie en versleuteling van gegevens. Dit vermindert de benodigde opslagruimte en verbetert de queryprestaties.

InformatieAlle bestaande applicaties die zijn gemaakt in een Qlik Sense versie vóór augustus 2023 moeten handmatig worden bijgewerkt om Parquet-ondersteuning mogelijk te maken. Dit is vereist voor zowel implementaties die worden geüpgraded naar augustus 2023, als bij het importeren van bestaande applicaties naar een nieuwe implementatie. Zie Ondersteuning voor Parquet-bestanden inschakelen voor bestaande toepassingen in Qlik Sense voor meer informatie over het bijwerken van de toepassingen.

Parquet bestanden maken

U kunt Parquet-bestanden maken met behulp van de opdracht Store in het script. U geeft in het script aan dat u een eerder gelezen tabel of deel ervan wilt exporteren naar een expliciet genoemd bestand op een locatie van uw keuze. U kunt de gegevens die u opslaat in Parquet bestanden nesten.

Ga voor meer informatie naar Store.

Gegevens uit Parquet-bestanden lezen

U kunt gegevens lezen vanuit een Parquet-bestand net als andere gegevensbestanden die door Qlik Sense worden ondersteund. Dit heeft betrekking op Gegevensbeheer, de editor voor laden van gegevens, of wanneer u gegevens toevoegt aan een nieuwe applicatie.

Ga voor meer informatie naar Gegevens uit bestanden laden.

U kunt ook gegevens laden vanuit een Parquet-bestand in het gegevensload-script met de opdracht LOAD. Bijvoorbeeld:

LOAD * from xyz.parquet (parquet);

Ga voor meer informatie naar Load.

Gegevens laden uit geneste Parquet-bestanden

Als een Parquet-bestand geneste gegevens bevat, moet het in meerdere LOAD-instructies worden geladen, waarbij elke instructie specificeert welke subverzameling in een tabel moet worden geladen. De Table is-specificatie wordt gebruikt om een pad naar het groepsknooppunt in het te laden schema aan te duiden.

Alleen knooppunten die overeenkomen met het Table is-pad, worden geladen.

Gegevensknooppunten worden zonder nesten in een bestand geladen.

Groepsknooppunten groeperen de velden in een groep door hun naam toe te voegen aan de veldnaam. Bijvoorbeeld: een groep met field1 en field2 worden geladen als group.field1 en group.field2.

Lijstknooppunten genereren sleutelvelden die worden gebruikt om de tabellen te verbinden. Bijvoorbeeld: %Key_group.list. Alle groeps- of gegevensknooppunten in de lijst moeten in een afzonderlijke LOAD-instructie worden geladen. Er wordt ook een sleutelveld naar de bovenliggende lijst toegevoegd.

De volgende voorbeelden tonen hetzelfde, geneste Parquet-bestand, gemaakt in het voorbeeld in Geneste gegevens opslaan in Parquet-bestanden, geladen in een applicatie, met Gegevensbeheer en Editor voor laden van gegevens (met het standaardscript uit Gegevens selecteren en aangepast script).

Voorbeeld: Gegevensbeheer

Als u customer.parquet in Gegevensbeheer laadt en alle aanbevolen koppelingen toepast, krijgt u het volgende gegevensmodel:

Gegevensmodel voor het laden van company.parquet met Gegevensbeheer

Data model showing the tables company:salesrep.salesrep, company, company:headquarter.headquarter, and company:headquarter.headquarter.city:region.region

Voorbeeld: Editor voor laden van gegevens (Gegevens selecteren)

Als u de gegevens laadt met Gegevens selectere in Editor voor laden van gegevens, resulteert dat in het volgende script:

LOAD company, contact, "%Key_company:headquarter", "%Key_company:salesrep" FROM [lib://AttachedFiles/company.parquet] (parquet); LOAD country, city, "%Key_city:region", "%Key_company:headquarter" FROM [lib://AttachedFiles/company.parquet] (parquet, table is [company:headquarter.headquarter]); LOAD region, "%Key_city:region" FROM [lib://AttachedFiles/company.parquet] (parquet, table is [company:headquarter.headquarter.city:region.region]); LOAD salesrep, "%Key_company:salesrep" FROM [lib://AttachedFiles/company.parquet] (parquet, table is [company:salesrep.salesrep]);

Het gegevensmodel ziet er nu als volgt uit in Gegevensmodelviewer.

Het gegevensmodel voor het laden van company.parquet met Gegevens selecteren in Editor voor laden van gegevens

Data model showing the tables salesrep, company, headquarter, and region.

Voorbeeld: Editor voor laden van gegevens (Aangepast load-script)

Als u een aangepast load-script gebruikt, hebt u meer controle over hoe de velden en tabellen uit customer.parquet worden geladen. Het volgende load-script laadt de tabellen en velden uit company.parquet:

LOAD * FROM [lib://AttachedFiles/company.parquet] (parquet); LOAD *, Lookup('company', '%Key_company:salesrepo', [%Key_company:salesrep], 'company') as company; LOAD * FROM [lib://AttachedFiles/company.parquet] (parquet, table is [company:salesrep.salesrep]); DROP FIELD [%Key_company:salesrep]; LOAD *, Lookup('company', '%Key_company:headquarter', [%Key_company:headquarter], 'company') as company; LOAD * FROM [lib://AttachedFiles/company.parquet] (parquet, table is [company:headquarter.headquarter]); DROP FIELD [%Key_company:headquarter]; LOAD *, Lookup('city', '%Key_city:region', [%Key_city:region], 'headquarter') as city; LOAD * FROM [lib://AttachedFiles/company.parquet] (parquet, table is [company:headquarter.headquarter.city:region.region]); DROP FIELD [%Key_city:region];

Dit resulteert in het volgende gegevensmodel, dat identiek is aan het oorspronkelijke gegevensmodel van voordat de gegevens werden opgeslagen in het Parquet-bestand.

Het gegevensmodel voor het laden van company.parquet met een aangepast script in Editor voor laden van gegevens

Data model with the tables headquarter, region, salesrep, and company, mirroring the exact data model from the source app.

Beperkingen

Parquet-bestanden hebben de volgende beperkingen:

  • Parquet-bestanden die een int96-tijdstempelveld bevatten worden mogelijk niet correct geladen.

    Int96 is een verouderd gegevestype dat een tijdstempel zonder tijdzonegegevens bevat. Er wordt een poging gedaan om het veld als UTC te lezen, maar vanwege verschillende implementaties van de leverancier kan succes niet worden gegarandeerd.

    Controleer de geladen gegevens en wijzig de tijdzone in de juiste tijdzone met indien nodig een marge.

Was deze pagina nuttig?

Als u problemen ervaart op deze pagina of de inhoud onjuist is – een tikfout, een ontbrekende stap of een technische fout – laat het ons weten!