Architettura del set di dati per origini di streaming in un Qlik Open Lakehouse
Last updated: 25/08/2026Le sorgenti di streaming hanno una propria architettura in Qlik Open Lakehouse in quanto non richiedono il Data Movement gateway per caricare i dati nel bucket di trasferimento, ma sono alimentate dal cluster lakehouse.
Quando si acquisiscono dati da file che includono un modello di dati all'interno del nome del file, ciò consente al cluster lakehouse di eseguire operazioni di elenco mirate in S3, il che accelera notevolmente il tempo di lettura dell'elenco dei file. Inoltre, Qlik Open Lakehouse può prevedere i file in arrivo in base al modello di data. L'attività di trasferimento in streaming non deve elencare l'intero bucket ogni volta, ma può invece richiedere i file da S3 all'interno di un intervallo di date specifico. Avere un elenco di file più piccolo porta a migliori prestazioni. L'impostazione opzionale Elimina dopo il caricamento può essere utilizzata per mantenere un numero ridotto di file. Non viene eseguito alcun caricamento completo, i primi record sono considerati modifiche inserite.
In un Qlik Open Lakehouse, l'attività di trasformazione in flusso sostituisce l'attività di archiviazione. Questa attività viene utilizzata per trasformare e archiviare i dati acquisiti come tabelle Iceberg. Un'attività di trasformazione di streaming può essere aggiunta solo dopo un'attività di trasferimento di streaming. Il task di trasformazione in streaming supporta due modalità per l'aggiornamento dei record:
- Solo aggiunta: Aggiunge nuovi record senza modificare i dati esistenti e i vincoli chiave non vengono applicati se arrivano record duplicati.
-
Applica modifiche (Unisci): Aggiorna i record esistenti e ne inserisce di nuovi in base ai campi chiave. Questa modalità offre la possibilità di utilizzare un'eliminazione soft o di conservare i dati cronologici (Tipo 2).
L'attività di trasformazione in flusso è un'attività basata su destinazione, che esegue il mapping tra origine e destinazione e include funzionalità di evoluzione dello schema. Offre funzionalità di trasformazione estese, che includono l'annullamento degli annidamenti di strutture annidate e l'appiattimento degli array. Per maggiori informazioni sulle funzioni che puoi utilizzare nel task Streaming Transform, consulta Funzioni di trasformazione.
Quando si acquisiscono dati da una sorgente di streaming, è possibile configurare il partizionamento Iceberg, la gestione della conservazione, le colonne di ordinamento, la scadenza degli snapshot per controllare i costi di archiviazione e ottimizzare le prestazioni delle query.
Architettura per una pipeline di dati Qlik Open Lakehouse in streaming in modalità solo aggiunta

Architettura per una pipeline di dati Qlik Open Lakehouse in streaming in modalità Merge

Tabelle di trasferimento
Le seguenti colonne di intestazione vengono aggiunte alle tabelle di trasferimento. Queste colonne esistono sempre nei dati di trasferimento, ma non sono incluse nell'attività di trasformazione in flusso a valle per impostazione predefinita. Puoi aggiungerli all'attività di Trasformazione in Streaming usando Aggiungi colonna da origine, oppure farvi riferimento nel generatore di espressioni quando aggiungi o modifichi una colonna.
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__kafka_partition | Lungo | Partizione Kafka |
| hdr__kafka_topic | Stringa | Topic Kafka |
| hdr__kafka_offset | Lungo | Valore corrente nella partizione |
| hdr__kafka_key | Stringa | Chiave codificata Base64. Impostare su stringa NULL se non disponibile. |
| hdr__kafka_headers | Stringa |
JSON con tutte le intestazioni dei messaggi. Imposta su stringa NULL se non disponibile. |
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__kinesis_stream | Stringa | Amazon Kinesis flusso |
| hdr__kinesis_shard | Stringa | Amazon Kinesis shard |
| hdr__kinesis_offset | Stringa | Amazon Kinesis offset |
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__file_name | Stringa | Nome file |
| hdr__file_size | Lungo | Dimensione file in byte. |
Schemi
Gli artefatti vengono generati in uno schema interno e nello schema di un'attività dati.
-
Lo schema interno contiene una tabella fisica con più partizioni.
-
Lo schema dell'attività dati contiene le visualizzazioni che puoi utilizzare per utilizzare i dati.
Quando uno schema viene associato a più di un'attività dati, ogni attività dati deve utilizzare un prefisso unico per le tabelle e le visualizzazioni. È possibile impostare il prefisso nelle impostazioni delle attività dati.
Vengono controllati solo gli schemi interni per verificare la presenza di conflitti di denominazione. Per gli altri schemi, è necessario assicurarsi che nei nomi della tabella non vi siano conflitti di denominazione. La procedura consigliata è denominare lo schema interno con lo stesso nome dello schema dell'attività dati più il suffisso _internal. In questo modo, è possibile assicurarsi che ogni schema e combinazione di prefissi siano univoci.
Tabelle
Per ogni tabella di origine, viene creata una tabella nello schema interno con il suffisso _internal, utilizzando il formato:
<INTERNAL_SCHEMA>.<TABLE_NAME>_internal
Questa tabella contiene cinque partizioni in modalità Applica modifiche (Unisci), ognuna delle quali ha uno scopo distinto nel modo in cui i dati vengono elaborati e archiviati. Ogni partizione utilizza un sottoinsieme delle colonne della tabella in base al suo ruolo nel ciclo di vita dei dati. In Solo aggiunta modalità la tabella non ha partizioni e si comporta come la Partizione corrente (ODS).
Il set di dati interni è strutturato in modo da gestire in modo efficiente i dati in arrivo dal sistema di origine, supportando l'ingestione in tempo reale e il tracciamento cronologico. Il flusso di dati viene gestito attraverso diverse partizioni specializzate, ciascuna descritta di seguito:
-
Partizione delle modifiche: ingestione in tempo reale
Tutte le modifiche dal sistema di origine, come inserimenti, aggiornamenti ed eliminazioni, vengono prima aggiunte alla partizione Changes.
-
Fungendo da registro non elaborato delle modifiche, la partizione fornisce un feed completo dell'attività di origine prima che avvengano le trasformazioni.
-
Ogni modifica è contrassegnata da un tipo (I, U o D), che indica come viene elaborata.
-
Gli eventi vengono acquisiti dalla sorgente nel momento in cui si verificano. La partizione viene aggiornata praticamente in tempo reale.
-
La partizione Changes è disponibile quando le seguenti impostazioni sono applicate nell'attività Dati di trasferimento su data lake.
-
Nella scheda Generali, il Metodo di aggiornamento è impostato su CDC.
-
Il caricamento completo è abilitato.
-
-
-
Asset_state partizione - Monitoraggio dell'avanzamento
Quando le modifiche vengono acquisite, la partizione Asset_state registra due timestamp chiave:
-
Quando le modifiche sono state aggiunte per l'ultima volta alla partizione Changes.
-
Quando le modifiche sono state applicate per l'ultima volta alla partizione Current.
Questo consente di disporre di una visibilità completa della pipeline di sincronizzazione e aiuta a monitorare o a risolvere i ritardi.
-
-
partizione corrente (ODS) – Ultima replica della sorgente
Le modifiche dalla partizione Changes vengono applicate periodicamente alla partizione Current per mantenere una copia aggiornata e ottimizzata per le query dei dati di origine.
-
Un'attività in background viene eseguita automaticamente per applicare questi aggiornamenti. Questa si basa sul volume delle modifiche accumulate, piuttosto che su un programma fisso.
-
Il caricamento completo iniziale viene scritto direttamente nella partizione Current.
-
Questa partizione riflette lo stato attuale dei dati ed è progettata per eseguire query efficienti.
-
-
Precedente partizione (HDS) – Dati storici
Quando un record viene aggiornato o eliminato nella partizione Current , una copia della versione precedente viene scritta nella partizione Prior.
-
I record contengono i metadati, tra cui la cronologia delle modifiche e l'intervallo di date in cui i dati sono validi.
-
Sono supportate le dimensioni di Tipo 2 con modifica lenta.
-
La partizione Prior è disponibile quando l'opzione Mantieni i registri cronologici e l'archivio dei record delle modifiche è abilitata nella scheda Generali delle impostazioni dell'attività dati di archiviazione.
-
Quando una versione aggiornata di un record viene aggiunta alla partizione Current, il record precedente viene spostato nella partizione Prior per la tracciabilità storica.
-
-
Partizione Ricaricamento
La partizione Reload funge da area di sosta temporanea durante i ricaricamenti completi manuali o programmati:
-
I nuovi dati vengono prima scritti nella partizione Reload.
-
Le attività di manutenzione regolari cancellano tutte le modifiche in attesa prima che vengano messe in pausa.
-
I dati vengono confrontati con la partizioneCurrent e solo le differenze vengono spostate nella partizione Current.
-
La partizione Reload viene rimossa al termine dell'operazione.
Questo processo assicura un'interruzione minima del set di dati principale durante le operazioni di ricaricamento completo.
-
Current partizione
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__key_hash | VARBINARY (20) | Hash di tutte le chiavi primarie dei record. Il formato Hash è SHA1. Le colonne sono separate da un carattere backspace. |
| hdr__from_timestamp | TIMESTAMP |
Data e ora in UTC:
|
| hdr__operation | VARCHAR (1) |
L'ultima operazione del record.
|
| hdr__inserted_timestamp | TIMESTAMP | Data e ora UTC della prima volta in cui è stata aggiunta la chiave. Quando si usa il caricamento completo, l'ora d'inizio del caricamento completo. |
| hdr__modified_timestamp | TIMESTAMP | Data e ora in UTC dell'ultimo aggiornamento applicato. |
Prior partizione
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__key_hash | VARBINARY (20) | Hash di tutte le chiavi primarie dei record. |
| hdr__from_timestamp | TIMESTAMP | Data e ora in UTC. |
| hdr__to_timestamp | TIMESTAMP | Data e ora in UTC. |
| hdr__operation | STRINGA (1) |
L'ultima operazione del record.
|
| hdr__was_current_from_timestamp | TIMESTAMP | Il timestamp in UTC per il primo record temporale era quello corrente. |
| hdr__was_current_to_timestamp | TIMESTAMP | Il timestamp in UTC per l'ultimo record temporale era quello corrente. |
Changes partizione
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__change_identifier | VARCHAR (50) |
L'identificatore di modifica è una stringa con due parti:
|
| hdr__operation | VARCHAR (1) |
L'ultima operazione del record.
|
| hdr__timestamp | TIMESTAMP | Data e ora in UTC. |
| hdr__key_hash | BINARIO (20) | Hash di tutte le chiavi primarie dei record. |
| hdr__inserted_timestamp | TIMESTAMP | Timestamp in UTC dell'ora in cui la modifica è stata elaborata da Qlik. |
Asset_state partizione
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__apply_change_identifier | VARCHAR (50) | L'identificatore delle modifiche dell'ultima modifica applicata alla partizione Current. |
| hdr__copy_change_identifier | VARCHAR (50) | L'identificatore delle modifiche dell'ultima modifica aggiunta alla partizione Changes. |
Reload partizione
Le colonne utilizzate dalla partizione Reload sono identiche a quelle della partizione Current.
Viste
Tutte le viste create vengono aggiornate praticamente in tempo reale. Le seguenti viste sono disponibili per semplificare l'esecuzione di query e la creazione di report:
Corrente
La vista Corrente riflette lo stato più recente dei dati. Questa vista rappresenta una replica della tabella di origine, aggiornata praticamente in tempo reale. Unisce i dati delle partizioni Current e Changes.
Nome: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>
Alla struttura della tabella non viene aggiunta alcuna colonna di intestazione.
Cronologia
Una visualizzazione cronologia viene generata nello schema asset di dati per ogni tabella di origine selezionata se Cronologia è abilitata nelle impostazioni dell'attività dati. La vista Cronologia unisce i dati dalle partizioni Prior e Changes. Fornisce una linea temporale completa delle modifiche, ideale per l'audit o l'analisi storica.
Nome: <EXTERNAL_SCHEMA>.[<PREFIX>]<TABLE_NAME>_<Suffix for history views>
I seguenti campi di intestazione vengono aggiunti alla vista Cronologia:
| Campo | Tipo | Descrizione |
|---|---|---|
| hdr__key_hash | BINARIO (20) | Hash di tutte le chiavi primarie dei record. |
| hdr__from_timestamp | TIMESTAMP | Il timestamp in cui si è verificata la modifica nel sistema di origine. Questo riflette il momento in cui l'utente ha apportato la modifica. |
| hdr__to_timestamp | TIMESTAMP | Il timestamp in cui la modifica è stata annullata o aggiornata nel sistema di origine. |
| hdr__store | VARCHAR (10) |
Questi campi indicano dove risiede il record.
|
| hdr__operation | STRINGA (1) |
L'ultima operazione del record.
|
| hdr__deleted | BIT | Indica se il record è stato eliminato temporaneamente, a seconda che hdr__operation sia D o d. |
| hdr__was_current_from_timestamp | TIMESTAMP | L'ora (UTC) in cui la riga è stata aggiunta alla partizione Current. Ciò avviene tipicamente quando è stato eseguito il processo di archiviazione e la modifica è stata applicata. |
| hdr__was_current_to_timestamp | TIMESTAMP | L'ora (UTC) in cui la riga è stata rimossa dalla tabella Current, ad esempio a causa di una versione più recente. |
Visualizzazione delle colonne di intestazione nelle visualizzazioni
È possibile controllare se mostrare o nascondere le colonne dell'intestazione. Le opzioni variano a seconda del tipo di attività.
Attività di trasferimento in streaming
Per mostrare le colonne di intestazione, attiva Mostra colonne di intestazione a destra della casella di ricerca.
Attività di trasformazione in streaming
Un elenco a discesa con le seguenti opzioni è disponibile a destra della casella di ricerca.
-
Nascondi colonne di intestazione: L'impostazione predefinita.
-
Mostra colonne di intestazione
-
Standard: Selezionare per mostrare le colonne di intestazione per le visualizzazioni standard.
-
Cronologia: Selezionare per visualizzare le colonne di intestazione per le viste cronologia. Si noti che questa opzione sarà disponibile solo se Crea un archivio dati cronologico (Tipo 2) è abilitato nelle impostazioni dell'attività o del set di dati.
-
Per una descrizione delle colonne di intestazione disponibili, vedere Tabelle di trasferimento e Viste.