Big Data-Tests
Big Data Testing ist ein Testprozess einer Big Data-Anwendung, um sicherzustellen, dass alle Funktionen einer Big Data-Anwendung wie erwartet funktionieren. Ziel von Big-Data-Tests ist es, sicherzustellen, dass das Big-Data-System reibungslos und fehlerfrei funktioniert und gleichzeitig die Leistung und Sicherheit erhalten bleibt.
Big Data ist eine Sammlung großer Datenmengen, die mit herkömmlichen Computertechniken nicht verarbeitet werden können. Das Testen dieser Datensätze umfasst verschiedene zu verarbeitende Tools, Techniken und Frameworks. Big Data bezieht sich auf die Erstellung, Speicherung, den Abruf und die Analyse von Daten, die in Bezug auf Volumen, Vielfalt und Geschwindigkeit bemerkenswert sind. Weitere Informationen zu Big Data, Hadoop und MapReduce finden Sie hier
In diesem Tutorial zum Testen von Big Data lernen Sie:
- Was ist eine Big Data-Teststrategie?
- So testen Sie Hadoop-Anwendungen
- Architekturtests
- Leistungstest
- Leistungsprüfungsansatz
- Parameter für Leistungstests
- Anforderungen an die Testumgebung
- Big Data Testing Vs. Traditionelles Testen von Datenbanken
- In Big Data-Szenarien verwendete Tools
- Herausforderungen beim Testen von Big Data
Was ist eine Big Data-Teststrategie?
Das Testen der Big Data-Anwendung ist eher eine Überprüfung der Datenverarbeitung als das Testen der einzelnen Funktionen des Softwareprodukts. Wenn es um Big-Data-Tests geht, sind Leistungs- und Funktionstests die Schlüssel.
Bei der Big-Data-Teststrategie überprüfen QS-Ingenieure die erfolgreiche Verarbeitung von Terabyte an Daten mithilfe von Commodity-Clustern und anderen unterstützenden Komponenten. Es erfordert ein hohes Maß an Testfähigkeiten, da die Verarbeitung sehr schnell ist. Es gibt drei Arten der Verarbeitung
Daneben ist die Datenqualität auch ein wichtiger Faktor bei Hadoop-Tests. Vor dem Testen der Anwendung muss die Qualität der Daten überprüft werden und sollte als Teil des Datenbanktests betrachtet werden. Dabei werden verschiedene Merkmale wie Konformität, Genauigkeit, Duplizierung, Konsistenz, Gültigkeit, Vollständigkeit der Daten usw. überprüft . In diesem Tutorial zum Testen von Hadoop erfahren Sie, wie Sie Hadoop-Anwendungen testen.
So testen Sie Hadoop-Anwendungen
Die folgende Abbildung gibt einen allgemeinen Überblick über die Phasen beim Testen von Big Data-Anwendungen
Big Data-Tests oder Hadoop-Tests können grob in drei Schritte unterteilt werden
Schritt 1: Validierung der Datenbereitstellung
Der erste Schritt in diesem Tutorial zum Testen von Big Data wird als Pre-Hadoop-Phase bezeichnet und umfasst die Prozessvalidierung.
- Daten aus verschiedenen Quellen wie RDBMS, Weblogs, sozialen Medien usw. sollten validiert werden, um sicherzustellen, dass korrekte Daten in das System abgerufen werden
- Vergleichen der Quelldaten mit den Daten, die in das Hadoop-System übertragen wurden, um sicherzustellen, dass sie übereinstimmen
- Stellen Sie sicher, dass die richtigen Daten extrahiert und in den richtigen HDFS-Speicherort geladen wurden
Tools wie Talend , Datameer, können zur Validierung des Daten-Staging verwendet werden
Schritt 2: "MapReduce" -Validierung
Der zweite Schritt ist eine Validierung von "MapReduce". In dieser Phase überprüft der Big Data-Tester die Geschäftslogikvalidierung auf jedem Knoten und validiert sie dann, nachdem er auf mehreren Knoten ausgeführt wurde, um sicherzustellen, dass die
- Der Map Reduce-Prozess funktioniert ordnungsgemäß
- Datenaggregations- oder Segregationsregeln sind für die Daten implementiert
- Schlüsselwertpaare werden generiert
- Validierung der Daten nach dem Map-Reduce-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 eine EDW (Enterprise Data Warehouse) oder ein anderes System verschoben werden.
Aktivitäten in der dritten Stufe umfassen
- Zur Überprüfung werden die Transformationsregeln korrekt angewendet
- Überprüfen der Datenintegrität und des erfolgreichen Ladens von Daten in das Zielsystem
- Um zu überprüfen, ob keine Datenbeschädigung vorliegt, vergleichen Sie die Zieldaten mit den HDFS-Dateisystemdaten
Architekturtests
Hadoop verarbeitet sehr große Datenmengen und ist sehr ressourcenintensiv. Daher sind Architekturtests entscheidend, um den Erfolg Ihres Big Data-Projekts sicherzustellen. Ein schlecht oder nicht ordnungsgemäß entworfenes System kann zu Leistungseinbußen führen, und das System kann die Anforderungen möglicherweise nicht erfüllen. Zumindest sollten Leistungs- und Failover-Testdienste in einer Hadoop-Umgebung durchgeführt werden.
Das Testen der Leistung umfasst das Testen der Auftragsabschlusszeit, der Speichernutzung, des Datendurchsatzes und ähnlicher Systemmetriken. Während das Motiv des Failover-Testdienstes darin besteht, zu überprüfen, ob die Datenverarbeitung bei Ausfall von Datenknoten nahtlos erfolgt
Leistungstest
Das Testen der Leistung für Big Data umfasst zwei Hauptaktionen
- Datenaufnahme und überall : In dieser Phase überprüft der Big Data-Tester, wie das schnelle System Daten aus verschiedenen Datenquellen verarbeiten kann. Beim Testen wird eine andere Nachricht identifiziert, die die Warteschlange in einem bestimmten Zeitraum verarbeiten kann. Dazu gehört auch, wie schnell Daten in den zugrunde liegenden Datenspeicher eingefügt werden können, z. B. die Einfügungsrate in eine Mongo- und Cassandra-Datenbank.
- Datenverarbeitung : Hierbei wird überprüft, mit welcher Geschwindigkeit die Abfragen oder Zuordnungsreduzierungsaufträge ausgeführt werden. Dazu gehört auch das isolierte Testen der Datenverarbeitung, wenn der zugrunde liegende Datenspeicher in den Datensätzen enthalten ist. Beispiel: Ausführen von Map Reduce-Jobs auf dem zugrunde liegenden HDFS
- Leistung von Unterkomponenten : Diese Systeme bestehen aus mehreren Komponenten, und es ist wichtig, jede dieser Komponenten einzeln zu testen. Zum Beispiel, wie schnell die Nachricht indiziert und konsumiert wird, MapReduce-Jobs, Abfrageleistung, Suche usw.
Leistungsprüfungsansatz
Leistungstests für Big-Data-Anwendungen umfassen das Testen großer Mengen strukturierter und unstrukturierter Daten und erfordern einen spezifischen Testansatz, um solche massiven Daten zu testen.
Leistungstests werden in dieser Reihenfolge ausgeführt
- Der Prozess beginnt mit der Einstellung des Big Data-Clusters, dessen Leistung getestet werden soll
- Identifizieren und entwerfen Sie entsprechende Workloads
- Bereiten Sie einzelne Clients vor (benutzerdefinierte Skripte werden erstellt)
- Führen Sie den Test aus und analysieren Sie das Ergebnis (Wenn die Ziele nicht erreicht werden, optimieren Sie die Komponente und führen Sie sie erneut aus.)
- Optimale Konfiguration
Parameter für Leistungstests
Verschiedene Parameter, die für Leistungstests überprüft werden müssen, sind:
- Datenspeicherung: Wie Daten in verschiedenen Knoten gespeichert werden
- Festschreibungsprotokolle: Wie groß das Festschreibungsprotokoll werden darf
- Parallelität: Wie viele Threads können Schreib- und Lesevorgänge ausführen?
- Caching: Passen Sie die Cache-Einstellungen "Zeilen-Cache" und "Schlüssel-Cache" an.
- Zeitüberschreitungen: Werte für Verbindungszeitüberschreitung, Abfragezeitüberschreitung usw.
- JVM-Parameter: Heap-Größe, GC-Erfassungsalgorithmen usw.
- Map reduziert die Leistung: Sortieren, Zusammenführen usw.
- Nachrichtenwarteschlange: Nachrichtenrate, -größe usw.
Anforderungen an die Testumgebung
Die Testumgebung muss von der Art der Anwendung abhängen, die Sie testen. Für Big-Data-Softwaretests sollte die Testumgebung Folgendes umfassen
- Es sollte genügend Speicherplatz für die Speicherung und Verarbeitung einer großen Datenmenge bieten
- Es sollte einen Cluster mit verteilten Knoten und Daten haben
- Es sollte eine minimale CPU- und Speicherauslastung aufweisen, um die Leistung hoch zu halten und die Big Data-Leistung zu testen
Big Data Testing Vs. Traditionelles Testen von Datenbanken
Eigenschaften |
Traditionelle Datenbanktests |
Big-Data-Tests |
---|---|---|
Daten |
|
|
Testansatz |
|
|
Teststrategie |
|
|
Infrastruktur |
|
|
Validierungswerkzeuge |
Der Tester verwendet entweder Excel-basierte Makros oder UI-basierte Automatisierungstools |
Keine definierten Tools, die Bandbreite reicht von Programmiertools wie MapReduce bis HIVEQL |
Testwerkzeuge |
Testwerkzeuge können mit grundlegenden Betriebskenntnissen und weniger Schulung verwendet werden. |
Für die Bedienung eines Testwerkzeugs sind bestimmte Fähigkeiten und Schulungen erforderlich. Außerdem befinden sich die Tools im Anfangsstadium und können im Laufe der Zeit neue Funktionen entwickeln. |
In Big Data-Szenarien verwendete Tools
Big Data Cluster |
Big Data Tools |
---|---|
NoSQL: |
|
Karte verkleinern: |
|
Lager: |
|
Server: |
|
wird bearbeitet |
|
Herausforderungen beim Testen von Big Data
- Automatisierung
Automatisierungstests für Big Data erfordern jemanden mit technischem Fachwissen. Außerdem sind automatisierte Tools nicht für unerwartete Probleme ausgestattet, die beim Testen auftreten
- Virtualisierung
Es ist eine der integralen Testphasen. Die Latenz der virtuellen Maschine verursacht Zeitprobleme beim Testen der Big Data-Leistung in Echtzeit. Auch das Verwalten von Bildern in Big Data ist mühsam.
- Großer Datensatz
- Sie müssen mehr Daten überprüfen und dies schneller tun
- Notwendigkeit, den Testaufwand zu automatisieren
- Müssen in der Lage sein, auf verschiedenen Plattformen zu testen
Herausforderungen bei Leistungstests
- Verschiedene Technologien : Jede Unterkomponente gehört zu einer anderen Technologie und muss isoliert getestet werden
- Nichtverfügbarkeit bestimmter Tools : Kein einzelnes Tool kann die End-to-End-Tests durchführen. Beispielsweise passt NoSQL möglicherweise nicht für Nachrichtenwarteschlangen
- Testskripte : Zum Entwerfen von Testszenarien und Testfällen ist ein hohes Maß an Skripten erforderlich
- Testumgebung : Aufgrund der großen Datenmenge ist eine spezielle Testumgebung erforderlich
- Überwachungslösung : Es gibt begrenzte Lösungen, die die gesamte Umgebung überwachen können
- Diagnoselösung : Es ist eine benutzerdefinierte Lösung erforderlich, um die Bereiche mit Leistungsengpässen aufzuspüren
Zusammenfassung
- Mit dem Fortschritt von Data Engineering und Datenanalyse sind Big-Data-Tests unvermeidlich.
- Die Big-Data-Verarbeitung kann Batch, Echtzeit oder Interaktiv sein
- Es gibt drei Phasen des Testens von Big Data-Anwendungen
- Validierung der Datenbereitstellung
- "MapReduce" -Validierung
- Ausgabevalidierungsphase
- Architekturtests sind die wichtige Phase des Big-Data-Tests, da schlecht konzipierte Systeme zu beispiellosen Fehlern und Leistungseinbußen führen können
- Zu den Leistungstests für Big Data gehört die Überprüfung
- Datendurchsatz
- Datenverarbeitung
- Leistung der Unterkomponenten
- Big-Data-Tests unterscheiden sich stark von herkömmlichen Datentests in Bezug auf Daten-, Infrastruktur- und Validierungstools
- Zu den Herausforderungen beim Testen von Big Data gehören Virtualisierung, Testautomatisierung und der Umgang mit großen Datenmengen. Das Testen der Leistung von Big Data-Anwendungen ist ebenfalls ein Problem.