Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Datensatzarchitektur in einem Qlik Open Lakehouse

Wenn Sie Datensätze in einem Qlik Open Lakehouse generieren, werden Speichertabellen, Änderungstabellen und Ansichten automatisch von Qlik Talend Data Integration generiert. Sie können diese Ansichten abfragen, um auf aktuelle und historische Daten zuzugreifen, die im offenen Iceberg-Tabellenformat gespeichert sind.

Eine intuitive und geführte Benutzeroberfläche unterstützt Sie bei der Erstellung, Modellierung und Ausführung von Daten-Pipelines. Sie können automatisch Schemas für Operational Data Stores (ODS) und Historical Data Stores (HDS) ohne manuelle Codierung generieren.

Architektur für eine Qlik Open Lakehouse-Daten-Pipeline unter Verwendung von Qlik Data Gateway – Datenbewegung. Die Daten werden in S3 bereitgestellt und in einem Iceberg Open Lakehouse gespeichert. Optional können die Tabellen, wie unten gezeigt, in einem Data Warehouse gespiegelt werden.

Schemas

Artefakte werden in einem internen Schema und einem Datenaufgabenschema generiert.

  • Das interne Schema enthält eine physische Tabelle mit mehreren Partitionen.

  • Das Datenaufgabenschema enthält die Ansichten, die Sie für die Nutzung der Daten verwenden können.

    Wenn ein Schema mit mehr als einer Datenaufgabe verknüpft ist, muss jede Datenaufgabe ein eindeutiges Präfix für Tabellen und Ansichten verwenden. Sie können das Präfix in den Datenaufgabeneinstellungen festlegen.

Es werden nur interne Schemas für Benennungskonflikte geprüft. Bei anderen Schemas müssen Sie sicherstellen, dass keine Benennungskonflikte in den Tabellennamen bestehen. Die optimale Vorgehensweise ist die Benennung des internen Schemas mit dem gleichen Namen wie das Datenaufgabenschema, aber mit dem Namenszusatz _internal. Dadurch wird sichergestellt, dass jede Schema-Präfix-Kombination eindeutig ist.

InformationshinweisAlle Tabellen und Ansichten werden von Qlik Talend Data Integration verwaltet. Verändern Sie die Daten nicht mit anderen Tools.

Tabellen

Für jede Quelltabelle wird eine Tabelle im internen Schema mit dem Suffix _internal erstellt, wobei das folgende Format verwendet wird:

<INTERNAL_SCHEMA>.<TABLE_NAME>_internal

Diese Tabelle enthält fünf Partitionen, die jeweils einen bestimmten Zweck bei der Verarbeitung und Speicherung der Daten erfüllen. Jede Partition nutzt eine Teilmenge der Tabellenspalten entsprechend ihrer Rolle im Lebenszyklus der Daten.

InformationshinweisDie Tabellen des internen Schemas können ohne vorherige Ankündigung geändert werden. Sie sollten, wenn möglich, hauptsächlich Ansichten verwenden, um Daten zu nutzen.

Der interne Datensatz ist so strukturiert, dass eingehende Daten aus Ihrem Quellsystem effizient verwaltet werden können. Er unterstützt das Einlesen in Echtzeit und eine Verlaufsverfolgung. Der Datenfluss wird über mehrere spezialisierte Partitionen verwaltet, die im Folgenden beschrieben werden:

  • Partition „Changes“: Einlesen in Echtzeit

    Alle Änderungen aus dem Quellsystem – Einfügungen, Aktualisierungen und Löschungen – werden zunächst an die Partition „Changes“angehängt.

    • Die Partition fungiert als unbearbeitetes Änderungsprotokoll und liefert einen vollständigen Überblick über die Quellaktivität, bevor irgendwelche Umwandlungen stattfinden.

    • Jede Änderung ist mit einem Typ (I, U oder D) gekennzeichnet, der angibt, wie sie verarbeitet wird.

    • Ereignisse werden in der Quelle erfasst, sobald sie auftreten. Die Partition wird nahezu in Echtzeit aktualisiert.

    • Die Partition „Changes“ ist verfügbar, wenn die folgenden Einstellungen auf die Lake-Bereitstellungsdatenaufgabe angewendet wurden.

      • Auf der Registerkarte Allgemein ist die Aktualisierungsmethode auf CDC festgelegt.

      • Vollständiges Laden ist aktiviert.

  • Partition „Asset_state“: Verfolgen des Fortschritts

    Wenn Änderungen eingelesen werden, protokolliert die Partition „Asset_state“ zwei wichtige Zeitstempel:

    • Wann die Änderungen zuletzt an die Partition „Changes“ angehängt wurden.

    • Wann die Änderungen zuletzt in die Partition „Current“ übernommen wurden.

    Dies ermöglicht einen vollständigen Einblick in die Synchronisierungs-Pipeline und hilft bei der Überwachung oder Fehlerbehebung bei Verzögerungen.

  • Partition „Current“ (ODS): Neuestes Replikat der Quelle

    Änderungen aus der Partition „Changes“ werden regelmäßig in die Partition „Current“ übernommen, um eine aktuelle, für Abfragen optimierte Kopie der Quelldaten zu erhalten.

    • Eine Hintergrundaufgabe wird automatisch ausgeführt, um diese Aktualisierungen zu übernehmen. Dieser Vorgang basiert auf dem Volumen der kumulierten Änderungen und nicht auf einem festen Zeitplan.

    • Der anfängliche vollständige Ladevorgang wird direkt in die Partition „Current“ geschrieben.

    • Diese Partition spiegelt den aktuellen Zustand der Daten wider und ist für effiziente Abfragen konzipiert.

  • Partition „Prior“ (HDS): Verlaufsdaten

    Wenn ein Datensatz in der Partition „Current“ aktualisiert oder gelöscht wird, wird eine Kopie der vorherigen Version in die Partition „Prior“ geschrieben. 

    • Datensätze enthalten Metadaten, einschließlich des Änderungsverlaufs und des Datumsbereichs, in dem die Daten gültig sind.

    • Sich langsam ändernde Dimensionen des Typs 2 (SCD2) werden unterstützt.

    • Die Partition „Prior“ ist verfügbar, wenn die Option Verlaufsdatensätze und Änderungsdatensatzarchiv aufbewahren auf der Registerkarte Allgemein in den Einstellungen der Speicherdatenaufgabe aktiviert ist.

    • Wenn eine aktualisierte Version eines Datensatzes in die Partition „Current“ aufgenommen wird, wird der vorherige Datensatz zur Nachverfolgung in die Partition „Prior“ verschoben.

  • Partition „Reload“

    Die Partition „Reload“ dient als temporärer Bereitstellungsbereich bei manuellen oder geplanten vollständigen Ladevorgängen:

    • Neue Daten werden zuerst in die Partition „Reload“ geschrieben.

    • Regelmäßige Wartungsaufgaben löschen alle ausstehenden Änderungen, bevor sie pausiert werden.

    • Die Daten werden mit der Partition „Current“ verglichen, und nur die Unterschiede werden in die Partition „Current“ verschoben.

    • Die Partition „Reload“ wird gelöscht, wenn der Vorgang abgeschlossen ist.

    Dieser Prozess gewährleistet eine minimale Unterbrechung des Hauptdatensatzes während des vollständigen Ladevorgangs.

Partition „Current“

Feld Typ Beschreibung
hdr__key_hash VARBINARY (20) Hash aller primären Schlüssel des Datensatzes. Das Hash-Format ist SHA1. Spalten werden durch ein Rücktastenzeichen getrennt.
hdr__from_timestamp TIMESTAMP

Zeitstempel in UTC:

  • Für Daten, die dem vollständigen Ladevorgang entnommen sind, ist dies die Startuhrzeit des vollständigen Ladevorgangs.

  • Im Fall einer Änderung über die Partition „Changes“ ist es das Zeitstempelfeld des Datensatzes.

hdr__operation VARCHAR (1)

Neuester Vorgang dieses Datensatzes.

  • D: aus der Partition „Changes“ gelöscht.

  • U: über die Partition „Changes“ aktualisiert.

  • I: aus der Partition „Changes“ eingefügt.

  • L: aus der vollständigen Ladeaufgabe eingefügt.

  • d - aus Vergleichen und Anwenden gelöscht.

  • u - aus Vergleichen und Anwenden aktualisiert.

  • i - aus Vergleichen und Anwenden eingefügt.

hdr__inserted_timestamp TIMESTAMP UTC-Zeitstempel des ersten Zeitpunkts, zu dem der Schlüssel hinzugefügt wurde. Bei Verwendung des vollständigen Ladens ist dies die Startzeit des vollständigen Ladens.
hdr__modified_timestamp TIMESTAMP UTC-Zeitstempel, wann die letzte Aktualisierung vorgenommen wurde.

Partition „Prior“

Feld Typ Beschreibung
hdr__key_hash VARBINARY (20) Hash aller primären Schlüssel des Datensatzes.
hdr__from_timestamp TIMESTAMP Zeitstempel in UTC.
hdr__to_timestamp TIMESTAMP Zeitstempel in UTC.
hdr__operation STRING (1)

Neuester Vorgang dieses Datensatzes.

  • D: aus der Partition „Changes“ gelöscht.

  • U: über die Partition „Changes“ aktualisiert.

  • I: aus der Partition „Changes“ eingefügt.

  • L: aus der vollständigen Ladeaufgabe eingefügt.

  • d - aus Vergleichen und Anwenden gelöscht.

  • u - aus Vergleichen und Anwenden aktualisiert.

  • i - aus Vergleichen und Anwenden eingefügt.

hdr__was_current_from_timestamp TIMESTAMP Zeitstempel in UTC für den ersten Zeitpunkt, zu dem der Datensatz aktuell war.
hdr__was_current_to_timestamp TIMESTAMP Zeitstempel in UTC für den letzten Zeitpunkt, zu dem der Datensatz aktuell war.

Partition „Changes“

Feld Typ Beschreibung
hdr__change_identifier VARCHAR (50)

Die Änderungskennung ist eine Zeichenkette mit zwei Teilen:

  • Startzeitstempel der Stapelausführung in Millisekunden seit 1/1/1970 (String mit 10 Stellen).

  • Änderungsabfolge aus dem Replikations-Gateway (35 Zeichen).

hdr__operation VARCHAR (1)

Neuester Vorgang dieses Datensatzes.

  • D: aus der Partition „Changes“ gelöscht.

  • U: über die Partition „Changes“ aktualisiert.

  • I: aus der Partition „Changes“ eingefügt.

  • L: aus der vollständigen Ladeaufgabe eingefügt.

  • d - aus Vergleichen und Anwenden gelöscht.

  • u - aus Vergleichen und Anwenden aktualisiert.

  • i - aus Vergleichen und Anwenden eingefügt.

hdr__timestamp TIMESTAMP Zeitstempel in UTC.
hdr__key_hash BINARY (20) Hash aller primären Schlüssel des Datensatzes.
hdr__inserted_timestamp TIMESTAMP UTC-Zeitstempel des Zeitpunkts, zu dem die Änderung von Qlik verarbeitet wurde.

Partition „Asset_state“

Feld Typ Beschreibung
hdr__apply_change_identifier VARCHAR (50) Der Änderungsbezeichner der letzten Änderung, die auf die Partition „Current“ angewendet wurde.
hdr__copy_change_identifier VARCHAR (50) Der Änderungsbezeichner der letzten Änderung, die an die Partition „Changes“ angehängt wurde.

Partition „Reload“

Die von der Partition „Reload“ verwendeten Spalten sind identisch mit denen der Partition „Current“.

Aufrufe

Alle erstellten Ansichten werden nahezu in Echtzeit aktualisiert. Die folgenden Ansichten sind verfügbar, um Abfragen und Berichte zu vereinfachen:

Aktuell

Die Ansicht „Aktuell“ spiegelt den letzten Stand der Daten wider. Diese Ansicht stellt ein Replikat der Quelltabelle dar, das nahezu in Echtzeit aktualisiert wird. Sie führt die Daten aus den Partitionen „Current“ und „Changes“ zusammen.

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

Es werden keine Kopfzeilenspalten zur Tabellenstruktur hinzugefügt.

Verlauf

Eine Ansicht „Verlauf“ wird im Datenobjektschema für jede ausgewählte Quelltabelle generiert, wenn Verlauf in den Datenaufgabeneinstellungen aktiviert ist. Die Ansicht „Verlauf“ führt die Daten aus den Partitionen „Prior“ und „Changes“ zusammen. Sie bietet einen vollständigen zeitlichen Verlauf der Änderungen, ideal für Audits oder Verlaufsanalysen.

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

Die folgenden Kopfzeilenfelder werden zur Ansicht „Verlauf“ hinzugefügt.

Feld Typ Beschreibung
hdr__key_hash BINARY (20) Hash aller primären Schlüssel des Datensatzes.
hdr__from_timestamp TIMESTAMP Der Zeitstempel, an dem die Änderung im Quellsystem vorgenommen wurde. Dies zeigt an, wann der Benutzer die Änderung ursprünglich vorgenommen hat.
hdr__to_timestamp TIMESTAMP Der Zeitstempel, an dem die Änderung im Quellsystem rückgängig gemacht oder aktualisiert wurde.
hdr__store VARCHAR (10)

Hier wird angegeben, wo sich der Datensatz befindet:

  • CURRENT: falls sich der Datensatz in der Partition „Current“ befindet.

  • PRIOR: falls sich der Datensatz in der Partition „Prior“ mit Verlaufsdaten befindet.

hdr__operation STRING (1)

Neuester Vorgang dieses Datensatzes.

  • D: aus der Partition „Changes“ gelöscht.

  • U: über die Partition „Changes“ aktualisiert.

  • I: aus der Partition „Changes“ eingefügt.

  • L: aus der vollständigen Ladeaufgabe eingefügt.

  • d - aus Vergleichen und Anwenden gelöscht.

  • u - aus Vergleichen und Anwenden aktualisiert.

  • i - aus Vergleichen und Anwenden eingefügt.

hdr__deleted BIT Hier wird auf der Grundlage, ob hdr__operation auf D oder d steht, angegeben, ob der Datensatz vorläufig gelöscht wird.
hdr__was _current_from_timestamp TIMESTAMP Die Uhrzeit (UTC), zu der diese Zeile in die Partition „Current“ aufgenommen wurde. Dies ist in der Regel der Zeitpunkt, an dem der Speicherauftrag ausgeführt und die Änderung übernommen wurde.
hdr__was _current_to_timestamp TIMESTAMP Die Uhrzeit (UTC), zu der die Zeile aus der Tabelle „Aktuell“ entfernt wurde, z. B. aufgrund einer neueren Version.

InformationshinweisDie Ansichten „Aktuell“ und „Verlauf“ basieren auf der Partition „Changes“ und sind immer nahezu in Echtzeit. Wenn Sie jedoch eine langsame Abfrageleistung feststellen, kann dies auf eine große Anzahl von Änderungen zurückzuführen sein, die noch nicht in die Partition „Current“ oder „Prior“ übernommen wurden. Nicht zusammengeführte Deltas erfordern mehr Verarbeitung zur Abfragezeit, was den Zugriff verlangsamt.

Hat diese Seite Ihnen geholfen?

Wenn Sie ein Problem mit dieser Seite oder ihrem Inhalt feststellen, sei es ein Tippfehler, ein ausgelassener Schritt oder ein technischer Fehler, informieren Sie uns bitte!