Big-Data-Testing-Tutorial: Was ist Big Data? Strategie und wie testet man?
⚡ Intelligente Zusammenfassung
Big Data Testing überprüft, ob eine Big-Data-Anwendung Terabytes an Daten korrekt, schnell und sicher verarbeitet. Dabei werden Daten-Staging-Validierung, MapReduce-Validierung und Ausgabevalidierung mit Architektur- und Leistungsprüfungen in einem verteilten Hadoop-Cluster kombiniert.

Was ist Big-Data-Testing?
Big-Data-Testing ist ein Testprozess für Big-Data-Anwendungen, der sicherstellt, dass alle Funktionen wie erwartet funktionieren. Ziel des Big-Data-Testings ist es, einen reibungslosen und fehlerfreien Betrieb des Big-Data-Systems unter Einhaltung der Leistungs- und Sicherheitsstandards zu gewährleisten.
Big Data bezeichnet eine Sammlung großer Datensätze, die mit herkömmlichen Computertechniken nicht verarbeitet werden können. Die Analyse dieser Datensätze erfordert verschiedene Werkzeuge, Techniken und Frameworks. Big Data umfasst die Erstellung, Speicherung, den Abruf und die Analyse von Daten, die sich durch ihr enormes Volumen, ihre Vielfalt und ihre hohe Verarbeitungsgeschwindigkeit auszeichnen. Weitere Informationen finden Sie hier. Big Data, Hadoop und MapReduce bevor Sie mit dem Testen beginnen.
Was ist eine Big-Data-Teststrategie?
Das Testen einer Big-Data-Anwendung dient eher der Überprüfung ihrer Datenverarbeitung als der Prüfung einzelner Softwarefunktionen. Bei Big-Data-Tests sind Leistungs- und Funktionstests von zentraler Bedeutung.
Bei einer Big-Data-Teststrategie überprüfen QA-Ingenieure die erfolgreiche Verarbeitung von Terabytes an Daten mithilfe eines Standard-Clusters und weiterer unterstützender Komponenten. Da die Verarbeitung sehr schnell erfolgt, sind hohe Testkompetenzen erforderlich. Die Verarbeitung kann drei Arten umfassen:
- Stapelverarbeitung: Die gespeicherten Daten werden nach einem Zeitplan verarbeitet, sodass die Tests die Auftragsabwicklung und Genauigkeit sicherstellen.
- Echtzeitverarbeitung: Die Datensätze werden bei ihrer Ankunft verarbeitet, daher zielen die Tests auf Latenz und Datenverlust ab.
- Interaktive Verarbeitung: Analysten stellen direkte Abfragen, daher zielen die Tests auf die Antwortzeit von Ad-hoc-Abfragen ab.
Das folgende Diagramm fasst die Strategie zusammen.
Darüber hinaus ist die Datenqualität ein wichtiger Faktor beim Hadoop-Testing. Vor dem Testen der Anwendung muss die Datenqualität überprüft werden; dies sollte als Teil des Datenbanktests betrachtet werden. Dabei werden verschiedene Merkmale wie Konformität, Genauigkeit, Duplizierung, Konsistenz, Gültigkeit, Datenvollständigkeit usw. geprüft. Im nächsten Abschnitt dieses Hadoop-Testing-Tutorials lernen wir, wie man Hadoop-Anwendungen testet.
Wie man Hadoop-Anwendungen testet
Die folgende Abbildung gibt einen allgemeinen Überblick über die Phasen beim Testen von Big-Data-Anwendungen.
Big-Data-Testing oder Hadoop-Testing lässt sich grob in drei Schritte unterteilen.
Schritt 1: Daten-Staging-Validierung
Der erste Schritt in diesem Tutorial zum Testen von Big Data wird als Pre-Hadoop-Phase bezeichnet und beinhaltet die Prozessvalidierung.
- Daten aus verschiedenen Quellen wie relationalen Datenbanken, Weblogs, sozialen Medien usw. sollten validiert werden, um sicherzustellen, dass korrekte Daten in das System eingespielt werden.
- Vergleich der Quelldaten mit den in das Hadoop-System übertragenen Daten, um sicherzustellen, dass sie übereinstimmen
- Überprüfen Sie, ob die richtigen Daten vorhanden sind.tracund in das richtige Format geladen HDFS Standort
Tools wie Talend Datameer kann zur Validierung der Datenbereitstellung verwendet werden.
Schritt 2: „MapReduce“-Validierung
Der zweite Schritt ist die Validierung von „MapReduce“. In dieser Phase überprüft der Big-Data-Tester die Geschäftslogik auf jedem Knoten und validiert sie anschließend nach der Ausführung auf mehreren Knoten, um Folgendes sicherzustellen:
- Der MapReduce-Prozess funktioniert korrekt.
- Für die Daten werden Regeln zur Datenaggregation oder -trennung implementiert
- Es werden Schlüssel-Wert-Paare generiert
- Validierung der Daten nach dem MapReduce-Prozess
Schritt 3: Ausgabevalidierungsphase
Die letzte oder dritte Stufe des Hadoop-Tests ist der Ausgabevalidierungsprozess. Die Ausgabedatendateien werden generiert und können je nach Anforderung in ein EDW (Enterprise Data Warehouse) oder ein anderes System verschoben werden.
Zu den Aktivitäten in der dritten Phase gehören:
- Um zu überprüfen, ob die Transformationsregeln korrekt angewendet werden
- Zur Überprüfung der Datenintegrität und des erfolgreichen Datenladens in das Zielsystem
- Um zu überprüfen, dass keine Datenbeschädigung vorliegt, vergleichen Sie die Zieldaten mit den HDFS-Dateisystemdaten
ArchiStrukturprüfung
Die Aufmerksamkeit richtet sich nun von den Daten auf den Cluster, der sie enthält.
Hadoop verarbeitet sehr große Datenmengen und ist äußerst ressourcenintensiv. Daher sind Architekturtests entscheidend für den Erfolg Ihres Big-Data-Projekts. Ein schlecht oder unsachgemäß konzipiertes System kann zu Leistungseinbußen führen und die Anforderungen möglicherweise nicht erfüllen. Mindestens … Leistung und Failover-Testdienste sollten in einer Hadoop-Umgebung ausgeführt werden.
Die Leistungstests umfassen die Prüfung der Jobabschlusszeit, der Speicherauslastung, des Datendurchsatzes und ähnlicher Systemkennzahlen. Ziel des Failover-Tests ist es, sicherzustellen, dass die Datenverarbeitung im Falle des Ausfalls von Datenknoten reibungslos weiterläuft.
Performance Testing
Performance-Tests für Big Data umfassen drei Hauptbereiche.
- Datenerfassung und Datendurchsatz: In dieser Phase überprüft der Big-Data-Tester, wie schnell das System Daten aus verschiedenen Datenquellen verarbeiten kann. Der Test umfasst die Ermittlung der Anzahl der Nachrichten, die die Warteschlange in einem bestimmten Zeitraum verarbeiten kann. Er beinhaltet auch die Geschwindigkeit, mit der Daten in den zugrunde liegenden Datenspeicher eingefügt werden können, beispielsweise die Einfügerate in eine Datenbank. MongoDB und Cassandra Datenbank.
- Datenverarbeitung: Dabei wird die Ausführungsgeschwindigkeit von Abfragen oder MapReduce-Jobs überprüft. Außerdem wird die Datenverarbeitung isoliert getestet, wenn der zugrunde liegende Datenspeicher mit Datensätzen gefüllt ist. Beispielsweise durch Ausführen von MapReduce-Jobs auf dem zugrunde liegenden HDFS.
- Leistung der Teilkomponenten: Diese Systeme bestehen aus mehreren Komponenten, und es ist unerlässlich, jede dieser Komponenten einzeln zu testen. Beispielsweise die Geschwindigkeit der Nachrichtenindizierung und -verarbeitung, MapReduce-Jobs, Abfrageleistung, Suche usw.
Leistungstestansatz
Die Leistungsprüfung einer Big-Data-Anwendung umfasst das Testen riesiger Mengen strukturierter und unstrukturierter Daten und erfordert einen spezifischen Testansatz für die Prüfung solch massiver Datenmengen.
Der unten dargestellte Arbeitsablauf zeigt die Abfolge eines Leistungstests.
Die Leistungstests werden in dieser Reihenfolge durchgeführt.
- Der Prozess beginnt mit der Einrichtung des Big-Data-Clusters, dessen Leistungsfähigkeit getestet werden soll.
- Identifizieren und gestalten Sie entsprechende Workloads
- Vorbereitung einzelner Kunden (es werden individuelle Skripte erstellt)
- Führen Sie den Test durch und analysieren Sie die Ergebnisse (falls die Ziele nicht erreicht werden, optimieren Sie die Komponente und führen Sie den Test erneut aus).
- Optimale Konfiguration
Parameter für Leistungstests
Folgende Parameter müssen im Rahmen der Leistungstests überprüft werden:
- Datenspeicher: Wie Daten in verschiedenen Knoten gespeichert werden
- Commit-Protokolle: Wie groß darf das Commit-Log maximal werden?
- Gleichzeitigkeit: Wie viele Threads können Schreib- und Leseoperationen durchführen?
- Zwischenspeichern: Optimieren Sie die Cache-Einstellungen „Zeilencache“ und „Schlüsselcache“.
- Auszeiten: Werte für Verbindungstimeout, Abfragetimeout usw.
- JVM-Parameter: Heap-Größe, GC-Sammelalgorithmen usw.
- MapReduce-Leistung: Sortieren, Zusammenführen usw.
- Nachrichtenwarteschlange: Nachrichtenrate, Größe usw.
Anforderungen an die Testumgebung
Die Anforderungen an die Testumgebung hängen von der Art der zu testenden Anwendung ab. Für Big-Data-Softwaretests sollte die Testumgebung Folgendes umfassen.
- Es sollte ausreichend Speicherplatz für die Speicherung und Verarbeitung einer großen Datenmenge bieten.
- Es sollte einen Cluster mit verteilten Knoten und Daten haben
- Die CPU- und Speicherauslastung sollte minimal sein, um die Leistung hoch zu halten und die Leistung von Big Data zu testen
Big-Data-Testing vs. Traditionelles Datenbank-Testing
Die folgende Tabelle stellt die beiden Disziplinen Eigenschaft für Eigenschaft einander gegenüber.
| Eigenschaften im Vergleich | Traditionelle Datenbanktests | Big-Data-Tests |
|---|---|---|
| Datum | Der Tester arbeitet mit strukturierten Daten. | Tester arbeitet sowohl mit strukturierten als auch mit unstrukturierten Daten |
| Testansatz | Der Testansatz ist klar definiert und erprobt | Der Testansatz erfordert gezielte Forschungs- und Entwicklungsanstrengungen |
| Teststrategie | Der Tester hat die Wahl zwischen einer manuell durchgeführten Stichprobenstrategie und einer automatisierten Strategie zur vollständigen Verifizierung. | Die „Sampling“-Strategie im Bereich Big Data ist eine Herausforderung |
| Infrastruktur | Da die Dateigröße begrenzt ist, ist keine spezielle Testumgebung erforderlich | Aufgrund der großen Datenmenge und Dateien (HDFS) ist eine spezielle Testumgebung erforderlich. |
| Validierungswerkzeuge | Der Tester verwendet entweder Excel-basierte Makros oder UI-basierte Automatisierungstools. | Es gibt keine festgelegten Werkzeuge; die Bandbreite ist riesig, von Programmierwerkzeugen wie MapReduce bis hin zu HiveQL. |
| Testtools | Testwerkzeuge können mit grundlegenden Bedienungskenntnissen und geringem Schulungsaufwand verwendet werden. | Die Bedienung eines Testwerkzeugs erfordert spezifische Kenntnisse und Schulungen. Zudem befinden sich die Werkzeuge noch in der Entwicklungsphase und können im Laufe der Zeit neue Funktionen erhalten. |
Werkzeuge, die in Big-Data-Szenarien verwendet werden
Die folgende Tabelle gruppiert die gängigen Tools nach Cluster-Ebene.
| Big Data Cluster | Big-Data-Tools |
|---|---|
| NoSQL: | CouchDB, Datenbanken MongoDB, Cassandra, Redis, ZooKeeper, HBase |
| Karte verkleinern: | Hadoop, Hive, Schwein, Kaskadierend, Schleimig, Kafka, S4, MapR, Ücretsiz TJ ve AG casinolarda bonus kodlarını spin → |
| Lagerung: | S3, HDFS (Hadoop Distributed File System) |
| Server: | Elastisch, Heroku, Google App Engine, EC2 |
| Bearbeitung: | R, Yahoo! Rohre, Mechanical Turk, BigSheets, Datameer |
Herausforderungen beim Big-Data-Testen
Drei praktische Hindernisse treten bei fast jedem Big-Data-Projekt immer wieder auf.
- Automation: Automatisierungstests Für Big Data wird technisches Fachwissen benötigt. Zudem sind automatisierte Tools nicht in der Lage, unerwartete Probleme zu bewältigen, die während des Testens auftreten.
- Virtualisierung: Dies ist eine der wichtigsten Testphasen. Latenzzeiten virtueller Maschinen verursachen Timing-Probleme bei Echtzeit-Performance-Tests von Big Data. Auch die Verwaltung von Images in Big Data ist aufwendig.
- Großer Datensatz: Mit dem Volumen gehen drei Drücke einher.
- Es müssen mehr Daten überprüft werden, und zwar schneller
- Der Testaufwand muss automatisiert werden
- Es muss möglich sein, Tests auf verschiedenen Plattformen durchzuführen.
Herausforderungen bei Leistungstests
- Verschiedene Technologien: Jede Teilkomponente gehört zu einer anderen Technologie und muss separat getestet werden.
- Nichtverfügbarkeit bestimmter Werkzeuge: Kein einzelnes Tool kann End-to-End-Tests durchführen. Beispielsweise ist NoSQL möglicherweise nicht für Message Queues geeignet.
- Testskripte: Für die Entwicklung von Testszenarien und Testfällen ist ein hoher Grad an Skripting erforderlich.
- Test Umgebung: Aufgrund der großen Datenmenge ist eine spezielle Testumgebung erforderlich.
- Überwachungslösung: Es gibt nur wenige Lösungen, die die gesamte Umgebung überwachen können.
- Diagnoselösung: Um die Leistungsengpässe genauer zu untersuchen, ist eine maßgeschneiderte Lösung erforderlich.



