Arkitektur för datauppsättningar för strömmande källor i ett Qlik Open Lakehouse
Last updated: 2026-09-01Strömningskällor har sin egen arkitektur i Qlik Open Lakehouse eftersom de inte kräver Data Movement gateway för att läsa in data i mellanlagrings-bucket, utan drivs av lakehouse-klustret.
När du matar in data från filer som innehåller ett datamönster i filnamnet, gör detta att lakehouse-klustret kan utföra riktade liståtgärder i S3, vilket dramatiskt snabbar upp tiden för att läsa fillistan. Dessutom kan Qlik Open Lakehouse förutsäga ankommande filer baserat på datumformatet. Den strömmande mellanlagringsuppgiften behöver inte lista hela bucket varje gång, utan kan istället begära filerna från S3 inom ett specifikt datumintervall. En mindre fillista leder till bättre prestanda. Den valfria inställningen Radera efter inläsning kan användas för att bibehålla ett litet antal filer. Det utförs ingen fullständig laddning, de första posterna betraktas som infogade ändringar.
I en Qlik Open Lakehouse, ersätter uppgiften Strömmande transformera lagringsuppgiften. Denna uppgift används för att transformera och lagra landad data som Iceberg-tabeller. En strömmande transformeringsuppgift kan endast läggas till efter en strömmande mellanlagringsuppgift. Strömmande transformeringsuppgiften stöder två lägen för att uppdatera poster:
- Endast lägg till: Lägger till nya poster utan att ändra befintlig data, och nyckelbegränsningar tillämpas inte om kopierade poster uppstår.
-
Tillämpa ändringar (Sammanfoga): Uppdaterar befintliga poster och infogar nya poster baserat på nyckelfält. Detta läge ger dig möjlighet att använda en mjuk borttagning, eller behålla historiska data (Typ 2).
Uppgiften Strömmande transformera är en målbaserad uppgift som mappar mellan källa och mål och inkluderar funktioner för schemautveckling. Den tillhandahåller utökade transformeringsfunktioner inklusive avnästling av nästlade strukturer och utplattning av arrayer. För mer information om funktionerna du kan använda i Steaming Transform-uppgiften, se Transformationsfunktioner.
När du matar in från en strömmande källa, har du möjlighet att konfigurera Iceberg-partitionering, lagringshantering, sorteringskolumner, förfallodatum för ögonblicksbilder för att kontrollera lagringskostnader och optimera för frågeprestanda.
Arkitektur för en strömmande Qlik Open Lakehouse datapipeline i endast tillägg-läge

Arkitektur för en strömmande Qlik Open Lakehouse datapipeline i sammanslagningsläge

Mellanlagringstabeller
Följande rubrikfält läggs till i mellanlagringstabellerna. Dessa kolumner finns alltid i mellanlagringsdata, men inkluderas inte i den nedströms strömmande transformeringsuppgiften som standard. Du kan lägga till dem i Streaming Transform-uppgiften med hjälp av Lägg till kolumn från källa, eller referera till dem i uttrycksbyggaren när du lägger till eller redigerar en kolumn.
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__kafka_partition | Lång | Kafka-partition |
| hdr__kafka_topic | Sträng | Kafka-ämne |
| hdr__kafka_offset | Lång | Löpande värde i delning |
| hdr__kafka_key | Sträng | Base64-kodad nyckel. Ange till NULL-sträng om inte tillgänglig. |
| hdr__kafka_headers | Sträng |
JSON med alla meddelanderubriker. Ange till NULL-sträng om inte tillgänglig. |
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__kinesis_stream | Sträng | Amazon Kinesis ström |
| hdr__kinesis_shard | Sträng | Amazon Kinesis-strömshard |
| hdr__kinesis_offset | Sträng | Amazon Kinesis förskjutning |
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__file_name | Sträng | Filnamn |
| hdr__file_size | Lång | Filstorlek i byte. |
Scheman
Artefakter genereras i ett internt schema och ett schema för datauppgifter.
-
Det interna schemat innehåller en fysisk tabell med flera partitioner.
-
Schemat för datauppgifter innehåller de vyer som du kan använda för att förbruka data.
När ett schema är associerat till fler än en datauppgift måste varje datauppgift använda ett unikt prefix för tabeller och vyer. Du kan ställa in prefixet i inställningarna för datauppgifter.
Enbart interna scheman kontrolleras för namnkonflikter. För övriga scheman måste du säkerställa att det inte förekommer namnkonflikter i tabellnamnen. Bästa metoden är att ge det interna schemat samma namn som datauppgiftsschemat med _internal tillagt. Det säkerställer att alla schema- och prefixkombinationer är unika.
Tabeller
För varje källtabell skapas en tabell i det interna schemat med suffixet _internal, med formatet:
<INTERNAL_SCHEMA>.<TABLE_NAME>_internal
Denna tabell innehåller fem partitioner i Tillämpa ändringar (Sammanfoga) läge, som var och en tjänar ett distinkt syfte i hur data bearbetas och lagras. Varje partition utnyttjar en delmängd av tabellens kolumner baserat på dess roll i datalivscykeln. I Endast tillägg-läge har tabellen inga partitioner och beter sig som Aktuell partition (ODS).
Den interna datauppsättningen är strukturerad för att effektivt hantera inkommande data från ditt källsystem, med stöd för inmatning i realtid och historisk spårning. Dataflödet hanteras genom flera specialiserade partitioner, var och en beskriven nedan:
-
Changes partition – inmatning i realtid
Alla ändringar från källsystemet – inmatningar, uppdateringar och borttagningar – läggs först till i Changes partitionen.
-
Partitionen fungerar som en rå ändringslogg och ger ett komplett flöde av källaktivitet innan några omvandlingar sker.
-
Varje ändring är märkt med en typ (I, U eller D) som anger hur den behandlas.
-
Händelser fångas upp från källan när de inträffar. Partitionen uppdateras i nära realtid.
-
Partitionen Changes är tillgänglig när följande inställningar tillämpas i datauppgiften för mellanlagring i datasjö.
-
På fliken Allmänt är Uppdateringsmetod inställd på CDC.
-
Fullständig laddning är aktiverad.
-
-
-
Asset_state partition – uppföljning av framsteg
När ändringar tas in loggar Asset_state partitionen två viktiga tidsmarkörer:
-
När ändringar senast lades till i partitionen Changes.
-
När ändringar senast tillämpades i partitionen Current.
Detta ger full insyn i synkroniseringens pipeline och hjälper till med övervakning eller felsökning av förseningar.
-
-
Aktuell partition (ODS) – senaste kopia av källan
Ändringar från partitionen Changes tillämpas periodiskt på partitionen Current för att upprätthålla en aktuell, frågeoptimerad kopia av datakällan.
-
En bakgrundsuppgift körs automatiskt för att tillämpa dessa uppdateringar. Detta baseras på volymen av ackumulerade ändringar, snarare än på ett fast schema.
-
Den initiala fullständiga laddningen skrivs direkt till Current-partitionen.
-
Denna partition återspeglar det aktuella tillståndet för data och är utformad för effektiv frågeställning.
-
-
Prior partition (HDS) – historiska data
När en post uppdateras eller raderas i Current-partitionen, skrivs en kopia av den tidigare versionen till Prior-partitionen.
-
Poster innehåller metadata, inklusive ändringshistorik och det datumintervall då uppgifterna är giltiga.
-
Detta stöder långsamt förändrade dimensioner av typ 2 (SCD2).
-
Partitionen Prior är tillgänglig när Spara historiska poster och arkivering av ändringsposter är aktiverat på fliken Allmänt i inställningarna för lagringsdatauppgifter.
-
När en uppdaterad version av en post kommer in i Current-partitionen, flyttas den tidigare posten till Prior-partitionen för historisk spårning.
-
-
Ladda om partition
Reload-partitionen fungerar som en tillfällig samlingsplats under manuella eller schemalagda fullständiga omladdningar:
-
Nya data skrivs först till Reload-partitionen.
-
Regelbundna underhållsåtgärder raderar alla väntande ändringar innan de pausas.
-
Data jämförs med Current-partitionen, och endast skillnaderna flyttas till Current-partitionen.
-
Reload-partitionen raderas när operationen är slutförd.
Denna process säkerställer minimal störning av huvuddatauppsättningen under fullständiga omladdningar.
-
Current Changes-partitionen
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__key_hash | VARBINARY (20) | Hash för alla primära nycklar för post. Hashformat är SHA1. Kolumner separeras med ett backstegstecken. |
| hdr__from_timestamp | TIMESTAMP |
Tidsmarkör i UTC:
|
| hdr__operation | VARCHAR (1) |
Senaste åtgärden för den här posten.
|
| hdr__inserted_timestamp | TIMESTAMP | UTC-tidsmarkör för första gången nyckeln lades till. När fullständig laddning används, starttiden för fullständig laddning. |
| hdr__modified_timestamp | TIMESTAMP | UTC-tidsmarkör för när den senaste uppdateringen gjordes. |
Prior Changes-partitionen
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__key_hash | VARBINARY (20) | Hash för alla primära nycklar för post. |
| hdr__from_timestamp | TIMESTAMP | Tidsmarkör i UTC. |
| hdr__to_timestamp | TIMESTAMP | Tidsmarkör i UTC. |
| hdr__operation | STRING (1) |
Senaste åtgärden för den här posten.
|
| hdr__was_current_from_timestamp | TIMESTAMP | Tidsmarkör i UTC för första gången posten var aktuell. |
| hdr__was_current_to_timestamp | TIMESTAMP | Tidsmarkör i UTC för den senaste gången posten var aktuell. |
Changes Changes-partitionen
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__change_identifier | VARCHAR (50) |
Ändringsidentifieraren är en sträng med två delar:
|
| hdr__operation | VARCHAR (1) |
Senaste åtgärden för den här posten.
|
| hdr__timestamp | TIMESTAMP | Tidsmarkör i UTC. |
| hdr__key_hash | BINARY (20) | Hash för alla primära nycklar för post. |
| hdr__inserted_timestamp | TIMESTAMP | UTC-tidsmarkör för den tidpunkt då ändringen behandlades av Qlik. |
Asset_state Changes-partitionen
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__apply_change_identifier | VARCHAR (50) | Ändringsidentifieraren för den senaste ändringen som tillämpats på Current-partitionen. |
| hdr__copy_change_identifier | VARCHAR (50) | Ändringsidentifieraren för den senaste ändringen som tillämpats på Changes-partitionen. |
Reload Changes-partitionen
De kolumner som används av Reload partitionen är identiska med Current partitionen.
Vyer
Alla vyer som skapas uppdateras i nära realtid. Följande vyer finns tillgängliga för att förenkla frågor och rapportering:
Aktuell
Vyn Current visar den senaste statusen för data. Denna vy representerar en replik av källtabellen, uppdaterad i nära realtid. Den sammanfogar data från Current och Changes partitionerna.
Namn: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>
Inga rubrikkolumner läggs till i tabellstrukturen.
Historik
En Historikvy genereras i schemat för datatillgångar för varje vald källtabell om Historik är aktiverat i inställningarna för datauppgiften. Historikvyn sammanfogar data från Prior och Changes partitionerna. Det ger en fullständig tidslinje över förändringar, perfekt för revision eller historisk analys.
Namn: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>
Följande rubrikfält läggs till i historikvyn:
| Fält | Typ | Beskrivning |
|---|---|---|
| hdr__key_hash | BINARY (20) | Hash för alla primära nycklar för post. |
| hdr__from_timestamp | TIMESTAMP | Tidsmarkör när ändringen inträffade i källsystemet. Detta återspeglar när användaren ursprungligen gjorde ändringen. |
| hdr__to_timestamp | TIMESTAMP | Tidsmarkör när ändringen blev omvänd eller uppdaterad i källsystemet. |
| hdr__store | VARCHAR (10) |
Detta anger var posten finns:
|
| hdr__operation | STRING (1) |
Senaste åtgärden för den här posten.
|
| hdr__deleted | BIT | Anger om posten är mjukt raderad, baserat på om hdr__operation är D eller d. |
| hdr__was_current_from_timestamp | TIMESTAMP | Den tid (UTC) då denna rad kom in i Current-partitionen. Detta är vanligtvis när lagringsjobbet kördes och ändringen tillämpades. |
| hdr__was_current_to_timestamp | TIMESTAMP | Tidpunkten (UTC) då raden togs bort från Current-tabellen, t.ex. på grund av en nyare version. |
Visa rubrikkolumner i vyer
Du kan styra om du vill visa eller dölja rubrikkolumnerna. Alternativen skiljer sig åt beroende på uppgiftstyp.
Streaming mellanlagringsuppgift
För att visa rubrikkolumnerna, aktivera Visa rubrikkolumner till höger om sökrutan.
Strömmande transformeringsuppgift
Till höger om sökrutan finns en listruta med följande alternativ.
-
Dölj rubrikkolumner: Standard.
-
Visa rubrikkolumner
-
Standard: Välj att visa rubrikkolumner för standardvyer.
-
Historik: Välj för att visa rubrikkolumner för historikvyer. Observera att det här alternativet endast är tillgängligt om Skapa en historisk datalagring (typ 2) är aktiverat i uppgifts- eller datamängdsinställningarna.
-
En beskrivning av de tillgängliga rubrikkolumnerna finns i Mellanlagringstabeller och Vyer.