Dati in streaming | Guida di Qlik Cloud
Vai al contenuto principale Passa a contenuto complementare

Dati in streaming

Il processo di onboarding trasferisce i dati dalla sorgente e li archivia in tabelle Iceberg. Le modifiche dalle sorgenti dati in streaming vengono applicate continuamente alle tabelle di archiviazione quasi in tempo reale.

Onboarding dei dati

L'onboarding dei dati avviene all'interno di un progetto di pipeline e i set di dati vengono archiviati nella posizione S3 definita nelle impostazioni del progetto.

  1. Nel progetto, fare clic su Crea e quindi su Onboarding dei dati.

  2. Aggiungere un Nome attività e una Descrizione opzionale per l'onboarding.

    Fare clic su Avanti.

  3. Selezionare la connessione di origine.

    È possibile selezionare una connessione di origine in streaming esistente o creare una nuova connessione all'origine.

    Per ulteriori informazioni, vedere Connessione ai flussi di dati

    Fare clic su Avanti e seguire le istruzioni di seguito per la propria sorgente dati.

Selezione dei dati

Apache Kafka

L'elenco visualizza gli argomenti Kafka disponibili dal cluster definito nella connessione di origine.

Quando si selezionano gli argomenti, è possibile selezionare set di dati specifici. È inoltre possibile utilizzare regole di selezione per includere o escludere gruppi di set di dati:

  • Utilizzare % come carattere jolly per definire criteri di selezione per i set di dati.

Se gli argomenti vengono selezionati utilizzando regole di selezione, è possibile scegliere se caricare tutti i set di dati nella stessa tabella di destinazione o creare una tabella di destinazione separata per ogni argomento di origine:

  • Per impostazione predefinita, il nome della tabella Iceberg di destinazione deriva dal nome dell'argomento, formattato per rispettare le convenzioni di denominazione, ad esempio, lettere minuscole, spazi rimossi, trattini sostituiti con trattini bassi. In Definisci nome set di dati di destinazione, è possibile modificare il nome della tabella di destinazione

  • Quando si utilizzano regole di selezione per caricare più argomenti in una singola tabella, è necessario fornire il nome di destinazione.

  • Quando si utilizzano regole di selezione e i dati vengono caricati in tabelle separate (un set di dati per argomento), i nomi di destinazione predefiniti sono i nomi degli argomenti. In questa fase, non è possibile modificare i nomi nella procedura guidata, ma è possibile farlo in seguito nell'attività di trasferimento.

  • Se una regola è configurata per selezionare gli argomenti per l'inserimento, anche i nuovi argomenti che soddisfano i criteri della regola vengono trasferiti se l'opzione Nuovo argomento  > Aggiungi alla destinazione in evoluzione dello schema nelle impostazioni dell'attività di trasferimento è selezionata.

Selezionare uno o più set di dati, oppure utilizzare una regola di selezione, e fare clic su Aggiungi. Fare clic su Avanti.

Amazon Kinesis

L'elenco visualizza i flussi Kinesis disponibili definiti nella connessione di origine.

Selezionare uno o più set di dati e fare clic su Aggiungi. È possibile visualizzare i set di dati aggiunti in Flussi selezionati. Fare clic su Avanti.

Amazon S3

Il browser delle directory visualizza un elenco di tutte le directory situate nel bucket S3 della propria connessione di origine. 

Nota informaticaL'utilizzo di un modello di dati per selezionare le directory può migliorare le prestazioni.
  • Selezionare le directory da includere durante il trasferimento dei dati:

    • Per ogni directory, in Aggiungi percorso, inserire il percorso e il modello del nome file:

      • Utilizzare * come carattere jolly per corrispondere a qualsiasi carattere.

      • Per inserire un modello di data, utilizzare <yyyy> come segnaposto per l'anno a quattro cifre, <MM> come segnaposto per il mese a due cifre, <dd> come segnaposto per il giorno a due cifre e <HH> come segnaposto per l'ora a due cifre. Ad esempio:

        • MyDir3/<yyyy>_<MM>_<dd>_<HH>_orders.csv

        • MyDir3/<yyyy>/<MM>/<dd>/<HH>_orders.csv

  • Fare clic su Anteprima per aprire la finestra di dialogo Anteprima dati. Viene visualizzato un elenco di file inclusi ed esclusi.

  • Fare clic su Convalida per verificare che i percorsi e i modelli dei nomi file siano corretti e funzionali.

  • In Definisci nome set di dati di destinazione, fornire un nome per mappare l'argomento alla tabella Iceberg di destinazione. Fare clic su Avanti.

Selezione del tipo di contenuto

Scegliere il tipo di contenuto degli eventi di origine.

  • Selezionare il tipo di eventi che si stanno inserendo in Scegli il tipo di eventi dati.

  • Per ulteriori informazioni, vedere Connessione ai flussi di dati.

    Il tipo di contenuto selezionato si applica a tutti gli argomenti, set di dati o eventi dati. È necessario creare una nuova attività per ogni tipo di contenuto che si desidera inserire.

  • Espandere Verifica che gli eventi siano caricati correttamente per confermare che i dati possano essere analizzati. È consigliabile assicurarsi che i dati siano corretti in questa fase, altrimenti sarà necessario ricreare la pipeline e caricare nuovamente i dati. Utilizzare Seleziona set di dati per esaminare set di dati specifici e controllare eventuali avvisi che potrebbero influire sul caricamento dei dati. Fare clic sull'icona a forma di occhio accanto a qualsiasi colonna struct per visualizzare i dati.

  • Fare clic su Avanti.

Nota informaticaSe non sono stati rilevati eventi per il set di dati, viene visualizzato un messaggio nel trasferimento. Sarà necessario eseguire l'attività quando ci sono eventi da leggere e le colonne verranno aggiunte automaticamente.

Impostazione delle proprietà di inserimento

Configurare le impostazioni per la propria pipeline:

  • Leggi dati da

    • Inizia dal primo evento: inserisce tutti i dati storici.

    • Inizia da ora: inserisce i nuovi dati in arrivo dal momento in cui viene avviata la pipeline.

  • Annullamento nidificazione colonne

    • Mantieni colonne nidificate: non viene applicata alcuna trasformazione.

    • Annulla nidificazione in colonne separate: i dati vengono suddivisi in colonne separate.

  • Impostazioni di caricamento per nuovi set di dati

    • Solo accodamento: generalmente l'opzione migliore per i dati degli eventi in quanto di solito hanno una durata breve e non vengono aggiornati, ad esempio, Ordini.

    • Applica modifiche: questa opzione è più adatta ai dati che vengono aggiornati nel tempo, ad esempio, Clienti. Aggiorna i record esistenti e inserisce nuovi record in base ai campi chiave. Sarà necessario specificare i campi chiave in seguito durante la definizione dell'attività.

  • Partizione tabella di destinazione

    L'opzione di partizione della tabella di destinazione si applica a tutte le tabelle nella pipeline. È possibile sovrascriverla in seguito a livello di tabella per definire un partizionamento personalizzato.

    Nota informaticaQuesta opzione è disponibile solo quando si seleziona Solo accodamento in Impostazioni di caricamento.
    • Nessuna partizione: le tabelle vengono create senza alcun partizionamento.

    • Partiziona per data di inserimento evento: le tabelle vengono partizionate in base alla data in cui vengono inseriti gli eventi.

      Nota informaticaQuando questa opzione è selezionata insieme all'opzione della colonna di intestazione hdr__from_timestamp, hdr__from_timestamp verrà utilizzata come colonna di partizione predefinita. Per informazioni sull'aggiunta della colonna di intestazione hdr__from_timestamp alle viste standard, vedere Definizioni di tabella.
  • Gestione modifiche dati

    Nota informaticaQuesta opzione è disponibile solo quando si seleziona Applica modifiche in Impostazioni di caricamento.
    • Includi eliminazioni temporanee: inserire un'espressione per definire quali record contrassegnare per l'eliminazione.

    • Crea un archivio dati storico (Tipo 2): questo manterrà le versioni precedenti dei record modificati.

  • Fare clic su Avanti.

Riepilogo

La schermata di riepilogo fornisce una visualizzazione grafica della propria pipeline:

  • Facoltativamente, per l'attività di trasferimento in streaming e di trasformazione in streaming, è possibile fare clic su Modifica nome e descrizione per fornire nuovi valori.

  • Selezionare l'opzione per ciò che si desidera accada Dopo la creazione della pipeline.

  • Dopo aver configurato tutte le impostazioni, fare clic su Crea per creare la pipeline in streaming.

  • Quando viene visualizzato il progetto, è possibile preparare ed eseguire ogni attività per iniziare a inserire i dati.

Mappature dei tipi di dati

Lo schema di origine iniziale si basa su un campione dei dati prelevato prima della fase PREPARA durante la creazione del progetto di pipeline e l'evoluzione dello schema viene gestita in fase di lettura. Le attività di mirroring e altre attività a valle che non supportano STRUCT e ARRAY utilizzano un tipo JSON. I dati possono essere analizzati utilizzando SQL.

Le seguenti mappature dei tipi di dati si applicano a tutte le sorgenti dati supportate, ma variano in base al tipo di file di origine, e occorre notare quanto segue:

  • I tipi di dati vengono dedotti da un campione dei dati in fase di onboarding. Ad esempio, se un campo contiene solo valori interi nel campione, viene creato come INT8 nelle attività di trasferimento e trasformazione in streaming. Se i dati successivi includono valori frazionari a doppia precisione, i file di trasferimento contengono tali valori; tuttavia, nell'attività di trasformazione in streaming, se l'impostazione Modifica tipo di dati campo è impostata su Ignora, la colonna rimane INT8 e i valori frazionari vengono troncati. Per evitare troncamenti involontari, assicurarsi che i dati campione includano l'intera gamma di valori previsti prima dell'onboarding, oppure configurare Modifica tipo di dati campo su Interrompi attività durante le fasi iniziali e regolare i tipi di dati secondo necessità.

  • Se un campo viene aggiunto a una struct nell'origine, viene sempre aggiunto alla destinazione di trasferimento. Per la trasformazione in streaming, il comportamento viene applicato in base all'opzione scelta in Impostazioni attività di trasformazione in streaming > Evoluzione schema > Aggiungi campi a struct (Applica alla destinazione, Ignora, Interrompi attività).

  • Se un campo manca in un record specifico o un array è vuoto, vengono trattati come null.

  • Se un set di dati viene appiattito da un array e arriva un record in cui tale array è vuoto o null, il sistema crea una riga e il campo appiattito è null. Non viene escluso automaticamente. Se si desidera escludere queste righe, aggiungere manualmente un filtro, ad esempio, array_element IS NOT NULL.

  • I tipi di dati visualizzati nell'interfaccia utente riflettono la granularità del set di dati selezionato. Per gli array appiattiti, viene mostrato il tipo di dati del singolo elemento anziché la struttura dell'array stessa.

  • Non è possibile aggiungere un nuovo attributo all'interno di una struct in un campo JSON nidificato, ma solo a livello di radice.

  • Nelle attività di trasformazione in streaming, l'appiattimento è supportato solo per un singolo livello di un array. Quando l'appiattimento viene applicato a un array multilivello, ad esempio, ARRAY<ARRAY<STRUCT>>, viene appiattito solo l'array esterno, risultando in ARRAY<STRUCT> anziché in una STRUCT completamente appiattita. Inoltre, l'interfaccia utente corrente consente di configurare l'appiattimento solo a livello di colonna. Di conseguenza, la selezione di un array multilivello applica implicitamente l'appiattimento solo al primo livello dell'array.

  • Quando si fa riferimento a un array di primitive, viene utilizzato il tipo di dati dell'elemento se la granularità è l'array. Altrimenti viene utilizzato il tipo di dati dell'array.

    In questo esempio, OrderDetails ha un array di CustomerID di tipo di dati INT. OrderDetails.CustomerID significa INT se la granularità è OrderDetails.CustomerID e ARRAY<INT> se la granularità è OrderDetails.

JSON

Nei file JSON, il valore numerico nell'origine determina il tipo di dati di destinazione:

  • INT8 viene utilizzato per i valori interi che rientrano nell'intervallo di interi supportato e non includono un componente frazionario.

  • REAL8 (DOUBLE) viene utilizzato quando il valore contiene un componente frazionario (numero in virgola mobile).

  • STRING viene utilizzato quando il valore numerico supera l'intervallo di interi massimo supportato.

I tipi di dati sono mappati come segue:

Tipi di dati di origine Tipi di dati Qlik Talend Data Integration
STRING STRING
NUMBER INT8
NUMBER REAL8
NUMBER STRING
BOOLEAN BOOLEAN
ARRAY ARRAY
OBJECT STRUCT

CSV, TSV, REGEX e SPLIT

Per impostazione predefinita, tutti i tipi di dati di origine vengono inseriti in una stringa. Utilizzare l'opzione Deduci automaticamente i tipi per mappare i tipi di origine e di destinazione come segue:

Tipi di dati di origine Tipi di dati Qlik
NUMERIC INT8/REAL8
True/TRUE/true/False/FALSE/false BOOLEAN
TIMESTAMP I timestamp nel formato yyyy-MM-dd HH:mm:ss o yyyy-MM-ddTHH:mm:ssz vengono analizzati in un tipo datetime. Se è incluso un fuso orario, il valore viene analizzato come stringa.

Parquet

I file Parquet supportano tipi di dati fisici e logici. I tipi di dati fisici definiscono come i valori vengono archiviati su disco, come INT32, DOUBLE o BYTE_ARRAY. I tipi di dati logici forniscono un significato semantico oltre alla rappresentazione fisica, ad esempio, identificando se un valore intero rappresenta una data. Quando un tipo logico è associato a una colonna Parquet ed è supportato in Qlik Open Lakehouse (come elencato di seguito), l'attività di trasferimento in streaming utilizza il tipo logico durante la definizione dello schema di destinazione, anziché il tipo fisico sottostante. Ciò garantisce che i dati vengano interpretati correttamente, preserva la semantica prevista come precisione, scala e significato temporale e si traduce in schemi più accurati quando i dati vengono scritti in formati a valle.

I dati provenienti dai file Parquet sono mappati come segue:

Tipi di dati di origine Tipi logici Tipi di dati Qlik Talend Data Integration
BOOLEAN BOOLEAN
INT32 INT8
INT64 INT8
INT96 DATETIME
FLOAT REAL8
DOUBLE REAL8
BYTE_ARRAY STRING (Codificato come Base64)
FIXED_LEN_BYTE_ARRAY STRING (Codificato come Base64)
BYTE_ARRAY STRING STRING
BYTE_ARRAY ENUM STRING
INT32 DECIMAL INT8
INT64 DECIMAL INT8
FIXED_LEN_BYTE_ARRAY DECIMAL INT8/REAL8 (Codificato come Base64)
BYTE_ARRAY DECIMAL INT8/REAL8 (Codificato come Base64)
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 di struct che rappresentano coppie chiave-valore.

Avro

Le seguenti mappature si applicano ai file Avro con registro degli schemi.

Tipi di dati di origine Tipi logici Tipi di dati Qlik Talend Data Integration
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

Le seguenti mappature si applicano ai file ORC.

Tipi di dati di origine Tipi di dati Qlik Talend Data Integration
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 di struct che rappresentano coppie chiave-valore.
STRUCT STRUCT
UNION

Limitazioni e considerazioni

  • Se una struttura o un array viene modificato dall'evoluzione automatica dello schema nel trasferimento, le viste a valle che non sono state create da un'attività in streaming di Qlik Talend Cloud potrebbero dover essere aggiornate per non risultare obsolete.

  • Se un'attività presenta errori di analisi, non passerà a uno stato di errore e non verrà contrassegnata come richiedente attenzione. Poiché gli errori di analisi sono una metrica in costante aumento, non esiste alcun criterio di uscita per uno stato di errore.

  • La rimozione di una funzionalità del cluster è consentita solo se non ci sono attività che utilizzano tale funzionalità.

  • Gli aggiornamenti e le eliminazioni di un record con la stessa chiave primaria non devono oltrepassare il limite della partizione, ovvero devono essere mappati alla stessa partizione.

  • Se un'origine contiene un numero elevato di colonne, solo le prime 500 colonne per frequenza vengono visualizzate nelle attività e nel catalogo. Tutte le colonne vengono salvate nei file Avro nel trasferimento S3, ma solo le prime 500 colonne vengono archiviate nelle tabelle Iceberg. Nell'evoluzione dello schema, se viene aggiunta una nuova colonna, non verrà aggiunta alle colonne principali anche se è frequente.

Hai trovato utile questa pagina?

Se riscontri problemi con questa pagina o con il suo contenuto – un errore di battitura, un passaggio mancante o un errore tecnico – ti pregiamo di farcelo sapere!