Gå till huvudinnehåll Gå till ytterligare innehåll

Arkitektur för datauppsättningar i ett Qlik Open Lakehouse

När du genererar datauppsättningar i ett Qlik Open Lakehouse genereras lagringstabeller, ändringstabeller och vyer automatiskt av Qlik Talend Data Integration. Du kan ställa frågor till dessa vyer för att få tillgång till aktuella och historiska data som lagras i Icebergs öppna tabellformat.

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

Arkitektur för en Qlik Open Lakehouse-datapipeline med hjälp av Qlik Data Gateway – dataflytt. Data mellanlagras i S3 och lagras i ett Open Lakehouse i Iceberg. Alternativt, som visas nedan, kan tabeller speglas i ett datalager.

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.

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

Denna tabell innehåller fem partitioner, 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.

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

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 partitionen Changes.

    • 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 (Ändringar) ä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.

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

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

Nuvarande partition

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:

  • För data som tagits från en fullständig laddning är detta starttiden för fullständig laddning.

  • För en förändring som kommer genom Changes-partitionen är det tidsmarkörfältet för posten.

hdr__operation VARCHAR (1)

Senaste åtgärden för den här posten.

  • D – raderad från Changes-partitionen.

  • U – uppdaterad från Changes-partitionen.

  • I – infogad från Changes-partitionen.

  • L – infogat av uppgiften fullständig laddning.

  • d – raderat från jämför och tillämpa.

  • u – uppdaterat från jämför och tillämpa.

  • i – infogat från jämför och tillämpa.

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.

Tidigare partition

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.

  • D – raderad från Changes-partitionen.

  • U – uppdaterad från Changes-partitionen.

  • I – infogad från Changes-partitionen.

  • L – infogat av uppgiften fullständig laddning.

  • d – raderat från jämför och tillämpa.

  • u – uppdaterat från jämför och tillämpa.

  • i – infogat 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 den senaste gången posten var aktuell.

Changes partition

Fält Typ Beskrivning
hdr__change_identifier VARCHAR (50)

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

  • Tidsmarkör för start av batchkörning i millisekunder sedan 1970-01-01 (tiosiffrig sträng).

  • Ändringssekvens från replikeringsgatewayen (35 tecken).

hdr__operation VARCHAR (1)

Senaste åtgärden för den här posten.

  • D – raderad från Changes-partitionen.

  • U – uppdaterad från Changes-partitionen.

  • I – infogad från Changes-partitionen.

  • L – infogat av uppgiften fullständig laddning.

  • d – raderat från jämför och tillämpa.

  • u – uppdaterat från jämför och tillämpa.

  • i – infogat från jämför och tillämpa.

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 partition

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 partition

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:

Befintlig

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 partitionerna Current och Changes.

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 partitionerna Prior och Changes. 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:

  • 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 den här posten.

  • D – raderad från Changes-partitionen.

  • U – uppdaterad från Changes-partitionen.

  • I – infogad från Changes-partitionen.

  • L – infogat av uppgiften fullständig laddning.

  • d – raderat från jämför och tillämpa.

  • u – uppdaterat från jämför och tillämpa.

  • i – infogat från jämför och tillämpa.

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.

Anteckning om informationVyerna Current och History är beroende av partitionen Changes och är alltid nära realtid. Om du däremot upplever att sökningen går långsamt kan det bero på att ett stort antal ändringar ännu inte har tillämpats i Current- eller Prior-partitionerna. Deltan som inte är sammansmälta 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!