Zu Hauptinhalt springen Zu ergänzendem Inhalt springen

Verbinden mit Daten-Streams

Die folgenden Streaming-Dienste werden in Qlik Open Lakehouse-Projekten unterstützt. Ereignisdaten werden kontinuierlich erfasst, um eine Verfügbarkeit nahezu in Echtzeit für nachgelagerte Datenintegration, Analysen und KI zu gewährleisten. Dadurch können Pipelines mit geringer Latenz die aktuellste operative Aktivität widerspiegeln.

Streaming-Dienste wie Apache Kafka und Amazon Kinesis bieten dauerhafte, hochdurchsatzfähige Pipelines zur Erfassung operativer Ereignisse, sobald diese auftreten. Im Gegensatz zu dateibasierten Quellen, die auf Batcherfassung basieren, liefern Streaming-Quellen Daten kontinuierlich, sobald Ereignisse eintreten, was eine Verarbeitung nahezu in Echtzeit ermöglicht, ohne auf die Generierung oder Planung von Dateien warten zu müssen. Producer veröffentlichen strukturierte oder semi-strukturierte Nachrichten, die ihr Schema beibehalten und Partitionierung unterstützen. Alle Aktualisierungen und Löschungen für denselben Datensatz müssen denselben Partitionsschlüssel verwenden. Kafka und Kinesis garantieren die Sortierung nur innerhalb einer einzelnen Partition oder eines Shards, nicht über das gesamte Thema oder den gesamten Stream hinweg. Daher stellt die Verwendung eines konsistenten Partitionsschlüssels sicher, dass Änderungen für einen bestimmten Datensatz in der richtigen Reihenfolge verarbeitet werden. Qlik unterstützt auch Amazon S3 als Streaming-Quelle für die kontinuierliche Erfassung von Ereignisdaten.

Streaming-Erfassung im Vergleich zur Batcherfassung

Der Unterschied zwischen Streaming- und Batch-Datenquellen ist Folgender:

  • Bei beiden Quellen werden Ereignisse jede Minute effizient erfasst, was eine Verarbeitung mit geringer Latenz und Analysen nahezu in Echtzeit unterstützt.

  • Bei Nicht-Streaming-Quellen erfolgt zuerst ein vollständiges Laden der vorhandenen Daten und anschließend werden Änderungen erfasst. Sie können die Daten des vollständigen Ladevorgangs auch aus der Quelle neu laden.

  • Bei Streaming-Quellen gibt es keine klare Unterscheidung zwischen anfänglichem Laden und späteren Ereignissen. Qlik kann die Beibehaltung verwalten und unterstützt auch Partitionen.

InformationshinweisStreaming-Aufgaben werden basierend auf der genutzten Rechenleistung (vCores x Laufzeit) und nicht auf dem Datenvolumen abgerechnet.

In einem Qlik Open Lakehouse-Projekt können Streaming-Quellen nur mit der Streaming-Bereitstellungsaufgabe und der Streaming-Umwandlungsaufgabe verwendet werden.

  • Streaming-Daten werden mithilfe einer Streaming-Bereitstellungsaufgabe erfasst, und anstatt diskrete Dateien zu verarbeiten, liest die Streaming-Bereitstellungsaufgabe Ereignisse, sobald diese eintreffen, stellt die Daten in Amazon S3 bereit und speichert Ereignisse als Avro-Dateien. Dieser Ansatz behält die Schemaentwicklung bei, unterstützt komplexe Datentypen wie Strukturen und bietet effizienten Speicher mit optimierter Abfrageleistung, während ein kontinuierliches Erfassungsmodell beibehalten wird.

  • Wenn Sie Daten aus einer Streaming-Quelle eingliedern, wird automatisch eine Streaming-Umwandlungsaufgabe für jeden Datensatz hinzugefügt, der im Iceberg-Format gespeichert wird. Optional kann die Streaming-Umwandlungsaufgabe verwendet werden, um Strukturen zu standardisieren, Ereignis-Nutzlasten zu erweitern oder Daten an nachgelagerte Nutzungsmodelle anzupassen.

  • Eine Spiegel-Datenaufgabe ermöglicht es, Datensätze von Streaming-Quellen in Cloud Data Warehouses zu spiegeln, sodass nachgelagerte Systeme Streaming-Ereignisse nutzen können, ohne Daten zu duplizieren. Weitere Informationen finden Sie unter Spiegeln von Daten in einem Cloud Data Warehouse.

Datentypzuordnungen

Das anfängliche Quellschema basiert auf einer Datenstichprobe, die vor der PREPARE-Phase beim Erstellen Ihres Pipeline-Projekts entnommen wurde, und die Schemaentwicklung wird zur Lesezeit verarbeitet. Spiegel-Aufgaben und andere nachgelagerte Aufgaben, die STRUCT und ARRAY nicht unterstützen, verwenden einen JSON-Typ. Daten können mithilfe von SQL geparst werden.

Die folgenden Datentypzuordnungen gelten für alle unterstützten Datenquellen, variieren jedoch je nach Quelldateityp, und Folgendes sollte beachtet werden:

  • Datentypen werden aus einer Stichprobe der einzugliedernden Daten abgeleitet. Wenn ein Feld in der Stichprobe beispielsweise nur Ganzzahlwerte enthält, wird es in den Streaming-Bereitstellungs- und -Umwandlungsaufgaben als INT8 erstellt. Wenn nachfolgende Daten Gleitkommawerte mit doppelter Präzision enthalten, enthalten die Bereitstellungsdateien diese Werte; wenn jedoch in der Streaming-Umwandlungsaufgabe die Einstellung Feld-Datentyp ändern auf Ignorieren festgelegt ist, bleibt die Spalte INT8 und die Gleitkommawerte werden abgeschnitten. Um unbeabsichtigte Kürzungen zu vermeiden, stellen Sie sicher, dass die Beispieldaten vor der Integration den gesamten Bereich der erwarteten Werte umfassen, oder konfigurieren Sie Feld-Datentyp ändern in frühen Phasen als Aufgabe anhalten und passen Sie die Datentypen bei Bedarf an.

  • Wenn ein Feld in der Quelle zu einer Struktur hinzugefügt wird, wird es immer zum Bereitstellungsziel hinzugefügt. Für die Streaming-Umwandlung wird das Verhalten gemäß der in Einstellungen für Streaming-Umwandlungsaufgaben > Schemaentwicklung > Felder zu Struktur hinzufügen (Auf Ziel anwenden, Ignorieren, Aufgabe anhalten) gewählten Option angewendet.

  • Wenn ein Feld in einem bestimmten Datensatz fehlt oder ein Array leer ist, werden sie als null behandelt.

  • Wenn ein Datensatz durch ein Array abgeflacht wird und ein Datensatz eintrifft, bei dem dieses Array leer oder null ist, erstellt das System eine Zeile und das abgeflachte Feld ist null. Es wird nicht automatisch ausgeschlossen. Wenn Sie diese Zeilen ausschließen möchten, fügen Sie manuell einen Filter hinzu, zum Beispiel array_element IS NOT NULL.

  • Die in der Benutzeroberfläche angezeigten Datentypen spiegeln die ausgewählte Datensatzgranularität wider. Bei abgeflachten Arrays wird der Datentyp des individuellen Elements angezeigt, nicht die Array-Struktur selbst.

  • Ein neues Attribut kann nicht innerhalb einer Struktur in einem verschachtelten JSON-Feld hinzugefügt werden, sondern nur auf der Root-Ebene.

  • In Stream-Umwandlungsaufgaben wird die Abflachung nur für eine einzelne Ebene eines Arrays unterstützt. Wenn die Abflachung auf ein Array mit mehreren Ebenen angewendet wird, zum Beispiel ARRAY<ARRAY<STRUCT>>, wird nur das äußere Array abgeflacht, was zu ARRAY<STRUCT> führt und nicht zu einer vollständig abgeflachten STRUCT. Zusätzlich erlaubt die aktuelle Benutzeroberfläche die Konfiguration einer Abflachung nur auf Spaltenebene. Daher wird bei Auswahl eines Arrays mit mehreren Ebenen die Abflachung implizit nur auf die erste Array-Ebene angewendet.

JSON

In JSON-Dateien bestimmt der numerische Wert in der Quelle den Zieldatentyp:

  • INT8 wird für Ganzzahlwrte verwendet, die in den unterstützten Ganzzahlbereich passen und keine Bruchkomponente enthalten.

  • REAL8 (DOUBLE) wird verwendet, wenn der Wert eine Bruchkomponente (Gleitkommazahl) enthält.

  • STRING wird verwendet, wenn der numerische Wert den maximal unterstützten Ganzzahlbereich überschreitet.

Datentypen werden wie folgt zugeordnet:

Quelldatentypen Qlik Talend Data Integration-Datentypen
STRING STRING
NUMBER INT8
NUMBER REAL8
NUMBER STRING
BOOLEAN BOOLEAN
ARRAY ARRAY
OBJECT STRUCT

CSV, TSV, REGEX, und SPLIT

Standardmäßig werden alle Quelldatentypen als Zeichenfolge erfasst. Verwenden Sie die Option Typen automatisch ableiten, um Quell- und Zieltypen wie folgt zuzuordnen:

Quelldatentypen Qlik-Datentypen
NUMERIC INT8/REAL8
True/TRUE/true/False/FALSE/false BOOLEAN
TIMESTAMP Zeitstempel im Format yyyy-MM-dd HH:mm:ss oder yyyy-MM-ddTHH:mm:ssz werden in einen datetime-Typ geparst. Wenn eine Zeitzone enthalten ist, wird der Wert als Zeichenfolge geparst.

Parquet

Parquet-Dateien unterstützen physische und logische Datentypen. Physische Datentypen definieren, wie Werte auf dem Datenträger gespeichert werden, wie z. B. INT32, DOUBLE oder BYTE_ARRAY. Logische Datentypen bieten eine semantische Bedeutung zusätzlich zur physischen Darstellung, zum Beispiel, indem sie identifizieren, ob ein Ganzzahlwert ein Datum darstellt. Wenn ein logischer Typ an eine Parquet-Spalte angehängt ist und in Qlik Open Lakehouse (wie unten aufgeführt) unterstützt wird, verwendet die Streaming-Bereitstellungsaufgabe den logischen Typ bei der Definition des Zielschemas anstelle des zugrunde liegenden physischen Typs. Dies stellt sicher, dass Daten korrekt interpretiert werden und beabsichtigte Semantik wie Präzision, Skalierung und zeitliche Bedeutung erhalten bleiben. Dies führt zu genaueren Schemas, wenn Daten in nachgelagerte Formate geschrieben werden.

Aus Parquet-Dateien bezogene Daten werden wie folgt zugeordnet:

Quelldatentypen Logische Typen Qlik Talend Data Integration-Datentypen
BOOLEAN   BOOLEAN
INT32   INT8
INT64   INT8
INT96   DATETIME
FLOAT   REAL8
DOUBLE   REAL8
BYTE_ARRAY   STRING (als Base64 codiert)
FIXED_LEN_BYTE_ARRAY   STRING (als Base64 codiert)
BYTE_ARRAY STRING STRING
BYTE_ARRAY ENUM STRING
INT32 DECIMAL INT8
INT64 DECIMAL INT8
FIXED_LEN_BYTE_ARRAY DECIMAL INT8/REAL8 (als Base64 codiert)
BYTE_ARRAY DECIMAL INT8/REAL8 (als Base64 codiert)
INT32 DATE DATE
INT32 TIME(MILLIS,true) INT8
INT64 TIME(MICROS,true) TIME
INT64 TIMESTAMP(MICROS,true) DATETIME
INT64 TIMESTAMP(MILLIS,true) DATETIME
NESTED TYPES   STRUCT
LIST   ARRAY
MAP   ARRAY<STRUCT>. Array von Strukturen, die Schlüssel-Wert-Paare darstellen.

Avro

Die folgenden Zuordnungen gelten für Avro-Dateien mit Schemaregistrierung.

Quelldatentypen Logische Typen Qlik Talend Data Integration-Datentypen
BOOLEAN   BOOLEAN
INT   INT8
LONG   INT8
FLOAT   REAL8
DOUBLE   REAL8
BYTES   STRING
STRING   STRING
RECORD   STRUCT
ENUM   STRING
ARRAY   ARRAY
MAP   ARRAY<STRUCT>
UNION    
FIXED   STRING
BYTES DECIMAL DECIMAL
FIXED DECIMAL DECIMAL
INT DATE DATE
INT TIME-MILLIS INT8
INT TIME_MICROS TIME
LONG TIMESTAMP-MILLIS DATETIME
LONG TIMESTAMP-MICROS DATETIME

ORC

Die folgenden Zuordnungen gelten für ORC-Dateien.

Quelldatentypen Qlik Talend Data Integration-Datentypen
BOOLEAN BOOLEAN
BYTE INT8
SHORT INT8
INT INT8
LONG INT8
DATE DATE
FLOAT REAL8
DOUBLE REAL8
TIMESTAMP DATETIME
BINARY STRING
DECIMAL REAL8
STRING STRING
VARCHAR STRING
CHAR STRING
LIST ARRAY
MAP ARRAY<STRUCT>. Array von Strukturen, die Schlüssel-Wert-Paare darstellen.
STRUCT STRUCT
UNION  

Beschränkungen

Die folgenden Einschränkungen gelten für alle Datenquellen:

  • Wenn Ihre Dateien unterschiedliche Typen aufweisen, was vorkommen kann, wenn sie aus mehreren Quellen oder Versionen stammen, berücksichtigt die Umwandlungsaufgabe, die mit einer einzelnen Beispieldatei erstellt wurde (zum Beispiel während der Eingliederung), diese Unterschiede nicht automatisch.

  • Wenn Sie die Datentypen in der Bereitstellungsaufgabe ändern, zum Beispiel weil Sie die Daten hashen müssen, stellen Sie sicher, dass die Umwandlungsdatentypen den neuen Datentypen entsprechen.

Unterstützte Quellen

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!