Tutorial sui test dei Big Data: cos'è, strategia e come testare
⚡ Riepilogo intelligente
Il test dei Big Data verifica che un'applicazione Big Data elabori terabyte di dati in modo corretto, rapido e sicuro, combinando la convalida della fase di staging dei dati, la convalida di MapReduce e la convalida dell'output con controlli di architettura e prestazioni su un cluster Hadoop distribuito.
Che cos'è il testing dei Big Data?
Il test dei Big Data è un processo di verifica di un'applicazione Big Data volto a garantire che tutte le sue funzionalità funzionino come previsto. L'obiettivo del test dei Big Data è assicurarsi che il sistema Big Data funzioni senza intoppi e senza errori, mantenendo al contempo prestazioni e sicurezza ottimali.
I big data sono una raccolta di grandi insiemi di dati che non possono essere elaborati utilizzando le tecniche di calcolo tradizionali. Il test di questi insiemi di dati coinvolge vari strumenti, tecniche e framework per l'elaborazione. I big data si riferiscono alla creazione, all'archiviazione, al recupero e all'analisi di dati che sono notevoli in termini di volume, varietà e velocità. Puoi saperne di più su Big Data, Hadoop and MapReduce prima di iniziare i test.
Cos’è la strategia di test dei Big Data?
Testare un'applicazione Big Data significa più verificare la sua capacità di elaborazione dei dati che testare le singole funzionalità del prodotto software. Quando si parla di test Big Data, le prestazioni e le funzionalità sono fondamentali.
In una strategia di test per i Big Data, gli ingegneri QA verificano la corretta elaborazione di terabyte di dati utilizzando un cluster standard e altri componenti di supporto. Ciò richiede un elevato livello di competenze di test, poiché l'elaborazione è molto rapida. L'elaborazione può essere di tre tipi:
- Elaborazione in lotti: I dati memorizzati vengono elaborati secondo una pianificazione, pertanto i test mirano al completamento del lavoro e alla sua accuratezza.
- Elaborazione in tempo reale: I dati vengono elaborati al loro arrivo, pertanto i test si concentrano sulla latenza e sulla perdita di dati.
- Elaborazione interattiva: Gli analisti effettuano query direttamente, quindi i test mirano al tempo di risposta delle query ad hoc.
Il diagramma seguente riassume la strategia.
Oltre a ciò, la qualità dei dati è un fattore importante anche nel testing di Hadoop. Prima di testare l'applicazione, è necessario verificare la qualità dei dati, e questo dovrebbe essere considerato parte integrante del testing del database. Comprende la verifica di diverse caratteristiche come conformità, accuratezza, duplicazione, coerenza, validità, completezza dei dati, ecc. Nel prossimo tutorial sul testing di Hadoop, impareremo come testare le applicazioni Hadoop.
Come testare le applicazioni Hadoop
La figura seguente fornisce una panoramica generale delle fasi di test delle applicazioni Big Data.
Il test dei Big Data, o test di Hadoop, può essere suddiviso in tre fasi principali.
Passaggio 1: convalida della gestione temporanea dei dati
Il primo passaggio di questo tutorial sui test dei Big Data è denominato fase pre-Hadoop e prevede la convalida del processo.
- I dati provenienti da varie fonti, come RDBMS, blog, social media, ecc., devono essere convalidati per garantire che nel sistema vengano inseriti dati corretti.
- Confrontando i dati di origine con i dati inseriti nel sistema Hadoop per assicurarsi che corrispondano
- Verificare che i dati corretti siano espressitracted e caricato nel corretto HDFS posizione
Strumenti come Talend e Datameer può essere utilizzato per la convalida della fase di staging dei dati.
Passaggio 2: convalida "MapReduce".
Il secondo passaggio consiste nella validazione di "MapReduce". In questa fase, il tester Big Data verifica la validazione della logica di business su ogni nodo e successivamente la valida dopo l'esecuzione su più nodi, assicurandosi che:
- Il processo MapReduce funziona correttamente
- Sui dati vengono implementate regole di aggregazione o segregazione dei dati
- Vengono generate coppie chiave-valore
- Validazione dei dati dopo il processo MapReduce
Passaggio 3: fase di convalida dell'output
La fase finale o terza del test Hadoop è il processo di convalida dell'output. I file di dati di output vengono generati e pronti per essere spostati in un EDW (Enterprise Data Warehouse) o in qualsiasi altro sistema in base alle esigenze.
Le attività della terza fase includono:
- Per verificare che le regole di trasformazione siano applicate correttamente
- Per verificare l'integrità dei dati e il corretto caricamento dei dati nel sistema di destinazione
- Per verificare che non vi sia corruzione dei dati confrontando i dati di destinazione con i dati del file system HDFS
ArchiTest di tecnologia
L'attenzione si sposta ora dai dati al cluster che li contiene.
Hadoop elabora volumi di dati molto elevati ed è estremamente dispendioso in termini di risorse. Pertanto, i test architetturali sono cruciali per garantire il successo del progetto Big Data. Un sistema progettato male o in modo improprio può portare a un degrado delle prestazioni e il sistema potrebbe non soddisfare i requisiti. Come minimo, performance e i servizi di test di failover devono essere eseguiti in un ambiente Hadoop.
I test delle prestazioni includono la verifica del tempo di completamento dei processi, dell'utilizzo della memoria, della velocità di trasmissione dei dati e di metriche di sistema simili. Lo scopo del servizio di test di failover è verificare che l'elaborazione dei dati avvenga senza interruzioni in caso di guasto dei nodi dati.
Test di Performance
I test di performance per i Big Data coprono tre aree principali.
- Acquisizione e velocità di elaborazione dei dati: In questa fase, il tester di Big Data verifica la velocità con cui il sistema può consumare dati da varie fonti di dati. Il test prevede l'identificazione del numero di messaggi che la coda può elaborare in un dato intervallo di tempo. Include anche la velocità con cui i dati possono essere inseriti nell'archivio dati sottostante, ad esempio la velocità di inserimento in un MongoDB and Cassandra Banca dati.
- Elaborazione dati: Consiste nel verificare la velocità di esecuzione delle query o dei job MapReduce. Include anche il test dell'elaborazione dei dati in isolamento, quando il data store sottostante viene popolato all'interno dei dataset. Ad esempio, eseguendo job MapReduce sull'HDFS sottostante.
- Prestazioni dei sottocomponenti: Questi sistemi sono composti da più componenti ed è essenziale testare ciascuno di essi singolarmente. Ad esempio, la velocità di indicizzazione e consumo dei messaggi, i processi MapReduce, le prestazioni delle query, la ricerca, ecc.
Approccio al test delle prestazioni
Il test delle prestazioni per un'applicazione Big Data implica la verifica di enormi volumi di dati strutturati e non strutturati e richiede un approccio di test specifico per gestire una mole di dati così ingente.
Il flusso di lavoro riportato di seguito mostra la sequenza seguita da un test di performance.
I test di performance vengono eseguiti in quest'ordine.
- Il processo inizia con la configurazione del cluster Big Data, che verrà testato per verificarne le prestazioni.
- Identificare e progettare i carichi di lavoro corrispondenti
- Preparazione dei singoli clienti (vengono creati script personalizzati)
- Eseguire il test e analizzare i risultati (se gli obiettivi non vengono raggiunti, ottimizzare il componente e rieseguire il test).
- Configurazione ottimale
Parametri per il test delle prestazioni
I vari parametri da verificare per i test di prestazione sono:
- Archivio dati: Come vengono memorizzati i dati nei diversi nodi
- Registri delle transazioni: Quanto può crescere il registro delle transazioni?
- Concorrenza: Quanti thread possono eseguire operazioni di scrittura e lettura?
- caching: Regola le impostazioni della cache "row cache" e "key cache".
- Timeout: Valori per il timeout di connessione, il timeout di query, ecc.
- Parametri JVM: Dimensione dell'heap, algoritmi di raccolta del garbage collector, ecc.
- Prestazioni di MapReduce: Ordina, unisce, ecc.
- Coda dei messaggi: Frequenza dei messaggi, dimensione, ecc.
Esigenze dell'ambiente di prova
Le esigenze dell'ambiente di test dipendono dal tipo di applicazione che si sta testando. Per il test di software Big Data, l'ambiente di test dovrebbe includere quanto segue.
- Deve disporre di spazio sufficiente per l'archiviazione e l'elaborazione di una grande quantità di dati.
- Dovrebbe avere un cluster con nodi e dati distribuiti
- Dovrebbe avere un utilizzo minimo di CPU e memoria per mantenere elevate le prestazioni e testare le prestazioni dei Big Data
Test dei Big Data vs. Test dei database tradizionali
La tabella seguente mette a confronto le due discipline, caratteristica per caratteristica.
| Proprietà a Confronto | Test tradizionali del database | Test sui Big Data |
|---|---|---|
| Dati | Il tester lavora con dati strutturati | Tester funziona sia con dati strutturati che non strutturati |
| Approccio alla prova | L'approccio al test è ben definito e testato nel tempo | L’approccio di test richiede sforzi mirati di ricerca e sviluppo |
| Strategia di test | Il tester ha la possibilità di scegliere tra la strategia di "campionamento" eseguita manualmente o la strategia di "verifica esaustiva" tramite uno strumento di automazione. | La strategia di "campionamento" nei Big Data è una sfida |
| Infrastruttura | Non richiede un ambiente di test speciale poiché la dimensione del file è limitata | Richiede un ambiente di test speciale a causa delle grandi dimensioni dei dati e dei file (HDFS) |
| Strumenti di convalida | Il tester utilizza macro basate su Excel o strumenti di automazione basati su interfaccia utente. | Non esistono strumenti definiti; la gamma è vastissima, dagli strumenti di programmazione come MapReduce a HiveQL. |
| Strumenti di test | Gli strumenti di test possono essere utilizzati con conoscenze operative di base e meno formazione | L'utilizzo di uno strumento di test richiede una serie specifica di competenze e formazione. Inoltre, questi strumenti sono ancora in una fase iniziale di sviluppo e nel tempo potrebbero essere introdotte nuove funzionalità. |
Strumenti utilizzati negli scenari Big Data
La tabella seguente raggruppa gli strumenti comuni per livello di cluster.
| Big Data Cluster | Strumenti per Big Data |
|---|---|
| NessunSQL: | CouchDB, Banche dati MongoDB, Cassandra, Redis, ZooKeeper, HBase |
| Riduci mappa: | Hadoop, Alveare, Maiale, Cascata, Oozie, Kafka, S4, MapR, Canale artificiale |
| Memoria su disco: | S3, HDFS (Hadoop Distributed File System) |
| Server: | Elastico, Heroku, Google App Engine, EC2 |
| Trattamento: | R, Yahoo! Tubi, Turk Meccanico, BigSheets, Datameer |
Sfide nei test sui Big Data
In quasi tutti i progetti Big Data si ripresentano tre ostacoli pratici.
- Automazione: Test di automazione Per i Big Data è necessaria una persona con competenze tecniche. Inoltre, gli strumenti automatizzati non sono in grado di gestire i problemi imprevisti che si presentano durante i test.
- Virtualizzazione: È una delle fasi integranti del processo di test. La latenza delle macchine virtuali crea problemi di temporizzazione nei test di performance in tempo reale dei Big Data. Inoltre, la gestione delle immagini nei Big Data è complessa.
- Ampio set di dati: Al volume corrispondono tre pressioni.
- È necessario verificare più dati e farlo più velocemente
- Necessità di automatizzare lo sforzo di test
- È necessario poter effettuare test su diverse piattaforme.
Sfide di test delle prestazioni
- Un insieme eterogeneo di tecnologie: Ciascun sottocomponente appartiene a una tecnologia diversa e richiede di essere testato singolarmente.
- Indisponibilità di strumenti specifici: Nessuno strumento singolo può eseguire i test end-to-end. Ad esempio, NoSQL potrebbe non essere adatto alle code di messaggi.
- Script di test: È necessario un elevato livello di programmazione per progettare scenari di test e casi di test.
- Ambiente di test: È necessario un ambiente di test specifico a causa delle grandi dimensioni dei dati.
- Soluzione di monitoraggio: Esistono soluzioni limitate in grado di monitorare l'intero ambiente.
- Soluzione diagnostica: È necessaria una soluzione personalizzata per analizzare in dettaglio le aree critiche delle prestazioni.



