Dataset-arkitektur i en Qlik Open Lakehouse | Qlik CloudHjälp
Gå till huvudinnehåll Gå till ytterligare innehåll

Dataset-arkitektur i en Qlik Open Lakehouse

När du genererar dataset i en Qlik Open Lakehouse genereras lagringstabeller, ändringstabeller och vyer automatiskt av Qlik Talend Data Integration. Du kan ställa frågor mot dessa vyer för att komma åt aktuella och historiska data som lagras i Iceberg open table-format.

Ett intuitivt och väglett användargränssnitt hjälper dig att bygga, modellera och köra data-pipelines. Du kan automatiskt generera scheman för operativa datalager (ODS) och historiska datalager (HDS) utan manuell kodning.

Arkitektur för en Qlik Open Lakehouse data-pipeline med Qlik Data Gateway – dataflytt. Data mellanlagras i S3 och lagras i ett Iceberg open lakehouse. Som ett alternativ, vilket visas nedan, kan tabeller speglas till ett datalager.

Scheman

Artefakter genereras i ett internt schema och ett datauppgiftsschema.

  • Det interna schemat innehåller en fysisk tabell med flera partitioner.

  • Datauppgiftsschemat innehåller de vyer som du kan använda för att konsumera data.

    När ett schema är associerat med mer än en datauppgift måste varje datauppgift använda ett unikt prefix för tabeller och vyer. Du kan ställa in prefixet i datauppgiftens inställningar.

Endast interna scheman kontrolleras för namnkonflikter. För andra scheman måste du se till att det inte finns några namnkonflikter i tabellnamnen. Bästa praxis är att ge det interna schemat samma namn som datauppgiftsschemat med _internal tillagt. Detta säkerställer att varje kombination av schema och prefix är unik.

Anteckning om informationAlla tabeller och vyer hanteras av Qlik Talend Data Integration. Ändra inte data med andra verktyg.

Tabeller

För varje källtabell skapas en tabell i det interna schemat med suffixet _internal, med formatet:

<INTERNAL_SCHEMA>.<TABLE_NAME>_internal

Den här tabellen innehåller fem partitioner, som var och en har ett specifikt syfte för hur data bearbetas och lagras. Varje partition utnyttjar en delmängd av tabellens kolumner baserat på dess roll i datalivscykeln.

Anteckning om informationTabellen i det interna schemat kan ändras utan föregående meddelande. Du bör i första hand använda vyer för att konsumera data där det är möjligt.

Det interna datasetet är strukturerat för att effektivt hantera inkommande data från ditt källsystem, med stöd för inläsning i realtid och historisk spårning. Dataflödet hanteras genom flera specialiserade partitioner, som var och en beskrivs nedan:

  • Changes-partition – Inläsning i realtid

    Alla ändringar från källsystemet – infogningar, 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 transformationer sker.

    • Varje ändring taggas med en typ (I, U eller D), vilket indikerar hur den bearbetas.

    • Händelser fångas från källan när de inträffar. Partitionen uppdateras i nästan realtid.

    • Changes-partitionen är tillgänglig när följande inställningar tillämpas i datauppgiften för Lake-mellanlagring.

      • På fliken Allmänt är Uppdateringsmetod inställd på CDC.

      • Fullständig laddning är aktiverad.

  • Asset_state-partition - Spåra förlopp

    När ändringar läses in loggar Asset_state-partitionen två viktiga tidsmarkörer:

    • När ändringar senast lades till i Changes-partitionen.

    • När ändringar senast tillämpades på Current-partitionen.

    Detta ger full insyn i synkroniserings-pipelinen och hjälper till med övervakning eller felsökning av fördröjningar.

  • Current-partition (ODS) – Senaste repliken av källan

    Ändringar från Changes-partitionen tillämpas regelbundet på Current-partitionen för att upprätthålla en uppdaterad, frågeoptimerad kopia av källdata.

    • En bakgrundsuppgift körs automatiskt för att tillämpa dessa uppdateringar. Detta baseras på volymen av ackumulerade ändringar, snarare än 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ågekörning.

  • Prior-partition (HDS) – Historiska data

    När en post uppdateras eller tas bort i Current-partitionen skrivs en kopia av den tidigare versionen till Prior-partitionen. 

    • Poster innehåller metadata, inklusive ändringshistorik och det datumintervall då data är giltiga.

    • Detta stöder Type 2 slowly changing dimension (SCD2).

    • Prior-partitionen är tillgänglig när Behåll historiska poster och arkiv med ändringsposter är aktiverat på fliken Allmänt i inställningarna för lagringsdatauppgiften.

    • 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.

  • Reload-partition

    Reload-partitionen fungerar som ett tillfälligt mellanlagringsområde under manuella eller schemalagda fullständiga omladdningar:

    • Nya data skrivs först till Reload-partitionen.

    • Regelbundna underhållsuppgifter raderar eventuella 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 åtgärden är slutförd.

    Denna process säkerställer minimal störning av huvuddatasetet under fullständiga omladdningsåtgärder.

Current-partition

Fält Typ Beskrivning
hdr__key_hash VARBINARY (20) Hash av alla primärnycklar för posten. Hash-formatet är SHA1. Kolumner separeras med ett backstegstecken.
hdr__from_timestamp TIMESTAMP

Tidsmarkör i UTC:

  • För data som hämtas från en fullständig laddning är detta starttiden för den fullständiga laddningen.

  • För en ändring som kommer från Changes-partitionen är detta tidsmarkörsfältet för posten.

hdr__operation VARCHAR (1)

Senaste åtgärden för denna post.

  • D - borttagen från Changes-partitionen.

  • U - uppdaterad från Changes-partitionen.

  • I - infogad från Changes-partitionen.

  • L - infogad av uppgiften för fullständig laddning.

  • d - borttagen från jämför och tillämpa.

  • u - uppdaterad från jämför och tillämpa.

  • i - infogad från jämför och tillämpa.

hdr__inserted_timestamp TIMESTAMP UTC-tidsmarkör för första gången nyckeln lades till. Vid användning av fullständig laddning, starttiden för den fullständiga laddningen.
hdr__modified_timestamp TIMESTAMP UTC-tidsmarkör för när den senaste uppdateringen gjordes.

Prior-partition

Fält Typ Beskrivning
hdr__key_hash VARBINARY (20) Hash av alla primärnycklar för posten.
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 denna post.

  • D - borttagen från Changes-partitionen.

  • U - uppdaterad från Changes-partitionen.

  • I - infogad från Changes-partitionen.

  • L - infogad av uppgiften för fullständig laddning.

  • d - borttagen från jämför och tillämpa.

  • u - uppdaterad från jämför och tillämpa.

  • i - infogad från jämför och tillämpa.

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 sista gången posten var aktuell.

Changes-partition

Fält Typ Beskrivning
hdr__change_identifier VARCHAR (50)

Ändringsidentifieraren är en sträng med två delar:

  • Starttidsmarkör för batchkörning i millisekunder sedan 1/1/1970 (10-siffrig sträng).

  • Ändringssekvens från replikerings-gatewayen (35 tecken).

hdr__operation VARCHAR (1)

Senaste åtgärden för denna post.

  • D - borttagen från Changes-partitionen.

  • U - uppdaterad från Changes-partitionen.

  • I - infogad från Changes-partitionen.

  • L - infogad av uppgiften för fullständig laddning.

  • d - borttagen från jämför och tillämpa.

  • u - uppdaterad från jämför och tillämpa.

  • i - infogad från jämför och tillämpa.

hdr__timestamp TIMESTAMP Tidsmarkör i UTC.
hdr__key_hash BINARY (20) Hash av alla primärnycklar för posten.
hdr__inserted_timestamp TIMESTAMP UTC-tidsmarkör för den tidpunkt då ändringen bearbetades av Qlik.

Asset_state-partition

Fält Typ Beskrivning
hdr__apply_change_identifier VARCHAR (50) Ändringsidentifieraren för den senaste ändringen som tillämpades på Current-partitionen.
hdr__copy_change_identifier VARCHAR (50) Ändringsidentifieraren för den senaste ändringen som lades till i Changes-partitionen.

Reload-partition

De kolumner som används av Reload-partitionen är identiska med Current-partitionen.

Vyer

Alla vyer som skapas uppdateras i nästan realtid. Följande vyer är tillgängliga för att förenkla frågekörning och rapportering:

Current

Current-vyen återspeglar det senaste tillståndet för data. Denna vy representerar en replik av källtabellen, uppdaterad i nästan realtid. Den slår samman data från Current- och Changes-partitionerna.

Namn: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>

Inga rubrikkolumner läggs till i tabellstrukturen.

History

En History-vy genereras i datatillgångsschemat för varje vald källtabell när History är aktiverat i datauppgiftens inställningar. History-vyn slår samman data från Prior- och Changes-partitionerna. Den ger en komplett tidslinje över ändringar, idealisk för granskning eller historisk analys.

Namn: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>

Följande rubrikfält läggs till i History-vyn:

Fält Typ Beskrivning
hdr__key_hash BINARY (20) Hash av alla primärnycklar för posten.
hdr__from_timestamp TIMESTAMP Tidsmarkören när ändringen inträffade i källsystemet. Detta återspeglar när användaren ursprungligen gjorde ändringen.
hdr__to_timestamp TIMESTAMP Tidsmarkören när ändringen återkallades eller uppdaterades i källsystemet.
hdr__store VARCHAR (10)

Detta indikerar var posten finns:

  • CURRENT - om posten finns i Current-partitionen.

  • PRIOR - om posten finns i Prior-partitionen med historiska data.

hdr__operation STRING (1)

Senaste åtgärden för denna post.

  • D - borttagen från Changes-partitionen.

  • U - uppdaterad från Changes-partitionen.

  • I - infogad från Changes-partitionen.

  • L - infogad av uppgiften för fullständig laddning.

  • d - borttagen från jämför och tillämpa.

  • u - uppdaterad från jämför och tillämpa.

  • i - infogad från jämför och tillämpa.

hdr__deleted BIT Indikerar om posten är mjukt borttagen, baserat på om hdr__operation är D eller d.
hdr__was_current_from_timestamp TIMESTAMP Tiden (UTC) när 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 Tiden (UTC) när raden togs bort från Current-tabellen, till exempel på grund av en nyare version.

Anteckning om informationCurrent- och History-vyerna förlitar sig på Changes-partitionen och är alltid i nästan realtid. Om du dock upplever långsam frågeprestanda kan det bero på ett stort antal ändringar som ännu inte har tillämpats i Current- eller Prior-partitionerna. Osammanslagna deltan kräver mer bearbetning vid frågetillfället, vilket gör åtkomsten långsammare.

Var den här sidan till hjälp för dig?

Om du stöter på några problem med den här sidan eller innehållet på den, t.ex. ett stavfel, ett saknat steg eller ett tekniskt fel – meddela oss!