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.

  • 🔘 Focus principale: Viene convalidata l'elaborazione dei dati a livello di cluster, non le singole funzionalità del prodotto.
  • ☑️ Tre fasi: Preparazione dei dati, MapReduce e convalida dell'output per ogni ciclo di test Hadoop.
  • La qualità dei dati prima di tutto: Prima di procedere al test dell'applicazione, vengono verificati la conformità, l'accuratezza, la duplicazione, la coerenza, la validità e la completezza.
  • 🧪 ArchiLa struttura è importante: I servizi di prestazioni e di failover confermano che il cluster sopravvive al guasto di un nodo senza perdita di throughput.
  • Parametri di regolazione: Vengono misurati il ​​layout di archiviazione, i log di commit, la concorrenza, la cache, i timeout e le impostazioni della JVM.
  • ⚠️ Sfide note: Lacune nelle competenze di automazione, latenza delle macchine virtuali e enormi set di dati complicano il testing dei Big Data.

Tutorial sul test dei Big Data che illustra la strategia, le fasi di test di Hadoop e i test delle prestazioni.

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.

Diagramma della strategia di test dei Big Data che mostra le tipologie di elaborazione dei dati verificate dagli ingegneri QA.

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.

Fasi di alto livello per il test di applicazioni Big Data su un cluster Hadoop

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.

Flusso di lavoro per l'approccio ai test delle prestazioni, dalla configurazione del cluster Big Data alla configurazione ottimale.

I test di performance vengono eseguiti in quest'ordine.

  1. Il processo inizia con la configurazione del cluster Big Data, che verrà testato per verificarne le prestazioni.
  2. Identificare e progettare i carichi di lavoro corrispondenti
  3. Preparazione dei singoli clienti (vengono creati script personalizzati)
  4. Eseguire il test e analizzare i risultati (se gli obiettivi non vengono raggiunti, ottimizzare il componente e rieseguire il test).
  5. 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.

DOMANDE FREQUENTI

La qualità dei dati viene verificata durante i test del database, prima dell'inizio dei test dell'applicazione. I tester verificano la conformità, l'accuratezza, l'assenza di duplicazioni, la coerenza, la validità e la completezza dei dati, e ricercano valori nulli, problemi di codifica e spostamenti di colonna.

L'intelligenza artificiale genera dati di test sintetici che rispecchiano la produzione senza esporre dati privati, segnala anomalie nella pipeline che le regole fisse non rilevano e stabilisce le priorità per i controlli di validazione da eseguire. La revisione umana della logica aziendale rimane comunque essenziale.

Copilot e assistenti agentici simili velocizzano il codice ripetitivo: query di confronto HiveQL, PySpark Script di asserzione e riconciliazione. Eseguire prima il codice generato su un set di dati noto e valido, poiché una query plausibile potrebbe convalidare le colonne sbagliate.

La convalida dello schema conferma che i record in entrata contengono i campi, i tipi e la possibilità di valori nulli previsti prima di raggiungere HDFS o un archivio NoSQL. Individuare le derive dello schema durante l'ingestione costa molto meno rispetto a tracgestendo l'output corrotto in seguito.

I team combinano un sottoinsieme mascherato campionato dalla produzione, record generati che mettono alla prova casi limite come valori nulli e outlier, e flussi storici riprodotti. Il solo campionamento è rischioso, perché i record rari sono la causa dei guasti che vale la pena individuare.

I test ETL convalidano i caricamenti strutturati in un data warehouse con strumenti definiti e volumi prevedibili. I test sui Big Data coprono dati strutturati e non strutturati su un cluster distribuito, dove la convalida viene scritta in MapReduce o HiveQL.

Misura la velocità di ingestione rispetto alla dimensione del messaggio, inserisci un backlog per confermare il ripristino della coda e termina un nodo a metà flusso per verificare che non venga perso nulla. Confronta una finestra temporale conteggiata degli eventi sorgente con quelli di destinazione.

SQL e HiveQL, un linguaggio per MapReduce o Spark lavoro, conoscenza pratica di HDFS e di un database NoSQL, oltre a scripting per framework di test. Il ragionamento analitico è più importante, perché non esiste un singolo strumento end-to-end.

Riassumi questo post con: