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.

  • 🔘 Kernfokus: Die Datenverarbeitung wird clusterweit validiert, nicht die einzelnen Funktionen des Produkts.
  • ☑️ Drei Phasen: Datenbereitstellung, MapReduce und Ausgabevalidierung sind Bestandteil jedes Hadoop-Testzyklus.
  • Datenqualität hat oberste Priorität: Vor der Anwendungsprüfung werden Konformität, Genauigkeit, Duplizierung, Konsistenz, Gültigkeit und Vollständigkeit geprüft.
  • 🧪 ArchiDie Architektur ist wichtig: Leistungs- und Ausfallsicherungsdienste gewährleisten, dass der Cluster den Ausfall eines Knotens übersteht, ohne dass es zu Durchsatzeinbußen kommt.
  • Abstimmungsparameter: Speicherlayout, Commit-Logs, Parallelität, Caching, Timeouts und JVM-Einstellungen werden gemessen.
  • ⚠️ Bekannte Herausforderungen: Automatisierungslücken, Latenzzeiten virtueller Maschinen und riesige Datensätze erschweren das Testen von Big Data.

Tutorial zum Testen von Big Data: Strategie, Hadoop-Testphasen und Leistungstests

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.

Strategiediagramm für Big-Data-Tests, das die von den QA-Ingenieuren überprüften Arten der Datenverarbeitung zeigt.

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.

Hochrangige Phasen des Testens von Big-Data-Anwendungen auf einem Hadoop-Cluster

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.

Workflow für Leistungstests von der Einrichtung eines Big-Data-Clusters bis zur optimalen Konfiguration

Die Leistungstests werden in dieser Reihenfolge durchgeführt.

  1. Der Prozess beginnt mit der Einrichtung des Big-Data-Clusters, dessen Leistungsfähigkeit getestet werden soll.
  2. Identifizieren und gestalten Sie entsprechende Workloads
  3. Vorbereitung einzelner Kunden (es werden individuelle Skripte erstellt)
  4. 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).
  5. 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.

Häufig gestellte Fragen

Die Datenqualität wird im Rahmen des Datenbanktests geprüft, bevor die Anwendungstests beginnen. Die Tester überprüfen Konformität, Genauigkeit, Duplikate, Konsistenz, Gültigkeit und Vollständigkeit und suchen nach Nullwerten, Kodierungsproblemen und Spaltenverschiebungen.

KI generiert synthetische Testdaten, die die Produktionsumgebung widerspiegeln, ohne vertrauliche Daten preiszugeben, kennzeichnet Anomalien in der Pipeline, die von festgelegten Regeln übersehen werden, und priorisiert die auszuführenden Validierungsprüfungen. Die menschliche Überprüfung der Geschäftslogik bleibt unerlässlich.

Copilot und ähnliche agentenbasierte Assistenten beschleunigen Boilerplate-Code: HiveQL-Vergleichsabfragen, PySpark Zusicherungen und Abgleichsskripte. Führen Sie den generierten Code zunächst mit einem als korrekt bekannten Datensatz aus, da eine plausible Abfrage die falschen Spalten validieren kann.

Die Schema-Validierung stellt sicher, dass eingehende Datensätze die erwarteten Felder, Typen und Nullwerte aufweisen, bevor sie in HDFS oder einem NoSQL-Speicher landen. Das Erkennen von Schemaabweichungen bei der Datenaufnahme ist deutlich kostengünstiger als tracfehlerhafte Ausgabe später.

Die Teams kombinieren eine maskierte Stichprobe aus der Produktionsumgebung, generierte Datensätze, die Grenzfälle wie Nullwerte und Ausreißer hervorheben, und wiedergegebene historische Datenströme. Stichproben allein sind riskant, da seltene Datensätze die Fehler verursachen, die es wert sind, gefunden zu werden.

ETL-Tests validieren strukturierte Ladevorgänge in ein Data Warehouse mit definierten Tools und vorhersehbaren Datenmengen. Big-Data-Tests umfassen strukturierte und unstrukturierte Daten in einem verteilten Cluster, wobei die Validierung in MapReduce oder HiveQL erfolgt.

Messen Sie die Aufnahmerate im Verhältnis zur Nachrichtengröße, fügen Sie einen Rückstau ein, um die Wiederherstellung der Warteschlange zu überprüfen, und beenden Sie einen Knoten während des Datenflusses, um sicherzustellen, dass keine Daten verloren gehen. Vergleichen Sie ein gezähltes Zeitfenster der Quellereignisse mit dem Ziel.

SQL und HiveQL, eine Sprache für MapReduce oder Spark Berufserfahrung, praktische Kenntnisse in HDFS und NoSQL-Datenbanken sowie Skripting für Testumgebungen sind erforderlich. Analytisches Denken ist besonders wichtig, da es kein einzelnes Komplettlösungstool gibt.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: