Datasetarchitectuur in een Qlik Open Lakehouse | Qlik Cloud Help
Ga naar hoofdinhoud Ga naar aanvullende inhoud

Datasetarchitectuur in een Qlik Open Lakehouse

Streamingbronnen hebben hun eigen architectuur in Qlik Open Lakehouse omdat ze de Data Movement gateway niet nodig hebben om gegevens in de tussenopslag-bucket te laden, maar worden aangedreven door het lakehouse-cluster.

Wanneer u gegevens opneemt uit bestanden die een gegevenspatroon in de bestandsnaam bevatten, stelt dit het lakehouse-cluster in staat om gerichte lijstbewerkingen in S3 uit te voeren, wat de tijd om de bestandslijst te lezen aanzienlijk versnelt. Bovendien kan Qlik Open Lakehouse aankomende bestanden voorspellen op basis van het datumpatroon. De Streaming tussenopslag-taak hoeft niet elke keer de hele bucket op te sommen, maar kan in plaats daarvan de bestanden van S3 opvragen binnen een specifiek datumbereik. Een kleinere bestandslijst leidt tot betere prestaties. De optionele instelling Verwijderen na laden kan worden gebruikt om een klein aantal bestanden te behouden. Er wordt geen volledige lading uitgevoerd, de eerste records worden beschouwd als ingevoegde wijzigingen.

In een Qlik Open Lakehouse vervangt de Streaming Transform-taak de opslagtaak. Deze taak wordt gebruikt om in de tussenopslag geplaatste gegevens te transformeren en op te slaan als Iceberg-tabellen. Een Streaming Transform-taak kan alleen worden toegevoegd na een Streaming tussenopslag-taak. De Streaming Transform-taak ondersteunt twee modi voor het bijwerken van records:

  • Alleen toevoegen: Voegt nieuwe records toe zonder bestaande gegevens te wijzigen, en sleutelbeperkingen worden niet afgedwongen als er dubbele records binnenkomen.
  • Wijzigingen toepassen (Samenvoegen): Werkt bestaande records bij en voegt nieuwe records in op basis van sleutelvelden. Deze modus geeft u de optie om een zachte verwijdering (soft delete) te gebruiken, of historische gegevens te behouden (Type 2).

De Streaming Transform-taak is een op een doel gebaseerde taak, die toewijst tussen bron en doel en mogelijkheden voor schema-evolutie bevat. Het biedt uitgebreide transformatiemogelijkheden, waaronder het ontwarren (unnesten) van geneste structuren en het afvlakken van arrays. Voor meer informatie over de functies die u kunt gebruiken in de Streaming Transform-taak, raadpleegt u Transformatiefuncties.

Wanneer u opneemt vanuit een streamingbron, heeft u de mogelijkheid om Iceberg-partitionering, retentiebeheer, sorteerkolommen en snapshot-verval in te stellen om opslagkosten te beheersen en te optimaliseren voor queryprestaties.

Architectuur voor een streaming Qlik Open Lakehouse-gegevenspijplijn in de modus Alleen toevoegen

Open lakehouse-architectuur in de modus alleen toevoegen

Architectuur voor een streaming Qlik Open Lakehouse-gegevenspijplijn in de modus Samenvoegen

Open lakehouse-architectuur in de modus samenvoegen

Tussenopslag-tabellen

De volgende koptekstvelden worden toegevoegd aan de tussenopslag-tabellen. Deze velden bestaan altijd in tussenopslag-gegevens, maar standaard niet in de downstream-transformatie. U kunt de velden toevoegen aan de transformatie met behulp van een expressie.

Koptekstvelden toegevoegd voor Kafka-bronnen
Veld Type Beschrijving
hdr__kafka_partition Long Kafka-partitie
hdr__kafka_topic String Kafka-onderwerp
hdr__kafka_offset Long Lopende waarde in partitie
hdr__kafka_key String Base64-gecodeerde sleutel. Ingesteld op NULL-tekenreeks indien niet beschikbaar.
hdr__kafka_headers String

JSON met alle berichtkoppen. Ingesteld op NULL-tekenreeks indien niet beschikbaar.  

Koptekstvelden toegevoegd voor Amazon Kinesis-bronnen
Veld Type Beschrijving
hdr__kinesis_stream String Amazon Kinesis-stream
hdr__kinesis_shard String Amazon Kinesis-shard
hdr__kinesis_offset String Amazon Kinesis-offset
Koptekstvelden toegevoegd voor Amazon S3-bronnen
Veld Type Beschrijving
hdr__file_name String Bestandsnaam
hdr__file_size Long Bestandsgrootte in bytes.

Schema's

Artefacten worden gegenereerd in een intern schema en een gegevenstaakschema.

  • Het intern schema bevat een fysieke tabel met meerdere partities.

  • Het gegevenstaakschema bevat de weergaven die u kunt gebruiken om de gegevens te consumeren.

    Wanneer een schema is gekoppeld aan meer dan één gegevenstaak, moet elke gegevenstaak een uniek voorvoegsel gebruiken voor tabellen en weergaven. U kunt het voorvoegsel instellen in de instellingen van de gegevenstaak.

Alleen interne schema's worden gecontroleerd op naamgevingsconflicten. Voor andere schema's moet u ervoor zorgen dat er geen naamgevingsconflicten zijn in de tabelnamen. De beste werkwijze is om het intern schema dezelfde naam te geven als het gegevenstaakschema met _internal toegevoegd. Dit zorgt ervoor dat elke combinatie van schema en voorvoegsel uniek is.

InformatieAlle tabellen en weergaven worden beheerd door Qlik Talend Data Integration. Wijzig de gegevens niet met andere tools.

Tabellen

Voor elke brontabel wordt een tabel gemaakt in het intern schema met het achtervoegsel _internal, met behulp van de indeling:

<INTERNAL_SCHEMA>.<TABLE_NAME>_internal

Deze tabel bevat vijf partities in de modus Wijzigingen toepassen (Samenvoegen), die elk een specifiek doel dienen in hoe de gegevens worden verwerkt en opgeslagen. Elke partitie maakt gebruik van een subset van de kolommen van de tabel op basis van zijn rol in de levenscyclus van de gegevens. In de modus Alleen toevoegen heeft de tabel geen partities en gedraagt deze zich als de Current-partitie (ODS).

InformatieDe tabel in het intern schema kan zonder voorafgaande kennisgeving worden gewijzigd. U moet voornamelijk weergaven gebruiken om gegevens te consumeren waar mogelijk.

De interne dataset is gestructureerd om inkomende gegevens van uw bronsysteem efficiënt te beheren, waarbij realtime opname en historische tracering worden ondersteund. De gegevensstroom wordt beheerd via verschillende gespecialiseerde partities, die hieronder elk worden beschreven:

  • Changes-partitie – Realtime opname

    Alle wijzigingen van het bronsysteem—invoegingen, bijwerkingen en verwijderingen—worden eerst toegevoegd aan de Changes-partitie.

    • Fungerend als een ruw wijzigingslogboek, biedt de partitie een volledige feed van bronactiviteit voordat er transformaties plaatsvinden.

    • Elke wijziging is getagd met een type (I, U of D), wat aangeeft hoe deze wordt verwerkt.

    • Gebeurtenissen worden vastgelegd vanaf de bron zodra ze zich voordoen. De partitie wordt in bijna realtime bijgewerkt.

    • De Changes-partitie is beschikbaar wanneer de volgende instellingen zijn toegepast in de Lake tussenopslag-gegevenstaak.

      • Op het tabblad Algemeen is de Updatemethode ingesteld op CDC.

      • Volledige lading is ingeschakeld.

  • Asset_state-partitie - Voortgang bijhouden

    Naarmate wijzigingen worden opgenomen, registreert de Asset_state-partitie twee belangrijke tijdstempels:

    • Wanneer wijzigingen voor het laatst zijn toegevoegd aan de Changes-partitie.

    • Wanneer wijzigingen voor het laatst zijn toegepast op de Current-partitie.

    Dit biedt volledige zichtbaarheid in de synchronisatiepijplijn en helpt bij het monitoren of oplossen van vertragingen.

  • Current-partitie (ODS) – Nieuwste replica van de bron

    Wijzigingen uit de Changes-partitie worden periodiek toegepast op de Current-partitie om een up-to-date, voor query's geoptimaliseerde kopie van de brongegevens te behouden.

    • Een achtergrondtaak wordt automatisch uitgevoerd om die updates toe te passen. Dit is gebaseerd op het volume van de verzamelde wijzigingen, in plaats van een vast schema.

    • De initiële volledige lading wordt rechtstreeks naar de Current-partitie geschreven.

    • Deze partitie weerspiegelt de huidige status van de gegevens en is ontworpen voor efficiënte query's.

  • Prior-partitie (HDS) – Historische gegevens

    Wanneer een record wordt bijgewerkt of verwijderd in de Current-partitie, wordt een kopie van de vorige versie naar de Prior-partitie geschreven. 

    • Records bevatten metagegevens, inclusief wijzigingsgeschiedenis en het datumbereik waarin de gegevens geldig zijn.

    • Dit ondersteunt Type 2 langzaam veranderende dimensie (SCD2).

    • De Prior-partitie is beschikbaar wanneer Historische records en archief van wijzigingsrecords behouden is ingeschakeld op het tabblad Algemeen van de instellingen van de Opslag-gegevenstaak.

    • Wanneer een bijgewerkte versie van een record de Current-partitie binnenkomt, wordt het vorige record verplaatst naar de Prior-partitie voor historische tracering.

  • Reload-partitie

    De Reload-partitie fungeert als een tijdelijk staging-gebied tijdens handmatige of geplande volledige herlaadbeurten:

    • Nieuwe gegevens worden eerst naar de Reload-partitie geschreven.

    • Reguliere onderhoudstaken wissen eventuele wijzigingen die in behandeling zijn voordat ze worden gepauzeerd.

    • Gegevens worden vergeleken met de Current-partitie en alleen de verschillen worden verplaatst naar de Current-partitie.

    • De Reload-partitie wordt gewist wanneer de bewerking is voltooid.

    Dit proces zorgt voor minimale verstoring van de hoofd-dataset tijdens volledige herlaadbewerkingen.

Current-partitie

Veld Type Beschrijving
hdr__key_hash VARBINARY (20) Hash van alle primaire sleutels van het record. Hash-indeling is SHA1. Kolommen worden gescheiden door een backspace-teken.
hdr__from_timestamp TIMESTAMP

Tijdstempel in UTC:

  • Voor gegevens afkomstig van een volledige lading is dit de starttijd van de volledige lading.

  • Voor een wijziging afkomstig uit de Changes-partitie is dit het tijdstempel-veld van het record.

hdr__operation VARCHAR (1)

Laatste bewerking van dit record.

  • D - verwijderd uit de Changes-partitie.

  • U - bijgewerkt vanuit de Changes-partitie.

  • I - ingevoegd vanuit de Changes-partitie.

  • L - ingevoegd door de taak voor volledige lading.

  • d - verwijderd uit vergelijken en toepassen.

  • u - bijgewerkt vanuit vergelijken en toepassen.

  • i - ingevoegd vanuit vergelijken en toepassen.

hdr__inserted_timestamp TIMESTAMP UTC-tijdstempel van de eerste keer dat de sleutel werd toegevoegd. Bij gebruik van volledige lading, de starttijd van de volledige lading.
hdr__modified_timestamp TIMESTAMP UTC-tijdstempel van wanneer de laatste update is uitgevoerd.

Prior-partitie

Veld Type Beschrijving
hdr__key_hash VARBINARY (20) Hash van alle primaire sleutels van het record.
hdr__from_timestamp TIMESTAMP Tijdstempel in UTC.
hdr__to_timestamp TIMESTAMP Tijdstempel in UTC.
hdr__operation STRING (1)

Laatste bewerking van dit record.

  • D - verwijderd uit de Changes-partitie.

  • U - bijgewerkt vanuit de Changes-partitie.

  • I - ingevoegd vanuit de Changes-partitie.

  • L - ingevoegd door de taak voor volledige lading.

  • d - verwijderd uit vergelijken en toepassen.

  • u - bijgewerkt vanuit vergelijken en toepassen.

  • i - ingevoegd vanuit vergelijken en toepassen.

hdr__was_current_from_timestamp TIMESTAMP Tijdstempel in UTC voor de eerste keer dat het record actueel was.
hdr__was_current_to_timestamp TIMESTAMP Tijdstempel in UTC voor de laatste keer dat het record actueel was.

Changes-partitie

Veld Type Beschrijving
hdr__change_identifier VARCHAR (50)

De wijzigings-ID is een tekenreeks met twee delen:

  • Start-tijdstempel van batchuitvoering in milliseconden sinds 1/1/1970 (tekenreeks van 10 cijfers).

  • Wijzigingsreeks van de replicatie-gateway (35 tekens).

hdr__operation VARCHAR (1)

Laatste bewerking van dit record.

  • D - verwijderd uit de Changes-partitie.

  • U - bijgewerkt vanuit de Changes-partitie.

  • I - ingevoegd vanuit de Changes-partitie.

  • L - ingevoegd door de taak voor volledige lading.

  • d - verwijderd uit vergelijken en toepassen.

  • u - bijgewerkt vanuit vergelijken en toepassen.

  • i - ingevoegd vanuit vergelijken en toepassen.

hdr__timestamp TIMESTAMP Tijdstempel in UTC.
hdr__key_hash BINARY (20) Hash van alle primaire sleutels van het record.
hdr__inserted_timestamp TIMESTAMP UTC-tijdstempel van het moment waarop de wijziging werd verwerkt door Qlik.

Asset_state-partitie

Veld Type Beschrijving
hdr__apply_change_identifier VARCHAR (50) De wijzigings-ID van de laatste wijziging die is toegepast op de Current-partitie.
hdr__copy_change_identifier VARCHAR (50) De wijzigings-ID van de laatste wijziging die is toegevoegd aan de Changes-partitie.

Reload-partitie

De kolommen die worden gebruikt door de Reload-partitie zijn identiek aan de Current-partitie.

Weergaven

Alle gemaakte weergaven worden in bijna realtime bijgewerkt. De volgende weergaven zijn beschikbaar om query's en rapportage te vereenvoudigen:

Huidig

De weergave Huidig weerspiegelt de meest recente status van de gegevens. Deze weergave vertegenwoordigt een replica van de brontabel, bijgewerkt in bijna realtime. Het voegt gegevens samen uit de Current- en Changes-partities.

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

Er worden geen koptekstkolommen toegevoegd aan de tabelstructuur.

Geschiedenis

Er wordt een weergave Geschiedenis gegenereerd in het gegevensassetschema voor elke geselecteerde brontabel wanneer Geschiedenis is ingeschakeld in de instellingen van de gegevenstaak. De weergave Geschiedenis voegt gegevens samen uit de Prior- en Changes-partities. Het biedt een volledige tijdlijn van wijzigingen, ideaal voor audit of historische analyse.

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

De volgende koptekstvelden worden toegevoegd aan de weergave Geschiedenis:

Veld Type Beschrijving
hdr__key_hash BINARY (20) Hash van alle primaire sleutels van het record.
hdr__from_timestamp TIMESTAMP Het tijdstempel van wanneer de wijziging plaatsvond in het bronsysteem. Dit weerspiegelt wanneer de gebruiker de wijziging oorspronkelijk heeft aangebracht.
hdr__to_timestamp TIMESTAMP Het tijdstempel van wanneer de wijziging werd teruggedraaid of bijgewerkt in het bronsysteem.
hdr__store VARCHAR (10)

Dit geeft aan waar het record zich bevindt:

  • CURRENT - als het record zich in de Current-partitie bevindt.

  • PRIOR - als het record zich in de Prior-partitie met historische gegevens bevindt.

hdr__operation STRING (1)

Laatste bewerking van dit record.

  • D - verwijderd uit de Changes-partitie.

  • U - bijgewerkt vanuit de Changes-partitie.

  • I - ingevoegd vanuit de Changes-partitie.

  • L - ingevoegd door de taak voor volledige lading.

  • d - verwijderd uit vergelijken en toepassen.

  • u - bijgewerkt vanuit vergelijken en toepassen.

  • i - ingevoegd vanuit vergelijken en toepassen.

hdr__deleted BIT Geeft aan of het record zacht is verwijderd (soft deleted), gebaseerd op of hdr__operation D of d is.
hdr__was_current_from_timestamp TIMESTAMP De tijd (UTC) waarop deze rij de Current-partitie binnenkwam. Dit is doorgaans wanneer de opslagtaak werd uitgevoerd en de wijziging werd toegepast.
hdr__was_current_to_timestamp TIMESTAMP De tijd (UTC) waarop de rij werd verwijderd uit de Current-tabel, bijvoorbeeld vanwege een nieuwere versie.

InformatieDe weergaven Huidig en Geschiedenis zijn afhankelijk van de Changes-partitie en zijn altijd in bijna realtime. Als u echter trage queryprestaties ervaart, kan dit te wijten zijn aan een groot aantal wijzigingen die nog niet zijn toegepast in de Current- of Prior-partities. Niet-samengevoegde delta's vereisen meer verwerking op het moment van de query, waardoor de toegang trager wordt.

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!