Handleiding voor het testen van big data: Wat is het, strategie en hoe test je het?

⚡ Slimme samenvatting

Big Data Testing verifieert of een big data-applicatie terabytes aan data correct, snel en veilig verwerkt. Dit wordt bereikt door validatie van data-staging, MapReduce-validatie en uitvoervalidatie te combineren met architectuur- en prestatiecontroles binnen een gedistribueerd Hadoop-cluster.

  • 🔘 Kernfocus: De gegevensverwerking binnen het cluster wordt gevalideerd, niet de individuele kenmerken van het product.
  • ☑️ Drie fasen: Gegevensvoorbereiding, MapReduce en uitvoervalidatie vormen de basis van elke Hadoop-testcyclus.
  • Kwaliteit van de gegevens staat voorop: Conformiteit, nauwkeurigheid, duplicatie, consistentie, geldigheid en volledigheid worden gecontroleerd voordat de applicatie wordt getest.
  • 🧪 ArchiStructuur is belangrijk: De prestatie- en failoverdiensten bevestigen dat het cluster een uitval van een knooppunt overleeft zonder verlies van doorvoer.
  • Afstemmingsparameters: De opslagindeling, commit-logs, gelijktijdigheid, caching, time-outs en JVM-instellingen worden gemeten.
  • ⚠️ Bekende uitdagingen: Tekorten aan automatiseringsvaardigheden, latentie van virtuele machines en enorme datasets bemoeilijken het testen van big data.

Handleiding voor het testen van big data, inclusief strategie, Hadoop-testfasen en prestatietesten.

Wat is big data-testen?

Big Data Testing is een testproces voor een big data-applicatie om ervoor te zorgen dat alle functionaliteiten van de applicatie naar behoren werken. Het doel van Big Data Testing is om te garanderen dat het big data-systeem soepel en foutloos functioneert, met behoud van optimale prestaties en beveiliging.

Big data is een verzameling van grote datasets die niet met traditionele computertechnieken verwerkt kunnen worden. Het testen van deze datasets vereist diverse tools, technieken en frameworks. Big data heeft betrekking op het creëren, opslaan, ophalen en analyseren van data die opmerkelijk is qua volume, variëteit en snelheid. Je kunt hier meer over lezen. Big data, Hadoop en KaartVerminderen voordat je begint met testen.

Wat is een big data-teststrategie?

Het testen van een Big Data-applicatie draait meer om het verifiëren van de gegevensverwerking dan om het testen van de individuele functionaliteiten van het softwareproduct. Bij Big Data-testen zijn prestatie- en functionele testen cruciaal.

Bij een teststrategie voor big data controleren QA-engineers de succesvolle verwerking van terabytes aan data met behulp van een standaard cluster en andere ondersteunende componenten. Dit vereist een hoog niveau van testvaardigheden, aangezien de verwerking zeer snel verloopt. Verwerking kan van drie typen zijn:

  • Batchverwerking: Opgeslagen gegevens worden volgens een schema verwerkt, dus de tests zijn gericht op de voltooiing en nauwkeurigheid van de taken.
  • Realtime verwerking: Gegevens worden verwerkt bij binnenkomst, dus de tests richten zich op latentie en gegevensverlies.
  • Interactieve verwerking: Analisten stellen rechtstreeks vragen, dus tests richten zich op de reactietijd van ad-hocvragen.

Onderstaand diagram geeft een samenvatting van de strategie.

Diagram van de teststrategie voor big data, waarin de soorten gegevensverwerking worden weergegeven die door QA-engineers worden geverifieerd.

Daarnaast is datakwaliteit ook een belangrijke factor bij het testen van Hadoop. Voordat de applicatie getest wordt, is het noodzakelijk om de datakwaliteit te controleren. Dit moet worden beschouwd als onderdeel van het testen van de database. Het omvat het controleren van verschillende kenmerken zoals conformiteit, nauwkeurigheid, duplicatie, consistentie, validiteit, volledigheid van de data, enzovoort. In deze Hadoop-testhandleiding leren we vervolgens hoe we Hadoop-applicaties kunnen testen.

Hoe test je Hadoop-applicaties?

De volgende afbeelding geeft een overzicht op hoog niveau van de fasen in het testen van Big Data-applicaties.

Testfasen op hoog niveau voor Big Data-applicaties op een Hadoop-cluster

Big Data-testen, oftewel Hadoop-testen, kunnen grofweg in drie stappen worden verdeeld.

Stap 1: Validatie van gegevensstaging

De eerste stap in deze handleiding voor het testen van big data wordt de pre-Hadoop-fase genoemd en omvat procesvalidatie.

  • Gegevens uit diverse bronnen, zoals RDBMS, weblogs, sociale media, enz., moeten worden gevalideerd om ervoor te zorgen dat de juiste gegevens in het systeem worden ingevoerd.
  • Het vergelijken van brongegevens met de gegevens die in het Hadoop-systeem zijn gepusht om er zeker van te zijn dat ze overeenkomen
  • Controleer of de juiste gegevens aanwezig zijn.tracted en geladen in de juiste HDFS plaats

Tools zoals Talend En Datameer kan worden gebruikt voor de validatie van data-staging.

Stap 2: “MapReduce”-validatie

De tweede stap is een validatie van "MapReduce". In deze fase controleert de Big Data-tester de validatie van de bedrijfslogica op elke node en valideert deze vervolgens na uitvoering op meerdere nodes, waarbij wordt gewaarborgd dat:

  • Het MapReduce-proces werkt correct.
  • Op de gegevens worden regels voor gegevensaggregatie of -segregatie geïmplementeerd
  • Er worden sleutelwaardeparen gegenereerd
  • De gegevens valideren na het MapReduce-proces.

Stap 3: Outputvalidatiefase

De laatste of derde fase van Hadoop-testen is het outputvalidatieproces. De uitvoergegevensbestanden worden gegenereerd en zijn klaar om op basis van de vereisten te worden verplaatst naar een EDW (Enterprise Data Warehouse) of een ander systeem.

De activiteiten in de derde fase omvatten:

  • Om te controleren of de transformatieregels correct zijn toegepast
  • Om de gegevensintegriteit en het succesvol laden van gegevens in het doelsysteem te controleren
  • Om te controleren of er geen gegevensbeschadiging is door de doelgegevens te vergelijken met de HDFS-bestandssysteemgegevens

Architectuur testen

De aandacht verschuift nu van de data naar het cluster dat deze data bevat.

Hadoop verwerkt zeer grote hoeveelheden data en is zeer resource-intensief. Daarom is architectuurtesten cruciaal voor het succes van uw Big Data-project. Een slecht of onjuist ontworpen systeem kan leiden tot prestatievermindering en het systeem kan mogelijk niet aan de vereisten voldoen. Minimaal moet u het volgende doen: prestatie En failover-testservices moeten in een Hadoop-omgeving worden uitgevoerd.

Prestatietesten omvatten het testen van de voltooiingstijd van taken, het geheugengebruik, de gegevensdoorvoer en vergelijkbare systeemstatistieken. Het doel van de failover-testservice is om te verifiëren dat de gegevensverwerking naadloos verloopt in geval van uitval van dataknooppunten.

Performance Testing

Prestatietesten voor big data omvatten drie hoofdgebieden.

  • Gegevensinvoer en -doorvoer: In deze fase controleert de Big Data-tester hoe snel het systeem gegevens uit verschillende gegevensbronnen kan verwerken. Het testen omvat het vaststellen van het aantal berichten dat de wachtrij binnen een bepaalde tijd kan verwerken. Het omvat ook het meten van de snelheid waarmee gegevens in de onderliggende gegevensopslag kunnen worden ingevoegd, bijvoorbeeld de invoegsnelheid in een MongoDB en Cassandra database.
  • Gegevensverwerking: Het omvat het controleren van de snelheid waarmee de query's of MapReduce-taken worden uitgevoerd. Het omvat ook het testen van de gegevensverwerking in isolatie, wanneer de onderliggende gegevensopslag gevuld is met de datasets. Bijvoorbeeld door MapReduce-taken uit te voeren op de onderliggende HDFS.
  • Prestaties van de subcomponenten: Deze systemen bestaan ​​uit meerdere componenten en het is essentieel om elk van deze componenten afzonderlijk te testen. Denk bijvoorbeeld aan de snelheid waarmee berichten worden geïndexeerd en verwerkt, MapReduce-taken, queryprestaties, zoekfunctionaliteit, enzovoort.

Prestatietestbenadering

Prestatietesten voor een Big Data-applicatie omvatten het testen van enorme hoeveelheden gestructureerde en ongestructureerde data, en vereisen een specifieke testaanpak om dergelijke massale data te testen.

Onderstaande workflow toont de volgorde die een prestatietest doorloopt.

De workflow voor prestatietesten, van het opzetten van een Big Data-cluster tot de optimale configuratie, is hierbij essentieel.

De prestatietests worden in deze volgorde uitgevoerd.

  1. Het proces begint met het opzetten van het Big Data-cluster, dat vervolgens op prestaties getest zal worden.
  2. Identificeer en ontwerp overeenkomstige werklasten
  3. Bereid individuele klanten voor (er worden aangepaste scripts gemaakt)
  4. Voer de test uit en analyseer de resultaten (als de doelstellingen niet worden bereikt, pas dan het onderdeel aan en voer de test opnieuw uit).
  5. Optimale configuratie

Parameters voor prestatietests

De volgende parameters moeten worden gecontroleerd tijdens de prestatietests:

  • Gegevens opslag: Hoe gegevens in verschillende knooppunten worden opgeslagen
  • Commitlogboeken: Hoe groot het commit-logboek mag worden
  • gelijktijdigheid: Hoeveel threads kunnen schrijf- en leesbewerkingen uitvoeren?
  • caching: Pas de cache-instellingen voor 'rijcache' en 'sleutelcache' aan.
  • Time-outs: Waarden voor verbindingstime-out, querytime-out, enz.
  • JVM-parameters: Heapgrootte, GC-collectiealgoritmen, enz.
  • MapReduce-prestaties: Sorteren, samenvoegen, enz.
  • Berichtenwachtrij: Berichtfrequentie, -grootte, enz.

Testomgevingsbehoeften

De vereisten voor de testomgeving hangen af ​​van het type applicatie dat u test. Voor het testen van Big Data-software moet de testomgeving het volgende omvatten.

  • Het moet voldoende ruimte bieden voor de opslag en verwerking van grote hoeveelheden data.
  • Het zou een cluster moeten hebben met verspreide knooppunten en gegevens
  • Het moet een minimaal CPU- en geheugengebruik hebben om de prestaties hoog te houden en de Big Data-prestaties te testen

Big Data-testen versus traditionele databasetesten

De onderstaande tabel vergelijkt de twee disciplines eigenschap voor eigenschap.

Aanbod Traditioneel databasetesten Big Data-testen
Data Tester werkt met gestructureerde data. Tester werkt met zowel gestructureerde als ongestructureerde data
Testaanpak De testaanpak is goed gedefinieerd en beproefd De testaanpak vereist gerichte R&D-inspanningen
Strategie testen De tester heeft de keuze tussen een handmatige steekproefstrategie ("Sampling") of een automatiseringstool voor een grondige verificatie ("Exhaustive Verification"). De strategie voor het selecteren van steekproeven in big data is een uitdaging.
Infrastructuur Er is geen speciale testomgeving nodig omdat de bestandsgrootte beperkt is Het vereist een speciale testomgeving vanwege de grote gegevensgrootte en bestanden (HDFS)
Validatietools De tester maakt gebruik van Excel-macro's of automatiseringstools op basis van de gebruikersinterface. Er zijn geen vastgestelde tools; het aanbod is enorm, van programmeertools zoals MapReduce tot HiveQL.
testtools Testtools kunnen worden gebruikt met basiskennis van de bediening en weinig training. Het bedienen van een testtool vereist specifieke vaardigheden en training. Bovendien bevinden de tools zich nog in een beginstadium en kunnen er in de loop der tijd nieuwe functies aan worden toegevoegd.

Hulpmiddelen die worden gebruikt in big data-scenario's

De onderstaande tabel groepeert de meest gebruikte tools per clusterlaag.

Big data Cluster Hulpmiddelen voor grote gegevens
Geen SQL: CouchDB, Databases MongoDB, Cassandra, Redis, ZooKeeper, HBase
KaartVerminderen: Hadoop, BijenkorfPig, Cascading, Oozie, Kafka, S4, MapR, Flume
Opslag: S3, HDFS (Hadoop Distributed File System)
Servers: Elastisch, Heroku, Google App Engine, EC2
Verwerking: R, Yahoo! Leidingen, Mechanische Turk, BigSheets, Datameer

Uitdagingen bij het testen van big data

Drie praktische obstakels keren bij vrijwel elk Big Data-project terug.

  • Automatisering: Automatisering testen Voor Big Data is iemand met technische expertise nodig. Bovendien zijn geautomatiseerde tools niet geschikt om onverwachte problemen op te lossen die zich tijdens het testen voordoen.
  • Virtualisatie: Het is een van de essentiële testfasen. De latentie van virtuele machines zorgt voor timingproblemen bij realtime prestatietests van big data. Bovendien is het beheren van afbeeldingen in big data een lastige klus.
  • Grote dataset: Drie soorten druk hangen samen met het volume.
    • Er moeten meer gegevens worden geverifieerd en dit moet sneller gebeuren
    • Noodzaak om de testinspanning te automatiseren
    • Je moet in staat zijn om op verschillende platformen te testen.

Uitdagingen op het gebied van prestatietesten

  • Een gevarieerde reeks technologieën: Elk subonderdeel behoort tot een andere technologie en moet afzonderlijk worden getest.
  • Onbeschikbaarheid van specifieke gereedschappen: Geen enkele tool kan de volledige testfase uitvoeren. NoSQL is bijvoorbeeld mogelijk niet geschikt voor berichtenwachtrijen.
  • Testscripts: Voor het ontwerpen van testscenario's en testcases is een hoge mate van scripting nodig.
  • Test omgeving: Vanwege de grote hoeveelheid gegevens is een speciale testomgeving nodig.
  • Monitoringoplossing: Er bestaan ​​slechts beperkte oplossingen waarmee de gehele omgeving kan worden gemonitord.
  • Diagnostische oplossing: Een oplossing op maat is nodig om de knelpunten in de prestaties nauwkeurig te identificeren.

Veelgestelde vragen

De datakwaliteit wordt gecontroleerd als onderdeel van de databasetests, voordat de applicatietests beginnen. Testers controleren de conformiteit, nauwkeurigheid, duplicatie, consistentie, geldigheid en volledigheid, en zoeken naar null-waarden, coderingsproblemen en kolomverschuivingen.

AI genereert synthetische testdata die de productieomgeving nabootst zonder vertrouwelijke gegevens bloot te leggen, signaleert afwijkingen in de pipeline die door vaste regels over het hoofd worden gezien en geeft prioriteit aan welke validatiecontroles moeten worden uitgevoerd. Menselijke controle van de bedrijfslogica blijft echter essentieel.

Copilot en vergelijkbare agentische assistenten versnellen standaardcode: HiveQL-vergelijkingsquery's, PySpark Asserties en reconciliatiescripts. Voer de gegenereerde code eerst uit op een dataset waarvan bekend is dat deze correct is, omdat een plausibele query de verkeerde kolommen kan valideren.

Schemavalidatie bevestigt dat binnenkomende records de verwachte velden, gegevenstypen en null-waarden bevatten voordat ze HDFS of een NoSQL-database bereiken. Het opsporen van schema-afwijkingen tijdens de ingestie kost veel minder dan traclater beschadigde uitvoer.

Teams combineren een gemaskeerde subset die is geselecteerd uit de productieomgeving, gegenereerde records die extreme gevallen zoals null-waarden en uitschieters onder de loep nemen, en opnieuw afgespeelde historische datastromen. Alleen steekproeven nemen is riskant, omdat zeldzame records de oorzaak zijn van de fouten die de moeite waard zijn om te vinden.

ETL-testen valideren gestructureerde gegevensladingen naar een datawarehouse met gedefinieerde tools en voorspelbare volumes. Big Data-testen omvatten gestructureerde en ongestructureerde data op een gedistribueerd cluster, waarbij de validatie wordt uitgevoerd met MapReduce of HiveQL.

Meet de verwerkingssnelheid ten opzichte van de berichtgrootte, voeg een backlog toe om te bevestigen dat de wachtrij zich herstelt, en beëindig een knooppunt halverwege om te controleren of er niets verloren gaat. Vergelijk een getelde periode van brongebeurtenissen met de bestemming.

SQL en HiveQL, één taal voor MapReduce of Spark Werkervaring, kennis van HDFS en een NoSQL-database, plus scripten voor testomgevingen. Analytisch redeneren is belangrijker, omdat er geen kant-en-klare oplossing bestaat.

Vat dit bericht samen met: