Dati in streaming
Il processo di onboarding trasferisce i dati dalla sorgente e li archivia in tabelle Iceberg. Le modifiche provenienti dalle sorgenti dati in streaming vengono applicate continuamente alle tabelle di archiviazione quasi in tempo reale.
Inserisci dati
I dati vengono inseriti all'interno di un progetto pipeline e i set di dati vengono archiviati nella posizione S3 definita nelle impostazioni del progetto.
-
Nel progetto, fare clic su Crea e poi su Inserisci dati.
-
Aggiungi un Nome attività e una Descrizione facoltativa per l'onboarding.
Fare clic su Avanti.
-
Seleziona il collegamento sorgente.
È possibile selezionare una connessione di origine di flusso esistente o creare una nuova connessione alla sorgente.
Per ulteriori informazioni, vedere Connessione ai flussi di dati.
Fare clic su Avanti e segui le istruzioni riportate di seguito per la tua 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 le regole di selezione per includere o escludere gruppi di set di dati:
-
Utilizzare % come carattere jolly per definire i criteri di selezione per i set di dati.
Se gli argomenti vengono selezionati utilizzando le 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 essere conforme alle convenzioni di denominazione, ad esempio, minuscolo, spazi rimossi, trattini sostituiti con trattini bassi. In Definisci nome set di dati di destinazione, è possibile modificare il nome della tabella di destinazione
-
Quando vengono utilizzate le regole di selezione per caricare più argomenti in una singola tabella, è necessario fornire il nome di destinazione.
-
Quando vengono utilizzate le 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'ingestione, tutti i nuovi argomenti che soddisfano i criteri della regola vengono anche trasferiti se l'opzione Nuovo argomento > Aggiungi a destinazione in evoluzione dello schema nelle impostazioni dell'attività di trasferimento è selezionata.
Selezionare uno o più set di dati o utilizzare una regola di selezione, quindi 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 vedere 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 che si trovano nel bucket S3 della connessione di origine.
-
Selezionare le directory da includere durante il trasferimento dei dati:
-
Per ogni directory, in Aggiungi percorso, immettere il percorso e il modello di nome file:
-
Usa * come carattere jolly per abbinare qualsiasi carattere.
-
Per inserire un modello di data, usa <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
-
-
-
-
Fai 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 di nome file siano corretti e funzionali.
-
In Definisci nome dataset 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 della sorgente.
-
Selezionare il tipo di eventi che si stanno acquisendo in Scegliere 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, i set di dati o gli eventi di dati. È necessario creare una nuova attività per ogni tipo di contenuto che si desidera acquisire.
-
Espandere Verificare che gli eventi siano stati caricati correttamente per confermare che i dati possono essere analizzati. È consigliabile assicurarsi che i dati siano corretti in questa fase, altrimenti è 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.
Impostazione delle proprietà di acquisizione
Configurare le impostazioni per la pipeline:
-
Leggi dati da
-
Inizia dall'evento più vecchio: importa tutti i dati storici.
-
Inizia da ora: importa i nuovi dati che arrivano dal momento in cui la pipeline si avvia.
-
-
Annullamento annidamento colonna
-
Mantieni le colonne nidificate: non vengono applicate trasformazioni.
-
Separa in colonne distinte: i dati vengono suddivisi in colonne separate.
-
-
Carica impostazioni per nuovi set di dati
-
Solo aggiunta: generalmente l'opzione migliore per i dati di evento, poiché di solito hanno una breve durata 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 ne inserisce di nuovi in base ai campi chiave. Sarà necessario specificare i campi chiave successivamente, quando si definisce l'attività.
-
-
Partizione tabella di destinazione
L'opzione di partizione della tabella di destinazione si applica a tutte le tabelle nella pipeline. È possibile ignorare questa impostazione in seguito a livello di tabella per definire un partizionamento personalizzato.
Nota informaticaQuesta opzione è disponibile solo quando Solo aggiunta è selezionata in Impostazioni di caricamento.-
Nessuna partizione: le tabelle vengono create senza alcuna partizione.
-
Partizione per data di ingestione evento: le tabelle vengono partizionate in base alla data in cui gli eventi vengono ingeriti.
-
-
Gestione modifiche dati
Nota informaticaQuesta opzione è disponibile solo quando Applica modifiche è selezionata in Impostazioni di caricamento.-
Includi eliminazioni logiche: immettere un'espressione per definire quali record contrassegnare per l'eliminazione.
-
Crea un archivio dati storico (Tipo 2): in questo modo verranno mantenute le versioni precedenti dei record modificati.
-
-
Fare clic su Avanti.
Riepilogo
La schermata di riepilogo fornisce una visualizzazione della tua pipeline:
-
Facoltativamente, per l'attività Streaming trasferimento e Streaming Transform, puoi fare clic su Modifica nome e descrizione per fornire nuovi valori.
-
Seleziona l'opzione per ciò che desideri accada Dopo la creazione della pipeline.
-
Quando hai configurato tutte le impostazioni, fai clic su Crea per creare la pipeline di streaming.
-
Quando il progetto viene visualizzato, puoi preparare ed eseguire ogni attività per iniziare a ingerire i dati.
-
Preparare ed eseguire l'attività di trasferimento in streaming.
Per ulteriori informazioni, vedere Trasferimento di dati in flusso a Qlik Open Lakehouse.
-
Preparare ed eseguire l'attività di trasformazione in streaming.
Per ulteriori informazioni, vedere Archiviazione di set di dati in flusso.
-
Mappature del tipo di dati
Lo schema di origine iniziale si basa su un campione dei dati prelevato prima della fase PREPARE durante la creazione del progetto pipeline, e l'evoluzione dello schema viene gestita al momento della 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 si dovrebbe notare quanto segue:
-
I tipi di dati sono 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 flusso. Se i dati successivi includono valori frazionari a doppia precisione, i file di trasferimento contengono tali valori; tuttavia, nell'attività di trasformazione in flusso, 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, o configurare Modifica tipo di dati del 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 flusso, il comportamento viene applicato in base all'opzione scelta in Impostazioni attività di trasformazione in flusso > Evoluzione dello schema > Aggiungi campi alla struct (Applica alla destinazione, Ignora, Interrompi attività).
-
Se un campo è mancante 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 è 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.
-
Un nuovo attributo non può essere aggiunto all'interno di una struct in un campo JSON nidificato, ma solo a livello 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>>, solo l'array esterno viene appiattito, risultando in ARRAY<STRUCT> anziché in una STRUCT completamente appiattita. Inoltre, l'interfaccia utente attuale 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, il tipo di dati dell'elemento viene utilizzato 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 nella sorgente determina il tipo di dati di destinazione:
-
INT8 viene utilizzato per valori interi che rientrano nell'intervallo di interi supportato e non includono una componente frazionaria.
-
REAL8 (DOUBLE) viene utilizzato quando il valore contiene una componente frazionaria (numero in virgola mobile).
-
STRING viene utilizzato quando il valore numerico supera l'intervallo massimo di interi supportato.
I tipi di dati sono mappati come segue:
| Tipi di dati di origine | Qlik Talend Data Integration tipi di dati |
|---|---|
| STRING | STRING |
| Numero | INT8 |
| Numero | REAL8 |
| Numero | STRING |
| BOOLEAN | BOOLEAN |
| ARRAY | ARRAY |
| OGGETTO | STRUTTURA |
CSV, TSV, REGEX e SPLIT
Per impostazione predefinita, tutti i tipi di dati di origine vengono acquisiti come stringa. Usa l'opzione, Deduci automaticamente i tipi, per mappare i tipi di origine e di destinazione come segue:
| Tipi di dati di origine | Qlik tipi di dati |
|---|---|
| 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 una stringa. |
Parquet
I file Parquet supportano tipi di dati fisici e logici. I tipi di dati fisici definiscono come i valori vengono memorizzati su disco, come INT32, DOUBLE o BYTE_ARRAY. I tipi di dati logici forniscono un significato semantico oltre la rappresentazione fisica, ad esempio, identificando se un valore intero rappresenta una data. Quando un tipo logico è allegato a una colonna Parquet ed è supportato in Qlik Open Lakehouse (come elencato di seguito), l'attività di trasferimento in streaming utilizza il tipo logico quando definisce lo 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 da file Parquet sono mappati come segue:
| Tipi di dati di origine | Tipi logici | Qlik Talend Data Integration tipi di dati |
|---|---|---|
| BOOLEAN | BOOLEAN | |
| INT32 | INT8 | |
| INT64 | INT8 | |
| INT96 | DATETIME | |
| FLOAT | REAL8 | |
| DOUBLE | REAL8 | |
| BYTE_ARRAY | STRING (Codificato come Base64) | |
| FIXED_LEN_BYTE_ARRAY | STRINGA (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 |
| TIPI ANNIDATI | STRUTTURA | |
| Elenco | ARRAY | |
| Mappa | ARRAY<STRUCT>. Array di struct che rappresentano coppie chiave-valore. |
Avro
Le seguenti mappature si applicano ai file Avro con schema registry.
| Tipi di dati di origine | Tipi logici | Qlik Talend Data Integration tipi di dati |
|---|---|---|
| BOOLEAN | BOOLEAN | |
| INT | INT8 | |
| LONG | INT8 | |
| FLOAT | REAL8 | |
| DOUBLE | REAL8 | |
| BYTES | STRING | |
| STRING | STRING | |
| RECORD | STRUTTURA | |
| ENUM | STRING | |
| ARRAY | ARRAY | |
| Mappa | ARRAY<STRUCT> | |
| UNIONE | ||
| FISSO | STRING | |
| BYTES | DECIMAL | DECIMAL |
| FISSO | 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 | Qlik Talend Data Integration tipi di dati |
|---|---|
| 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 |
| Elenco | ARRAY |
| Mappa | ARRAY<STRUCT>. Array di struct che rappresentano coppie chiave-valore. |
| STRUTTURA | STRUTTURA |
| Unione |
Limiti 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à di Qlik Talend Cloud flusso potrebbero dover essere aggiornate per non essere obsolete.
-
Se un'attività presenta errori di analisi, non raggiungerà uno stato di errore e non verrà contrassegnata come che richiede attenzione. Poiché gli errori di analisi sono una metrica in costante aumento, non esiste un criterio di uscita per uno stato di errore.
-
La rimozione di una capacità del cluster è consentita solo se non ci sono attività che utilizzano tale capacità.
-
Gli aggiornamenti e le eliminazioni di un record con la stessa chiave primaria non devono attraversare il confine 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, questa non verrà aggiunta alle colonne principali anche se è frequente.