Test ETL - Guida rapida
I dati in un sistema Data Warehouse vengono caricati con uno strumento ETL (Extract, Transform, Load). Come suggerisce il nome, esegue le seguenti tre operazioni:
Estrae i dati dal tuo sistema transazionale che può essere un Oracle, Microsoft o qualsiasi altro database relazionale,
Trasforma i dati eseguendo operazioni di pulizia dei dati e quindi
Carica i dati nel data warehouse OLAP.
È inoltre possibile estrarre dati da file flat come fogli di calcolo e file CSV utilizzando uno strumento ETL e caricarli in un data warehouse OLAP per l'analisi e il reporting dei dati. Facciamo un esempio per capirlo meglio.
Esempio
Supponiamo che ci sia una società di produzione con più reparti come vendite, risorse umane, gestione dei materiali, EWM, ecc. nomi, colonne, ecc. Ora, se l'azienda desidera analizzare i dati storici e generare report, tutti i dati da queste fonti di dati devono essere estratti e caricati in un Data Warehouse per salvarli per il lavoro analitico.
Uno strumento ETL estrae i dati da tutte queste origini dati eterogenee, trasforma i dati (come applicare calcoli, unire campi, chiavi, rimuovere campi dati errati, ecc.) E li carica in un Data Warehouse. Successivamente, è possibile utilizzare vari strumenti di Business Intelligence (BI) per generare report, dashboard e visualizzazioni significativi utilizzando questi dati.
Differenza tra ETL e BI Tools
Uno strumento ETL viene utilizzato per estrarre dati da diverse origini dati, trasformare i dati e caricarli in un sistema DW; tuttavia, uno strumento BI viene utilizzato per generare report interattivi e ad-hoc per gli utenti finali, dashboard per il senior management, visualizzazioni di dati per riunioni del consiglio mensili, trimestrali e annuali.
Gli strumenti ETL più comuni includono: SAP BO Data Services (BODS), Informatica - Power Center, Microsoft - SSIS, Oracle Data Integrator ODI, Talend Open Studio, Clover ETL Open source, ecc.
Alcuni strumenti di BI popolari includono: SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI Platform, Tableau, Oracle Business Intelligence Enterprise Edition, ecc.
Processo ETL
Discutiamo ora un po 'più in dettaglio i passaggi chiave coinvolti in una procedura ETL -
Estrazione dei dati
Implica l'estrazione dei dati da diverse origini dati eterogenee. L'estrazione dei dati da un sistema transazionale varia in base ai requisiti e allo strumento ETL in uso. Normalmente viene eseguito eseguendo lavori pianificati in orari non lavorativi come l'esecuzione di lavori di notte o durante il fine settimana.
Trasformare i dati
Implica la trasformazione dei dati in un formato adatto che può essere facilmente caricato in un sistema DW. La trasformazione dei dati implica l'applicazione di calcoli, join e la definizione di chiavi primarie ed esterne sui dati. Ad esempio, se si desidera la% delle entrate totali che non è nel database, si applicherà la formula% in trasformazione e si caricheranno i dati. Allo stesso modo, se hai il nome e il cognome degli utenti in colonne diverse, puoi applicare un'operazione di concatenazione prima di caricare i dati. Alcuni dati non richiedono alcuna trasformazione; tali dati sono noti comedirect move o pass through data.
La trasformazione dei dati comporta anche la correzione e la pulizia dei dati, la rimozione di dati errati, la formazione di dati incompleti e la correzione degli errori dei dati. Include anche l'integrità dei dati e la formattazione di dati incompatibili prima di caricarli in un sistema DW.
Caricamento dei dati in un sistema DW
Implica il caricamento dei dati in un sistema DW per report e informazioni analitiche. Il sistema di destinazione può essere un semplice file flat delimitato o un data warehouse.
Funzione strumento ETL
Un tipico data warehouse basato su strumenti ETL utilizza aree di staging, integrazione dei dati e livelli di accesso per eseguire le sue funzioni. Normalmente è un'architettura a 3 strati.
Staging Layer - Il livello di gestione temporanea o il database di gestione temporanea viene utilizzato per memorizzare i dati estratti da diversi sistemi di dati di origine.
Data Integration Layer - Il livello di integrazione trasforma i dati dal livello di staging e sposta i dati in un database, dove i dati sono organizzati in gruppi gerarchici, spesso chiamati dimensionse in facts e aggregate facts. La combinazione di tabelle fatti e dimensioni in un sistema DW è chiamata aschema.
Access Layer - Il livello di accesso viene utilizzato dagli utenti finali per recuperare i dati per report e informazioni analitiche.
La seguente illustrazione mostra come i tre livelli interagiscono tra loro.
Il test ETL viene eseguito prima che i dati vengano spostati in un sistema di data warehouse di produzione. A volte è anche chiamato cometable balancing o production reconciliation. È diverso dal test del database in termini di ambito e di passaggi da eseguire per completarlo.
L'obiettivo principale del test ETL è identificare e mitigare i difetti dei dati e gli errori generali che si verificano prima dell'elaborazione dei dati per il reporting analitico.
Test ETL - Attività da eseguire
Ecco un elenco delle attività comuni coinvolte nei test ETL:
- Comprendere i dati da utilizzare per i rapporti
- Rivedi il modello di dati
- Mappatura da sorgente a destinazione
- Controllo dei dati sui dati di origine
- Pacchetti e convalida dello schema
- Verifica dei dati nel sistema di destinazione
- Verifica dei calcoli di trasformazione dei dati e delle regole di aggregazione
- Esempio di confronto dei dati tra l'origine e il sistema di destinazione
- Integrità dei dati e controlli di qualità nel sistema di destinazione
- Test delle prestazioni sui dati
Sia il test ETL che il test del database implicano la convalida dei dati, ma non sono la stessa cosa. Il test ETL viene normalmente eseguito sui dati in un sistema di data warehouse, mentre il test del database viene comunemente eseguito su sistemi transazionali in cui i dati provengono da diverse applicazioni nel database transazionale.
Qui abbiamo evidenziato le principali differenze tra il test ETL e il test del database.
Test ETL
Il test ETL prevede le seguenti operazioni:
Convalida dello spostamento dei dati dall'origine al sistema di destinazione.
Verifica del conteggio dei dati nel sistema di origine e di destinazione.
Verifica dell'estrazione dei dati, trasformazione secondo i requisiti e le aspettative.
Verifica se le relazioni tra tabelle, join e chiavi, vengono conservate durante la trasformazione.
Gli strumenti di test ETL comuni includono QuerySurge, Informatica, eccetera.
Test di database
Il test del database sottolinea maggiormente l'accuratezza dei dati, la correttezza dei dati e i valori validi. Comporta le seguenti operazioni:
Verifica se le chiavi primarie ed esterne vengono mantenute.
Verifica se le colonne in una tabella hanno valori di dati validi.
Verifica dell'accuratezza dei dati nelle colonne. Example - La colonna Numero di mesi non deve avere un valore maggiore di 12.
Verifica dei dati mancanti nelle colonne. Controlla se ci sono colonne nulle che in realtà dovrebbero avere un valore valido.
Gli strumenti di test di database comuni includono Selenium, QTP, eccetera.
La tabella seguente mostra le caratteristiche chiave dei test di database ed ETL e il loro confronto:
Funzione | Test di database | Test ETL |
---|---|---|
Obbiettivo primario | Validazione e integrazione dei dati | Estrazione, trasformazione e caricamento dei dati per il reporting BI |
Sistema applicabile | Sistema transazionale in cui si verifica il flusso aziendale | Sistema contenente dati storici e non in ambiente di flusso aziendale |
Strumenti comuni | QTP, selenio, ecc. | QuerySurge, Informatica, ecc. |
Esigenza aziendale | Viene utilizzato per integrare i dati di più applicazioni, impatto grave. | Viene utilizzato per rapporti analitici, informazioni e previsioni. |
Modellazione | Metodo ER | Multidimensionale |
Tipo di database | Viene normalmente utilizzato nei sistemi OLTP | Si applica ai sistemi OLAP |
Tipo di dati | Dati normalizzati con più join | Dati denormalizzati con meno join, più indici e aggregazioni. |
La categorizzazione dei test ETL viene eseguita in base agli obiettivi di test e reporting. Le categorie di test variano in base agli standard dell'organizzazione e dipende anche dai requisiti del cliente. In generale, i test ETL sono classificati in base ai seguenti punti:
Source to Target Count Testing - Implica la corrispondenza del conteggio dei record nei sistemi di origine e di destinazione.
Source to Target Data Testing- Implica la convalida dei dati tra i sistemi di origine e di destinazione. Comprende anche l'integrazione dei dati e il controllo del valore di soglia e il controllo dei dati duplicati nel sistema di destinazione.
Data Mapping or Transformation Testing- Conferma la mappatura degli oggetti nei sistemi di origine e di destinazione. Implica anche il controllo della funzionalità dei dati nel sistema di destinazione.
End-User Testing- Implica la generazione di report per gli utenti finali per verificare se i dati nei report sono come previsto. Implica la ricerca della deviazione nei report e il controllo incrociato dei dati nel sistema di destinazione per la convalida del report.
Retesting - Implica la correzione di bug e difetti nei dati nel sistema di destinazione e di eseguire nuovamente i report per la convalida dei dati.
System Integration Testing- Si tratta di testare tutti i singoli sistemi e successivamente combinare i risultati per trovare se ci sono deviazioni. Esistono tre approcci che possono essere utilizzati per eseguire questa operazione: top-down, bottom-up e ibrido.
Sulla base della struttura di un sistema di Data Warehouse, i test ETL (indipendentemente dallo strumento utilizzato) possono essere suddivisi nelle seguenti categorie:
Nuovo test del sistema DW
In questo tipo di test, c'è un nuovo sistema DW costruito e verificato. Gli input dei dati vengono presi da clienti / utenti finali e anche da diverse fonti di dati e viene creato un nuovo data warehouse. Successivamente, i dati vengono verificati nel nuovo sistema con l'aiuto degli strumenti ETL.
Test di migrazione
Nei test di migrazione, i clienti dispongono di un data warehouse e di un ETL esistenti, ma cercano un nuovo strumento ETL per migliorare l'efficienza. Implica la migrazione dei dati dal sistema esistente utilizzando un nuovo strumento ETL.
Cambia test
Nella verifica delle modifiche, vengono aggiunti nuovi dati da diverse origini dati a un sistema esistente. I clienti possono anche modificare le regole esistenti per ETL oppure è anche possibile aggiungere una nuova regola.
Report Testing
Il test dei report implica la creazione di report per la convalida dei dati. I report sono l'output finale di qualsiasi sistema DW. I report vengono testati in base al layout, ai dati nel report e ai valori calcolati.
Il test ETL è diverso dal test del database o da qualsiasi altro test convenzionale. Potrebbe essere necessario affrontare diversi tipi di sfide durante l'esecuzione dei test ETL. Qui abbiamo elencato alcune sfide comuni:
Perdita di dati durante il processo ETL.
Dati errati, incompleti o duplicati.
Il sistema DW contiene dati storici, quindi il volume di dati è troppo grande ed estremamente complesso per eseguire test ETL nel sistema di destinazione.
Normalmente ai tester ETL non viene fornito l'accesso per visualizzare le pianificazioni dei lavori nello strumento ETL. Difficilmente hanno accesso agli strumenti di BI Reporting per vedere il layout finale dei report e dei dati all'interno dei report.
Difficile da generare e costruire casi di test, poiché il volume di dati è troppo alto e complesso.
I tester ETL normalmente non hanno un'idea dei requisiti dei report degli utenti finali e del flusso aziendale delle informazioni.
Il test ETL coinvolge vari concetti SQL complessi per la convalida dei dati nel sistema di destinazione.
A volte ai tester non vengono fornite le informazioni di mappatura da origine a destinazione.
Un ambiente di test instabile ritarda lo sviluppo e il test di un processo.
Un tester ETL è principalmente responsabile della convalida delle origini dati, dell'estrazione dei dati, dell'applicazione della logica di trasformazione e del caricamento dei dati nelle tabelle di destinazione.
Di seguito sono elencate le responsabilità chiave di un tester ETL.
Verifica le tabelle nel sistema di origine
Comporta le seguenti operazioni:
- Conta controllare
- Riconciliare i record con i dati di origine
- Controllo del tipo di dati
- Assicurati che non siano stati caricati dati di spam
- Rimuovi i dati duplicati
- Controlla che tutte le chiavi siano a posto
Applicare la logica di trasformazione
La logica di trasformazione viene applicata prima del caricamento dei dati. Comporta le seguenti operazioni:
Controllo di convalida della soglia dei dati, ad esempio, il valore dell'età non deve essere superiore a 100.
Controllo del conteggio dei record, prima e dopo la logica di trasformazione applicata.
Validazione del flusso di dati dall'area di staging alle tabelle intermedie.
Controllo della chiave surrogata.
Caricamento dei dati
I dati vengono caricati dall'area di staging al sistema di destinazione. Comporta le seguenti operazioni:
Registrare il controllo del conteggio dalla tabella intermedia al sistema di destinazione.
Assicurati che i dati del campo chiave non siano mancanti o Null.
Verificare se i valori aggregati e le misure calcolate sono caricati nelle tabelle dei fatti.
Verificare le viste di modellazione in base alle tabelle di destinazione.
Verificare se CDC è stato applicato alla tabella di carico incrementale.
Controllo dei dati nella tabella delle dimensioni e controllo della tabella della cronologia.
Controllare i report BI in base ai fatti caricati e alla tabella delle dimensioni e secondo i risultati attesi.
Test degli strumenti ETL
I tester ETL sono tenuti a testare gli strumenti e anche i casi di test. Comporta le seguenti operazioni:
- Testare lo strumento ETL e le sue funzioni
- Testare il sistema ETL Data Warehouse
- Crea, progetta ed esegui i piani di test e gli scenari di test.
- Testare i trasferimenti di dati di file flat.
È importante definire la corretta tecnica di test ETL prima di iniziare il processo di test. È necessario accettare l'accettazione di tutte le parti interessate e assicurarsi che sia selezionata una tecnica corretta per eseguire i test ETL. Questa tecnica dovrebbe essere ben nota al team di test e dovrebbero essere consapevoli dei passaggi coinvolti nel processo di test.
Esistono vari tipi di tecniche di test che possono essere utilizzate. In questo capitolo discuteremo brevemente le tecniche di test.
Test di convalida della produzione
Per eseguire rapporti e analisi analitiche, i dati nella produzione devono essere corretti. Questo test viene eseguito sui dati che vengono spostati nel sistema di produzione. Implica la convalida dei dati nel sistema di produzione e il confronto con i dati di origine.
Test di conteggio da origine a destinazione
Questo tipo di test viene eseguito quando il tester ha meno tempo per eseguire l'operazione di test. Implica il controllo del conteggio dei dati nei sistemi di origine e di destinazione. Non implica il controllo dei valori dei dati nel sistema di destinazione. Inoltre non implica se i dati sono in ordine crescente o decrescente dopo la mappatura dei dati.
Test dei dati da origine a destinazione
In questo tipo di test, un tester convalida i valori dei dati dall'origine al sistema di destinazione. Controlla i valori dei dati nel sistema di origine e i valori corrispondenti nel sistema di destinazione dopo la trasformazione. Questo tipo di test richiede tempo e viene normalmente eseguito in progetti finanziari e bancari.
Data Integration / Threshold Value Validation Testing
In questo tipo di test, un tester convalida la gamma di dati. Tutti i valori di soglia nel sistema di destinazione vengono controllati se corrispondono al risultato atteso. Comprende anche l'integrazione dei dati nel sistema di destinazione da più sistemi di origine dopo la trasformazione e il caricamento.
Example - L'attributo Age non deve avere un valore maggiore di 100. Nella colonna della data GG / MM / AA, il campo del mese non deve avere un valore maggiore di 12.
Test della migrazione delle applicazioni
Il test di migrazione dell'applicazione viene normalmente eseguito automaticamente quando si passa da una vecchia applicazione a un nuovo sistema applicativo. Questo test consente di risparmiare molto tempo. Controlla se i dati estratti da una vecchia applicazione sono gli stessi dei dati nel nuovo sistema applicativo.
Controllo dei dati e test dei vincoli
Include l'esecuzione di vari controlli come il controllo del tipo di dati, il controllo della lunghezza dei dati e il controllo dell'indice. Qui un tecnico di test esegue i seguenti scenari: chiave primaria, chiave esterna, NOT NULL, NULL e UNIQUE.
Duplicate Data Check Testing
Questo test comporta il controllo di dati duplicati nel sistema di destinazione. Quando è presente un'enorme quantità di dati nel sistema di destinazione, è possibile che nel sistema di produzione siano presenti dati duplicati che potrebbero generare dati non corretti nei rapporti analitici.
I valori duplicati possono essere controllati con l'istruzione SQL come -
Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
FROM Customer
GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;
I dati duplicati vengono visualizzati nel sistema di destinazione per i seguenti motivi:
- Se non viene definita alcuna chiave primaria, potrebbero essere presenti valori duplicati.
- A causa di mappatura errata o problemi ambientali.
- Errori manuali durante il trasferimento dei dati dall'origine al sistema di destinazione.
Test di trasformazione dei dati
Il test della trasformazione dei dati non viene eseguito eseguendo una singola istruzione SQL. Richiede tempo e comporta l'esecuzione di più query SQL per ogni riga per verificare le regole di trasformazione. Il tester deve eseguire query SQL per ogni riga e quindi confrontare l'output con i dati di destinazione.
Test di qualità dei dati
Il test di qualità dei dati implica l'esecuzione di un controllo del numero, del controllo della data, del controllo dello zero, del controllo della precisione, ecc Syntax Test per segnalare caratteri non validi, ordine maiuscolo / minuscolo errato, ecc. e Reference Tests per verificare se i dati sono conformi al modello di dati.
Test incrementali
Viene eseguito un test incrementale per verificare se le istruzioni Insert e Update vengono eseguite secondo il risultato atteso. Questo test viene eseguito passo dopo passo con dati vecchi e nuovi.
Test di regressione
Quando apportiamo modifiche alla trasformazione dei dati e alle regole di aggregazione per aggiungere nuove funzionalità che aiutano anche il tester a trovare nuovi errori, si parla di test di regressione. I bug nei dati che arrivano nei test di regressione sono chiamati Regression.
Nuovo test
Quando si eseguono i test dopo aver corretto i codici, si parla di ripetizione del test.
Test di integrazione del sistema
Il test di integrazione del sistema comporta il test dei componenti di un sistema individualmente e successivamente l'integrazione dei moduli. Esistono tre modi in cui è possibile eseguire un'integrazione di sistema: top-down, bottom-up e ibrida.
Test di navigazione
Il test di navigazione è noto anche come test del front-end del sistema. Coinvolge il test del punto di vista dell'utente finale controllando tutti gli aspetti del report front-end - include dati in vari campi, calcoli e aggregati, ecc.
I test ETL coprono tutti i passaggi coinvolti in un ciclo di vita ETL. Inizia con la comprensione dei requisiti aziendali fino alla generazione di un report di riepilogo.
Di seguito sono elencati i passaggi comuni nell'ambito del ciclo di vita dei test ETL:
Comprensione dei requisiti aziendali.
Validazione del requisito aziendale.
La stima del test viene utilizzata per fornire il tempo stimato per eseguire casi di test e per completare il report di riepilogo.
La pianificazione del test implica la ricerca della tecnica di test in base agli input secondo i requisiti aziendali.
Creazione di scenari di test e casi di test.
Una volta che i casi di test sono pronti e approvati, il passaggio successivo consiste nell'eseguire il controllo pre-esecuzione.
Esegui tutti i casi di test.
L'ultimo passaggio consiste nel generare un rapporto di riepilogo completo e archiviare un processo di chiusura.
Gli scenari di test ETL vengono utilizzati per convalidare un processo di test ETL. La tabella seguente spiega alcuni degli scenari e dei casi di test più comuni utilizzati dai tester ETL.
Scenari di prova | Casi test |
---|---|
Convalida della struttura |
Implica la convalida della struttura della tabella di origine e di destinazione secondo il documento di mappatura. Il tipo di dati deve essere convalidato nei sistemi di origine e di destinazione. La lunghezza dei tipi di dati nell'origine e nel sistema di destinazione dovrebbe essere la stessa. I tipi di campo dati e il loro formato devono essere gli stessi nel sistema di origine e di destinazione. Convalida dei nomi delle colonne nel sistema di destinazione. |
Convalida del documento di mappatura |
Implica la convalida del documento di mappatura per garantire che tutte le informazioni siano state fornite. Il documento di mappatura dovrebbe avere un registro delle modifiche, mantenere i tipi di dati, la lunghezza, le regole di trasformazione, ecc. |
Convalida vincoli |
Implica la convalida dei vincoli e la garanzia che vengano applicati alle tabelle previste. |
Controllo della coerenza dei dati |
Implica il controllo dell'uso improprio dei vincoli di integrità come la chiave esterna. La lunghezza e il tipo di dati di un attributo possono variare in tabelle diverse, sebbene la loro definizione rimanga la stessa a livello semantico. |
Convalida della completezza dei dati |
Implica il controllo se tutti i dati vengono caricati nel sistema di destinazione dal sistema di origine. Conteggio del numero di record nei sistemi di origine e di destinazione. Analisi del valore limite. Convalida dei valori univoci delle chiavi primarie. |
Convalida della correttezza dei dati |
Implica la convalida dei valori dei dati nel sistema di destinazione. Nella tabella sono stati trovati dati con errori di ortografia o imprecisi. I dati null, non univoci vengono archiviati quando si disabilita il vincolo di integrità al momento dell'importazione. |
Convalida della trasformazione dei dati |
Implica la creazione di un foglio di calcolo di scenari per i valori di input e i risultati attesi e quindi la convalida con gli utenti finali. Convalida della relazione padre-figlio nei dati creando scenari. Utilizzo della profilazione dei dati per confrontare l'intervallo di valori in ogni campo. Convalida se i tipi di dati nel magazzino sono gli stessi menzionati nel modello di dati. |
Convalida della qualità dei dati |
Implica l'esecuzione del controllo del numero, del controllo della data, del controllo di precisione, del controllo dei dati, del controllo di null, ecc. Example - Il formato della data deve essere lo stesso per tutti i valori. |
Validazione nulla |
Implica il controllo dei valori Null dove è menzionato Not Null per quel campo. |
Convalida duplicata |
Implica la convalida dei valori duplicati nel sistema di destinazione quando i dati provengono da più colonne dal sistema di origine. Convalida delle chiavi primarie e di altre colonne se sono presenti valori duplicati in base ai requisiti aziendali. |
Controllo di convalida della data |
Campo della data di convalida per varie azioni eseguite nel processo ETL. Casi di test comuni per eseguire la convalida della data -
|
Convalida dati completa meno query |
Implica la convalida del set di dati completo nelle tabelle di origine e di destinazione utilizzando la query meno.
|
Altri scenari di test |
Altri scenari di test possono essere la verifica che il processo di estrazione non abbia estratto dati duplicati dal sistema di origine. Il team di test manterrà un elenco di istruzioni SQL eseguite per verificare che non siano stati estratti dati duplicati dai sistemi di origine. |
Pulizia dei dati |
I dati indesiderati devono essere rimossi prima di caricare i dati nell'area di gestione temporanea. |
L'ottimizzazione delle prestazioni ETL viene utilizzata per garantire se un sistema ETL può gestire un carico previsto di più utenti e transazioni. L'ottimizzazione delle prestazioni in genere implica il carico di lavoro lato server sul sistema ETL. Viene utilizzato per testare la risposta del server in ambienti multiutente e per trovare i colli di bottiglia. Questi possono essere trovati nei sistemi di origine e di destinazione, mappatura dei sistemi, configurazione come proprietà di gestione della sessione, ecc.
Come eseguire l'ottimizzazione delle prestazioni del test ETL?
Seguire i passaggi indicati di seguito per eseguire l'ottimizzazione delle prestazioni dei test ETL -
Step 1 - Trova il carico che si sta trasformando in produzione.
Step 2 - Creare nuovi dati dello stesso carico o spostarli dai dati di produzione al server delle prestazioni locale.
Step 3 - Disabilitare l'ETL fino a quando non si genera il carico richiesto.
Step 4 - Prendi il conteggio dei dati necessari dalle tabelle del database.
Step 5- Annotare l'ultima esecuzione di ETL e abilitare l'ETL, in modo che riceva uno stress sufficiente per trasformare l'intero carico creato. Eseguirlo
Step 6 - Dopo che ETL ha completato la sua esecuzione, prendere il conteggio dei dati creati.
indicatore chiave di prestazione
- Scopri il tempo totale impiegato per trasformare il carico.
- Scopri se il tempo di esecuzione è migliorato o diminuito.
- Verificare che l'intero carico previsto sia stato estratto e trasferito.
L'obiettivo del test ETL è ottenere dati credibili. La credibilità dei dati può essere ottenuta rendendo il ciclo di test più efficace.
Una strategia di test globale è l'impostazione di un ciclo di test efficace. La strategia di test dovrebbe coprire la pianificazione dei test per ogni fase del processo ETL, ogni volta che i dati si spostano e dichiarare le responsabilità di ogni stakeholder, ad esempio, analisti aziendali, team infrastruttura, team QA, DBA, sviluppatori e utenti aziendali.
Per garantire la preparazione dei test da tutti gli aspetti, le aree chiave su cui dovrebbe concentrarsi una strategia di test sono:
Scopo del test: descrivere le tecniche e i tipi di test da utilizzare.
Configurazione dell'ambiente di test.
Disponibilità dei dati di test: si consiglia di disporre di dati simili alla produzione che coprano tutti i requisiti aziendali critici.
Qualità dei dati e criteri di accettazione delle prestazioni.
Nei test ETL, l'accuratezza dei dati viene utilizzata per garantire che i dati vengano caricati accuratamente nel sistema di destinazione secondo le aspettative. I passaggi chiave per eseguire l'accuratezza dei dati sono i seguenti:
Confronto dei valori
Il confronto del valore implica il confronto dei dati nel sistema di origine e di destinazione con una trasformazione minima o nulla. Può essere eseguito utilizzando vari strumenti di test ETL, ad esempio Source Qualifier Transformation in Informatica.
Alcune trasformazioni di espressioni possono essere eseguite anche nei test di accuratezza dei dati. Vari operatori di gruppo possono essere utilizzati nelle istruzioni SQL per verificare l'accuratezza dei dati nei sistemi di origine e di destinazione. Gli operatori comuni sono gli operatori Meno e Interseca. I risultati di questi operatori possono essere considerati come deviazioni di valore nel sistema di destinazione e di origine.
Controlla le colonne di dati critici
Le colonne di dati critici possono essere verificate confrontando valori distinti nei sistemi di origine e di destinazione. Ecco una query di esempio che può essere utilizzata per controllare le colonne di dati critici:
SELECT cust_name, Order_Id, city, count(*) FROM customer
GROUP BY cust_name, Order_Id, city;
Il controllo dei metadati implica la convalida della struttura della tabella di origine e di destinazione rispetto al documento di mappatura. Il documento di mappatura contiene i dettagli delle colonne di origine e di destinazione, le regole di trasformazione dei dati e i tipi di dati, tutti i campi che definiscono la struttura delle tabelle nei sistemi di origine e di destinazione.
Controllo lunghezza dati
La lunghezza del tipo di dati della colonna di destinazione deve essere uguale o maggiore del tipo di dati della colonna di origine. Facciamo un esempio. Supponiamo di avere i nomi e i cognomi nella tabella di origine e che la lunghezza dei dati per ciascuno sia definita come 50 caratteri. Quindi, la lunghezza dei dati di destinazione per la colonna del nome completo nel sistema di destinazione dovrebbe essere un minimo di 100 o più.
Controllo del tipo di dati
Il controllo del tipo di dati implica la verifica dell'origine e del tipo di dati di destinazione e la garanzia che siano uguali. È possibile che il tipo di dati di destinazione sia diverso dai dati di origine dopo una trasformazione. Quindi è necessario controllare anche le regole di trasformazione.
Controllo vincoli / indice
Il controllo dei vincoli implica la verifica dei valori dell'indice e dei vincoli secondo il documento delle specifiche di progetto. Tutte le colonne che non possono avere valori Null dovrebbero avere il vincolo Not Null. Le colonne delle chiavi primarie sono indicizzate secondo il documento di progettazione.
L'esecuzione delle trasformazioni dei dati è un po 'complessa, poiché non può essere ottenuta scrivendo una singola query SQL e quindi confrontando l'output con l'obiettivo. Per ETL Testing Data Transformation, potrebbe essere necessario scrivere più query SQL per ogni riga per verificare le regole di trasformazione.
Per cominciare, assicurati che i dati di origine siano sufficienti per testare tutte le regole di trasformazione. La chiave per eseguire con successo un test ETL per le trasformazioni dei dati è scegliere i dati di esempio corretti e sufficienti dal sistema di origine per applicare le regole di trasformazione.
I passaggi chiave per ETL Testing Data Transformation sono elencati di seguito:
Il primo passo è creare un elenco di scenari di dati di input e risultati attesi e convalidarli con il cliente aziendale. Questo è un buon approccio per la raccolta dei requisiti durante la progettazione e potrebbe essere utilizzato anche come parte del test.
Il passaggio successivo consiste nel creare i dati di test che contengono tutti gli scenari. Utilizzare uno sviluppatore ETL per automatizzare l'intero processo di compilazione dei set di dati con il foglio di calcolo dello scenario per consentire versatilità e mobilità, poiché è probabile che gli scenari cambino.
Successivamente, utilizza i risultati della profilazione dei dati per confrontare l'intervallo e l'invio di valori in ciascun campo tra i dati di destinazione e di origine.
Convalidare l'elaborazione accurata dei campi generati ETL, ad esempio, chiavi surrogate.
La convalida dei tipi di dati all'interno del warehouse sono gli stessi specificati nel modello di dati o nella progettazione.
Crea scenari di dati tra tabelle che testano l'integrità referenziale.
Convalidare le relazioni padre-figlio nei dati.
Il passaggio finale è eseguire lookup transformation. La tua query di ricerca dovrebbe essere diretta senza alcuna aggregazione e dovrebbe restituire un solo valore per la tabella di origine. Puoi unirti direttamente alla tabella di ricerca nel qualificatore di origine come nel test precedente. In caso contrario, scrivere una query unendo la tabella di ricerca con la tabella principale nell'origine e confrontare i dati nelle colonne corrispondenti nella destinazione.
Il controllo della qualità dei dati durante i test ETL implica l'esecuzione di controlli di qualità sui dati caricati nel sistema di destinazione. Include i seguenti test:
Controllo del numero
Il formato del numero dovrebbe essere lo stesso in tutto il sistema di destinazione. Ad esempio, nel sistema di origine, il formato della numerazione delle colonne èx.30, ma se l'obiettivo è solo 30, quindi deve caricare senza prefisso x. nel numero di colonna di destinazione.
Controllo della data
Il formato della data deve essere coerente sia nel sistema di origine che in quello di destinazione. Ad esempio, dovrebbe essere lo stesso in tutti i record. Il formato standard è: aaaa-mm-gg.
Controllo di precisione
Il valore di precisione dovrebbe essere visualizzato come previsto nella tabella di destinazione. Ad esempio, nella tabella di origine, il valore è 15.2323422, ma nella tabella di destinazione dovrebbe essere visualizzato come 15.23 o arrotondato a 15.
Controllo dei dati
Implica il controllo dei dati secondo i requisiti aziendali. I record che non soddisfano determinati criteri dovrebbero essere filtrati.
Example - Solo i record con date_id> = 2015 e Account_Id! = '001' dovrebbero essere caricati nella tabella di destinazione.
Controllo nullo
Alcune colonne dovrebbero avere Null secondo il requisito e i possibili valori per quel campo.
Example - La colonna Data di cessazione dovrebbe visualizzare Null a meno che e fino a quando la colonna dello stato Attivo non sia "T" o "Deceduto".
Altri controlli
È possibile eseguire controlli comuni come From_Date non superiori a To_Date.
Il controllo della completezza dei dati viene eseguito per verificare che i dati nel sistema di destinazione siano conformi alle aspettative dopo il caricamento.
I test comuni che possono essere eseguiti per questo sono i seguenti:
Controllo delle funzioni aggregate (somma, max, min, count),
Verifica e convalida dei conteggi e dei dati effettivi tra l'origine e la destinazione per le colonne senza trasformazioni o con trasformazioni semplici.
Conteggio convalida
Confronta il conteggio del numero di record nelle tabelle di origine e di destinazione. Può essere fatto scrivendo le seguenti domande:
SELECT count (1) FROM employee;
SELECT count (1) FROM emp_dim;
Convalida del profilo dati
Implica il controllo delle funzioni aggregate come count, sum e max nelle tabelle di origine e di destinazione (fact o dimensione).
Convalida del profilo dati della colonna
Implica il confronto dei valori distinti e il conteggio delle righe per ogni valore distinto.
SELECT city, count(*) FROM employee GROUP BY city;
SELECT city_id, count(*) FROM emp_dim GROUP BY city_id;
Convalida dati duplicati
Implica la convalida della chiave primaria e della chiave univoca in una colonna o in una combinazione di colonne che dovrebbero essere univoche secondo i requisiti aziendali. È possibile utilizzare la seguente query per eseguire la convalida dei dati duplicati:
SELECT first_name, last_name, date_of_joining, count (1) FROM employee
GROUP BY first_name, last_name HAVING count(1)>1;
Il ripristino del backup per un sistema è pianificato per garantire che il sistema venga ripristinato il prima possibile da un guasto e le operazioni vengano riprese il prima possibile senza perdere dati importanti.
Il test di ripristino ETL Backup viene utilizzato per garantire che il sistema Data Warehouse venga ripristinato correttamente da hardware, software o da un errore di rete con perdita di dati.
È necessario preparare un piano di backup adeguato per garantire la massima disponibilità del sistema. I sistemi di backup dovrebbero essere in grado di ripristinare con facilità e dovrebbero prendere il controllo del sistema guasto senza alcuna perdita di dati.
Test ETL Il ripristino del backup implica l'esposizione dell'applicazione o del sistema DW a condizioni estreme per qualsiasi componente hardware, arresto anomalo del software, ecc.
Il test ETL viene eseguito principalmente utilizzando script SQL e raccogliendo i dati in fogli di calcolo. Questo approccio per eseguire i test ETL è molto lento e dispendioso in termini di tempo, soggetto a errori e viene eseguito su dati di esempio.
Sfida tecnica nel test ETL manuale
Il tuo team di test ETL scrive query SQL per testare i dati in un sistema di magazzino e devono eseguirli manualmente utilizzando un editor SQL, quindi inserire i dati in un foglio di calcolo Excel e confrontarli manualmente. Questo processo è dispendioso in termini di tempo, risorse e inefficiente.
Ci sono vari strumenti disponibili sul mercato per automatizzare questo processo. Gli strumenti di test ETL più comuni sono QuerySurge e Informatica Data Validation.
QuerySurge
QuerySurge è una soluzione di test dei dati progettata per testare Big Data, Data Warehouse e il processo ETL. Può automatizzare l'intero processo per te e adattarsi perfettamente alla tua strategia DevOps.
Le caratteristiche principali di QuerySurge sono le seguenti:
Ha Query Wizards per creare QueryPairs di prova velocemente e facilmente senza che l'utente debba scrivere alcun SQL.
Ha una libreria di progetto con frammenti di query riutilizzabili. Puoi anche creare QueryPairs personalizzate.
Può confrontare i dati dai file di origine e dagli archivi dati con il data warehouse o l'archivio Big Data di destinazione.
Può confrontare milioni di righe e colonne di dati in pochi minuti.
Consente all'utente di programmare l'esecuzione dei test (1) immediatamente, (2) in qualsiasi data / ora o (3) automaticamente al termine di un evento.
Può produrre report informativi, visualizzare aggiornamenti e risultati di posta elettronica automatica al tuo team.
Per automatizzare l'intero processo, lo strumento ETL dovrebbe avviare QuerySurge tramite l'API della riga di comando dopo che il software ETL ha completato il processo di caricamento.
QuerySurge verrà eseguito automaticamente e non assistito, eseguendo tutti i test e quindi inviando un'email a tutti i membri del team con i risultati.
Proprio come QuerySurge, Informatica Data Validation fornisce uno strumento di test ETL che ti aiuta ad accelerare e automatizzare il processo di test ETL nell'ambiente di sviluppo e produzione. Consente di fornire una copertura dei test completa, ripetibile e verificabile in meno tempo. Non richiede abilità di programmazione!
Per testare un sistema di data warehouse o un'applicazione BI, è necessario avere un approccio incentrato sui dati. Le migliori pratiche di test ETL aiutano a ridurre al minimo i costi e il tempo per eseguire il test. Migliora la qualità dei dati da caricare nel sistema di destinazione che genera dashboard e report di alta qualità per gli utenti finali.
Abbiamo elencato qui alcune best practice che possono essere seguite per i test ETL:
Analizza i dati
È estremamente importante analizzare i dati per comprendere i requisiti al fine di impostare un modello di dati corretto. Trascorrere del tempo per comprendere i requisiti e disporre di un modello di dati corretto per il sistema di destinazione può ridurre le sfide ETL. È anche importante studiare i sistemi di origine, la qualità dei dati e creare regole di convalida dei dati corrette per i moduli ETL. Una strategia ETL dovrebbe essere formulata sulla base della struttura dei dati dei sistemi di origine e di destinazione.
Correggi i dati errati nel sistema di origine
Gli utenti finali sono normalmente consapevoli dei problemi relativi ai dati, ma non hanno idea di come risolverli. È importante trovare questi errori e correggerli prima che raggiungano il sistema ETL. Un modo comune per risolvere questo problema è al momento dell'esecuzione ETL, ma la procedura migliore è trovare gli errori nel sistema di origine e adottare misure per correggerli a livello di sistema di origine.
Trova uno strumento ETL compatibile
Una delle migliori pratiche ETL comuni consiste nel selezionare uno strumento più compatibile con i sistemi di origine e di destinazione. La capacità dello strumento ETL di generare script SQL per i sistemi di origine e di destinazione può ridurre il tempo e le risorse di elaborazione. Consente di elaborare la trasformazione ovunque all'interno dell'ambiente più appropriato.
Monitorare i lavori ETL
Un'altra best practice durante l'implementazione ETL è la pianificazione, il controllo e il monitoraggio dei lavori ETL per garantire che i carichi vengano eseguiti secondo le aspettative.
Integra dati incrementali
A volte, le tabelle del data warehouse hanno dimensioni maggiori e non è possibile aggiornarle durante ogni ciclo ETL. I carichi incrementali assicurano che solo i record modificati dall'ultimo aggiornamento vengano inseriti nel processo ETL e hanno un enorme impatto sulla scalabilità e sul tempo necessario per aggiornare il sistema.
Normalmente i sistemi di origine non hanno timestamp o una chiave primaria per identificare facilmente le modifiche. Tali problemi possono essere molto costosi, se identificati nelle fasi successive del progetto. Una delle migliori pratiche ETL è quella di coprire tali aspetti nello studio iniziale del sistema di origine. Questa conoscenza aiuta il team ETL a identificare i problemi di acquisizione dei dati modificati e determinare la strategia più appropriata.
Scalabilità
È buona norma assicurarsi che la soluzione ETL offerta sia scalabile. Al momento dell'implementazione, è necessario garantire che la soluzione ETL sia scalabile in base alle esigenze aziendali e alla sua potenziale crescita futura.