ETL-Tests - Kurzanleitung
Die Daten in einem Data Warehouse-System werden mit einem ETL-Tool (Extrahieren, Transformieren, Laden) geladen. Wie der Name schon sagt, werden die folgenden drei Operationen ausgeführt:
Extrahiert die Daten aus Ihrem Transaktionssystem, bei dem es sich um eine Oracle-, Microsoft- oder eine andere relationale Datenbank handeln kann.
Transformiert die Daten durch Ausführen von Datenbereinigungsvorgängen und dann
Lädt die Daten in das OLAP Data Warehouse.
Sie können mit einem ETL-Tool auch Daten aus Flatfiles wie Tabellenkalkulationen und CSV-Dateien extrahieren und zur Datenanalyse und Berichterstellung in ein OLAP-Data Warehouse laden. Nehmen wir ein Beispiel, um es besser zu verstehen.
Beispiel
Nehmen wir an, es gibt ein produzierendes Unternehmen mit mehreren Abteilungen wie Vertrieb, Personalwesen, Materialmanagement, EWM usw. Alle diese Abteilungen verfügen über separate Datenbanken, in denen Informationen für ihre Arbeit verwaltet werden, und jede Datenbank verfügt über eine andere Technologie, Landschaft und Tabelle Namen, Spalten usw. Wenn das Unternehmen nun historische Daten analysieren und Berichte erstellen möchte, sollten alle Daten aus diesen Datenquellen extrahiert und in ein Data Warehouse geladen werden, um sie für analytische Arbeiten zu speichern.
Ein ETL-Tool extrahiert die Daten aus all diesen heterogenen Datenquellen, transformiert die Daten (z. B. Anwenden von Berechnungen, Verknüpfen von Feldern, Schlüsseln, Entfernen falscher Datenfelder usw.) und lädt sie in ein Data Warehouse. Später können Sie mithilfe verschiedener Business Intelligence-Tools (BI) aussagekräftige Berichte, Dashboards und Visualisierungen mithilfe dieser Daten erstellen.
Unterschied zwischen ETL- und BI-Tools
Ein ETL-Tool wird verwendet, um Daten aus verschiedenen Datenquellen zu extrahieren, die Daten zu transformieren und in ein DW-System zu laden. Ein BI-Tool wird jedoch verwendet, um interaktive und Ad-hoc-Berichte für Endbenutzer, ein Dashboard für die Geschäftsleitung und Datenvisualisierungen für monatliche, vierteljährliche und jährliche Vorstandssitzungen zu erstellen.
Zu den am häufigsten verwendeten ETL-Tools gehören: SAP BO Data Services (BODS), Informatica - Power Center, Microsoft - SSIS, ODI von Oracle Data Integrator, Talend Open Studio, Clover ETL Open Source usw.
Einige beliebte BI-Tools sind: SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI-Plattform, Tableau, Oracle Business Intelligence Enterprise Edition usw.
ETL-Prozess
Lassen Sie uns nun die wichtigsten Schritte eines ETL-Verfahrens etwas detaillierter diskutieren.
Daten extrahieren
Dabei werden die Daten aus verschiedenen heterogenen Datenquellen extrahiert. Die Datenextraktion aus einem Transaktionssystem variiert je nach Anforderung und verwendetem ETL-Tool. Dies geschieht normalerweise durch Ausführen geplanter Jobs außerhalb der Geschäftszeiten, z. B. nachts oder über das Wochenende.
Daten transformieren
Dabei werden die Daten in ein geeignetes Format umgewandelt, das problemlos in ein DW-System geladen werden kann. Die Datentransformation umfasst das Anwenden von Berechnungen, Verknüpfungen und das Definieren von Primär- und Fremdschlüsseln auf die Daten. Wenn Sie beispielsweise% des Gesamtumsatzes möchten, der nicht in der Datenbank enthalten ist, wenden Sie bei der Transformation die% -Formel an und laden die Daten. Wenn Sie den Vor- und Nachnamen der Benutzer in verschiedenen Spalten haben, können Sie vor dem Laden der Daten eine Verkettungsoperation anwenden. Einige Daten erfordern keine Transformation. solche Daten sind bekannt alsdirect move oder pass through data.
Die Datentransformation umfasst auch die Datenkorrektur und -bereinigung, das Entfernen falscher Daten, die unvollständige Datenbildung und das Beheben von Datenfehlern. Es enthält auch Datenintegrität und Formatierung inkompatibler Daten, bevor diese in ein DW-System geladen werden.
Laden der Daten in ein DW-System
Dabei werden die Daten zur analytischen Berichterstellung und Information in ein DW-System geladen. Das Zielsystem kann eine einfache abgegrenzte Flatfile oder ein Data Warehouse sein.
ETL-Tool-Funktion
Ein typisches ETL-Tool-basiertes Data Warehouse verwendet Staging-Bereich, Datenintegration und Zugriffsebenen, um seine Funktionen auszuführen. Es ist normalerweise eine 3-Schicht-Architektur.
Staging Layer - In der Staging-Schicht oder Staging-Datenbank werden die aus verschiedenen Quelldatensystemen extrahierten Daten gespeichert.
Data Integration Layer - Die Integrationsschicht transformiert die Daten aus der Staging-Schicht und verschiebt sie in eine Datenbank, in der die Daten in hierarchischen Gruppen angeordnet sind, die häufig als solche bezeichnet werden dimensionsund in facts und aggregate facts. Die Kombination von Fakten- und Dimensionstabellen in einem DW-System wird als a bezeichnetschema.
Access Layer - Die Zugriffsebene wird von Endbenutzern verwendet, um die Daten für analytische Berichte und Informationen abzurufen.
Die folgende Abbildung zeigt, wie die drei Ebenen miteinander interagieren.
ETL-Tests werden durchgeführt, bevor Daten in ein Produktions-Data-Warehouse-System verschoben werden. Es wird manchmal auch als bezeichnettable balancing oder production reconciliation. Es unterscheidet sich von Datenbanktests hinsichtlich seines Umfangs und der Schritte, die unternommen werden müssen, um dies abzuschließen.
Das Hauptziel der ETL-Tests besteht darin, Datenfehler und allgemeine Fehler zu identifizieren und zu mindern, die vor der Verarbeitung von Daten für die analytische Berichterstattung auftreten.
ETL-Test - Durchzuführende Aufgaben
Hier ist eine Liste der allgemeinen Aufgaben beim ETL-Testen -
- Verstehen Sie die Daten, die für die Berichterstellung verwendet werden sollen
- Überprüfen Sie das Datenmodell
- Zuordnung von Quelle zu Ziel
- Datenprüfung von Quelldaten
- Paket- und Schemaüberprüfung
- Datenüberprüfung im Zielsystem
- Überprüfung von Datentransformationsberechnungen und Aggregationsregeln
- Beispieldatenvergleich zwischen Quell- und Zielsystem
- Datenintegritäts- und Qualitätsprüfungen im Zielsystem
- Leistungstests an Daten
Sowohl ETL-Tests als auch Datenbanktests umfassen eine Datenvalidierung, sind jedoch nicht identisch. ETL-Tests werden normalerweise für Daten in einem Data Warehouse-System durchgeführt, während Datenbanktests üblicherweise für Transaktionssysteme durchgeführt werden, bei denen die Daten aus verschiedenen Anwendungen in die Transaktionsdatenbank stammen.
Hier haben wir die Hauptunterschiede zwischen ETL-Tests und Datenbanktests hervorgehoben.
ETL-Tests
ETL-Tests umfassen die folgenden Vorgänge:
Validierung der Datenverschiebung von der Quelle zum Zielsystem.
Überprüfung der Datenanzahl im Quell- und Zielsystem.
Überprüfen der Datenextraktion, -transformation gemäß Anforderung und Erwartung.
Überprüfen, ob Tabellenbeziehungen - Verknüpfungen und Schlüssel - während der Transformation erhalten bleiben.
Zu den gängigen ETL-Testwerkzeugen gehören: QuerySurge, Informatica, usw.
Datenbanktests
Beim Testen von Datenbanken wird mehr Wert auf Datengenauigkeit, Richtigkeit der Daten und gültige Werte gelegt. Es beinhaltet die folgenden Operationen -
Überprüfen, ob Primär- und Fremdschlüssel verwaltet werden.
Überprüfen, ob die Spalten in einer Tabelle gültige Datenwerte haben.
Überprüfen der Datengenauigkeit in Spalten. Example - Die Spalte Anzahl der Monate sollte keinen Wert größer als 12 haben.
Überprüfen fehlender Daten in Spalten. Überprüfen Sie, ob es Nullspalten gibt, die tatsächlich einen gültigen Wert haben sollten.
Zu den gängigen Tools zum Testen von Datenbanken gehören: Selenium, QTP, usw.
In der folgenden Tabelle sind die wichtigsten Funktionen von Datenbank- und ETL-Tests sowie deren Vergleich aufgeführt.
Funktion | Datenbanktests | ETL-Tests |
---|---|---|
Hauptziel | Datenvalidierung und -integration | Datenextraktion, -transformation und -laden für BI-Reporting |
Anwendbares System | Transaktionssystem, in dem der Geschäftsfluss stattfindet | System mit historischen Daten und nicht in der Business Flow-Umgebung |
Gängige Werkzeuge | QTP, Selen usw. | QuerySurge, Informatica usw. |
Geschäftsanforderungen | Es wird verwendet, um Daten aus mehreren Anwendungen zu integrieren. | Es wird für analytische Berichte, Informationen und Prognosen verwendet. |
Modellieren | ER-Methode | Mehrdimensional |
Datenbanktyp | Es wird normalerweise in OLTP-Systemen verwendet | Es wird auf OLAP-Systeme angewendet |
Datentyp | Normalisierte Daten mit mehr Verknüpfungen | De-normalisierte Daten mit weniger Verknüpfungen, mehr Indizes und Aggregationen. |
Die Kategorisierung der ETL-Tests basiert auf den Test- und Berichtszielen. Die Testkategorien variieren gemäß den Organisationsstandards und hängen auch von den Kundenanforderungen ab. Im Allgemeinen werden ETL-Tests anhand der folgenden Punkte kategorisiert:
Source to Target Count Testing - Dabei wird die Anzahl der Datensätze im Quell- und im Zielsystem abgeglichen.
Source to Target Data Testing- Es beinhaltet eine Datenvalidierung zwischen dem Quell- und dem Zielsystem. Dazu gehören auch die Datenintegration und die Überprüfung des Schwellenwerts sowie die Überprüfung doppelter Daten im Zielsystem.
Data Mapping or Transformation Testing- Es bestätigt die Zuordnung von Objekten im Quell- und Zielsystem. Dazu gehört auch die Überprüfung der Funktionalität von Daten im Zielsystem.
End-User Testing- Es umfasst das Generieren von Berichten für Endbenutzer, um zu überprüfen, ob die Daten in den Berichten den Erwartungen entsprechen. Dabei werden Abweichungen in Berichten festgestellt und die Daten im Zielsystem auf Berichtsvalidierung überprüft.
Retesting - Es geht darum, die Fehler und Defekte in den Daten im Zielsystem zu beheben und die Berichte zur Datenvalidierung erneut auszuführen.
System Integration Testing- Dabei werden alle einzelnen Systeme getestet und später die Ergebnisse kombiniert, um festzustellen, ob Abweichungen vorliegen. Hierfür können drei Ansätze verwendet werden: Top-Down, Bottom-Up und Hybrid.
Basierend auf der Struktur eines Data Warehouse-Systems können ETL-Tests (unabhängig vom verwendeten Tool) in die folgenden Kategorien unterteilt werden:
Neue DW-Systemtests
Bei dieser Art von Tests wird ein neues DW-System erstellt und überprüft. Dateneingaben werden von Kunden / Endbenutzern sowie aus verschiedenen Datenquellen vorgenommen und ein neues Data Warehouse erstellt. Später werden die Daten im neuen System mithilfe von ETL-Tools überprüft.
Migrationstests
Bei Migrationstests verfügen Kunden über ein vorhandenes Data Warehouse und eine ETL. Sie suchen jedoch nach einem neuen ETL-Tool, um die Effizienz zu verbessern. Dabei werden Daten aus dem vorhandenen System mit einem neuen ETL-Tool migriert.
Testen ändern
Beim Ändern von Tests werden einem vorhandenen System neue Daten aus verschiedenen Datenquellen hinzugefügt. Kunden können auch die vorhandenen Regeln für ETL ändern oder eine neue Regel hinzufügen.
Berichtstests
Beim Testen von Berichten werden Berichte zur Datenvalidierung erstellt. Berichte sind die endgültige Ausgabe eines DW-Systems. Berichte werden anhand ihres Layouts, der Daten im Bericht und der berechneten Werte getestet.
ETL-Tests unterscheiden sich von Datenbanktests oder anderen herkömmlichen Tests. Bei der Durchführung von ETL-Tests müssen möglicherweise unterschiedliche Herausforderungen bewältigt werden. Hier haben wir einige allgemeine Herausforderungen aufgelistet -
Datenverlust während des ETL-Prozesses.
Falsche, unvollständige oder doppelte Daten.
Das DW-System enthält historische Daten, sodass das Datenvolumen zu groß und äußerst komplex ist, um ETL-Tests im Zielsystem durchzuführen.
ETL-Tester erhalten normalerweise keinen Zugriff, um Jobpläne im ETL-Tool anzuzeigen. Sie haben kaum Zugriff auf BI Reporting-Tools, um das endgültige Layout von Berichten und Daten in den Berichten anzuzeigen.
Das Generieren und Erstellen von Testfällen ist schwierig, da das Datenvolumen zu hoch und komplex ist.
ETL-Tester haben normalerweise keine Vorstellung von den Anforderungen an Endbenutzerberichte und dem Geschäftsfluss der Informationen.
ETL-Tests umfassen verschiedene komplexe SQL-Konzepte zur Datenvalidierung im Zielsystem.
Manchmal erhalten die Tester keine Informationen zur Zuordnung von Quelle zu Ziel.
Instabile Testumgebungen verzögern die Entwicklung und das Testen eines Prozesses.
Ein ETL-Tester ist in erster Linie für die Validierung der Datenquellen, die Extraktion von Daten, die Anwendung der Transformationslogik und das Laden der Daten in die Zieltabellen verantwortlich.
Die Hauptaufgaben eines ETL-Testers sind unten aufgeführt.
Überprüfen Sie die Tabellen im Quellsystem
Es beinhaltet die folgenden Operationen -
- Zählprüfung
- Stimmen Sie Datensätze mit den Quelldaten ab
- Datentypprüfung
- Stellen Sie sicher, dass keine Spam-Daten geladen sind
- Entfernen Sie doppelte Daten
- Überprüfen Sie, ob alle Schlüssel vorhanden sind
Transformationslogik anwenden
Die Transformationslogik wird vor dem Laden der Daten angewendet. Es beinhaltet die folgenden Operationen -
Die Überprüfung des Datenschwellenwerts sollte beispielsweise nicht älter als 100 sein.
Überprüfung der Datensatzanzahl vor und nach der angewendeten Transformationslogik.
Datenflussvalidierung vom Staging-Bereich zu den Zwischentabellen.
Ersatzschlüsselprüfung.
Laden von Daten
Daten werden aus dem Staging-Bereich in das Zielsystem geladen. Es beinhaltet die folgenden Operationen -
Datensatzzählprüfung von der Zwischentabelle zum Zielsystem.
Stellen Sie sicher, dass die Schlüsselfelddaten nicht fehlen oder Null sind.
Überprüfen Sie, ob die Aggregatwerte und berechneten Kennzahlen in die Faktentabellen geladen sind.
Überprüfen Sie die Modellierungsansichten anhand der Zieltabellen.
Überprüfen Sie, ob CDC auf die inkrementelle Lasttabelle angewendet wurde.
Datenprüfung in Dimensionstabelle und Verlaufstabellenprüfung.
Überprüfen Sie die BI-Berichte anhand der geladenen Fakten- und Dimensionstabelle und gemäß den erwarteten Ergebnissen.
Testen der ETL-Tools
ETL-Tester müssen auch die Tools und die Testfälle testen. Es beinhaltet die folgenden Operationen -
- Testen Sie das ETL-Tool und seine Funktionen
- Testen Sie das ETL Data Warehouse-System
- Erstellen, entwerfen und führen Sie die Testpläne und Testfälle aus.
- Testen Sie die Flatfile-Datenübertragungen.
Es ist wichtig, dass Sie die richtige ETL-Testtechnik definieren, bevor Sie mit dem Testprozess beginnen. Sie sollten von allen Beteiligten akzeptiert werden und sicherstellen, dass eine korrekte Technik für die Durchführung von ETL-Tests ausgewählt wird. Diese Technik sollte dem Testteam bekannt sein und die Schritte des Testprozesses kennen.
Es gibt verschiedene Arten von Testtechniken, die verwendet werden können. In diesem Kapitel werden wir die Testtechniken kurz diskutieren.
Produktionsvalidierungstests
Um analytische Berichte und Analysen durchführen zu können, sollten die Daten in Ihrer Produktion korrekt sein. Diese Prüfung wird an den Daten durchgeführt, die in das Produktionssystem verschoben werden. Es beinhaltet die Datenvalidierung im Produktionssystem und den Vergleich mit den Quelldaten.
Testen der Anzahl von Quelle zu Ziel
Diese Art des Testens wird durchgeführt, wenn der Tester weniger Zeit hat, um den Testvorgang durchzuführen. Dabei wird die Anzahl der Daten im Quell- und im Zielsystem überprüft. Es geht nicht darum, die Datenwerte im Zielsystem zu überprüfen. Es geht auch nicht darum, ob die Daten nach der Zuordnung der Daten in aufsteigender oder absteigender Reihenfolge vorliegen.
Testen von Daten von Quelle zu Ziel
Bei dieser Art von Test validiert ein Tester Datenwerte von der Quelle zum Zielsystem. Nach der Transformation werden die Datenwerte im Quellsystem und die entsprechenden Werte im Zielsystem überprüft. Diese Art des Testens ist zeitaufwändig und wird normalerweise in Finanz- und Bankprojekten durchgeführt.
Testen der Datenintegration / Überprüfung des Schwellenwerts
Bei dieser Art von Tests überprüft ein Tester den Datenbereich. Alle Schwellenwerte im Zielsystem werden überprüft, wenn sie dem erwarteten Ergebnis entsprechen. Dazu gehört auch die Integration von Daten aus mehreren Quellsystemen nach der Transformation und dem Laden in das Zielsystem.
Example - Das Altersattribut sollte keinen Wert größer als 100 haben. In der Datumsspalte TT / MM / JJ sollte das Monatsfeld keinen Wert größer als 12 haben.
Testen der Anwendungsmigration
Das Testen der Anwendungsmigration wird normalerweise automatisch durchgeführt, wenn Sie von einer alten Anwendung zu einem neuen Anwendungssystem wechseln. Dieser Test spart viel Zeit. Es wird geprüft, ob die aus einer alten Anwendung extrahierten Daten mit den Daten im neuen Anwendungssystem übereinstimmen.
Datenprüfung und Einschränkungstests
Es umfasst die Durchführung verschiedener Überprüfungen wie Datentypprüfung, Datenlängenprüfung und Indexprüfung. Hier führt ein Testingenieur die folgenden Szenarien aus: Primärschlüssel, Fremdschlüssel, NICHT NULL, NULL und EINZIGARTIG.
Testen der doppelten Datenprüfung
Bei diesem Test wird im Zielsystem nach doppelten Daten gesucht. Wenn das Zielsystem eine große Datenmenge enthält, sind möglicherweise doppelte Daten im Produktionssystem vorhanden, die zu falschen Daten in Analyseberichten führen können.
Doppelte Werte können mit einer SQL-Anweisung wie - überprüft werden.
Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
FROM Customer
GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;
Doppelte Daten werden aus folgenden Gründen im Zielsystem angezeigt:
- Wenn kein Primärschlüssel definiert ist, können doppelte Werte auftreten.
- Aufgrund falscher Kartierung oder Umweltproblemen.
- Manuelle Fehler beim Übertragen von Daten von der Quelle zum Zielsystem.
Testen der Datenumwandlung
Datenumwandlungstests werden nicht durch Ausführen einer einzelnen SQL-Anweisung durchgeführt. Dies ist zeitaufwändig und umfasst das Ausführen mehrerer SQL-Abfragen für jede Zeile, um die Transformationsregeln zu überprüfen. Der Tester muss SQL-Abfragen für jede Zeile ausführen und dann die Ausgabe mit den Zieldaten vergleichen.
Testen der Datenqualität
Das Testen der Datenqualität umfasst das Durchführen einer Nummernprüfung, einer Datumsprüfung, einer Nullprüfung, einer Genauigkeitsprüfung usw. Ein Tester führt eine Prüfung durch Syntax Test ungültige Zeichen, falsche Groß- / Kleinschreibung usw. zu melden und Reference Tests um zu überprüfen, ob die Daten dem Datenmodell entsprechen.
Inkrementelle Tests
Inkrementelle Tests werden durchgeführt, um zu überprüfen, ob Insert- und Update-Anweisungen gemäß dem erwarteten Ergebnis ausgeführt werden. Dieser Test wird Schritt für Schritt mit alten und neuen Daten durchgeführt.
Regressionstests
Wenn wir Änderungen an Datentransformations- und Aggregationsregeln vornehmen, um neue Funktionen hinzuzufügen, die dem Tester auch helfen, neue Fehler zu finden, wird dies als Regressionstest bezeichnet. Die Fehler in Daten, die beim Regressionstest auftreten, werden als Regression bezeichnet.
Erneutes Testen
Wenn Sie die Tests nach dem Korrigieren der Codes ausführen, wird dies als erneutes Testen bezeichnet.
Testen der Systemintegration
Beim Testen der Systemintegration werden die Komponenten eines Systems einzeln getestet und später die Module integriert. Es gibt drei Möglichkeiten für eine Systemintegration: Top-Down, Bottom-Up und Hybrid.
Navigationstests
Navigationstests werden auch als Testen des Frontends des Systems bezeichnet. Es umfasst das Testen der Sichtweise des Endbenutzers durch Überprüfen aller Aspekte des Front-End-Berichts - einschließlich Daten in verschiedenen Feldern, Berechnungen und Aggregaten usw.
ETL-Tests umfassen alle Schritte eines ETL-Lebenszyklus. Es beginnt mit dem Verständnis der Geschäftsanforderungen bis zur Erstellung eines zusammenfassenden Berichts.
Die allgemeinen Schritte unter ETL-Testlebenszyklus sind nachstehend aufgeführt:
Die Geschäftsanforderungen verstehen.
Validierung der Geschäftsanforderung.
Die Testschätzung wird verwendet, um die geschätzte Zeit zum Ausführen von Testfällen und zum Ausfüllen des zusammenfassenden Berichts bereitzustellen.
Bei der Testplanung wird die Testtechnik anhand der Eingaben gemäß den Geschäftsanforderungen ermittelt.
Erstellen von Testszenarien und Testfällen.
Sobald die Testfälle fertig und genehmigt sind, besteht der nächste Schritt darin, eine Überprüfung vor der Ausführung durchzuführen.
Führen Sie alle Testfälle aus.
Der letzte Schritt besteht darin, einen vollständigen zusammenfassenden Bericht zu erstellen und einen Abschlussprozess einzureichen.
ETL-Testszenarien werden verwendet, um einen ETL-Testprozess zu validieren. In der folgenden Tabelle werden einige der häufigsten Szenarien und Testfälle erläutert, die von ETL-Testern verwendet werden.
Testszenarien | Testfälle |
---|---|
Strukturvalidierung |
Dabei werden die Quell- und die Zieltabellenstruktur gemäß dem Zuordnungsdokument überprüft. Der Datentyp sollte im Quell- und im Zielsystem validiert werden. Die Länge der Datentypen im Quell- und Zielsystem sollte gleich sein. Datenfeldtypen und ihr Format sollten im Quell- und im Zielsystem identisch sein. Überprüfen der Spaltennamen im Zielsystem. |
Zuordnungsdokument validieren |
Dabei wird das Zuordnungsdokument validiert, um sicherzustellen, dass alle Informationen bereitgestellt wurden. Das Zuordnungsdokument sollte über ein Änderungsprotokoll verfügen, Datentypen, Länge, Transformationsregeln usw. beibehalten. |
Einschränkungen validieren |
Dazu müssen die Einschränkungen überprüft und sichergestellt werden, dass sie auf die erwarteten Tabellen angewendet werden. |
Datenkonsistenzprüfung |
Dabei wird der Missbrauch von Integritätsbeschränkungen wie Fremdschlüssel überprüft. Die Länge und der Datentyp eines Attributs können in verschiedenen Tabellen variieren, obwohl ihre Definition auf der semantischen Ebene gleich bleibt. |
Validierung der Datenvollständigkeit |
Dabei wird überprüft, ob alle Daten vom Quellsystem in das Zielsystem geladen wurden. Zählen der Anzahl der Datensätze im Quell- und im Zielsystem. Grenzwertanalyse. Überprüfen der eindeutigen Werte von Primärschlüsseln. |
Validierung der Datenkorrektheit |
Dabei werden die Datenwerte im Zielsystem überprüft. Falsch geschriebene oder ungenaue Daten finden Sie in der Tabelle. Null, nicht eindeutige Daten werden gespeichert, wenn Sie die Integritätsbeschränkung zum Zeitpunkt des Imports deaktivieren. |
Validierung der Datentransformation |
Dabei wird eine Tabelle mit Szenarien für Eingabewerte und erwartete Ergebnisse erstellt und anschließend mit den Endbenutzern validiert. Überprüfen der Eltern-Kind-Beziehung in den Daten durch Erstellen von Szenarien. Verwenden von Datenprofilen zum Vergleichen des Wertebereichs in jedem Feld. Überprüfen, ob die Datentypen im Warehouse mit den im Datenmodell angegebenen übereinstimmen. |
Validierung der Datenqualität |
Es umfasst die Durchführung von Nummernprüfungen, Datumsprüfungen, Genauigkeitsprüfungen, Datenprüfungen, Nullprüfungen usw. Example - Das Datumsformat sollte für alle Werte gleich sein. |
Null-Validierung |
Dabei werden die Nullwerte überprüft, bei denen für dieses Feld Not Null angegeben ist. |
Doppelte Validierung |
Dabei werden doppelte Werte im Zielsystem überprüft, wenn Daten aus mehreren Spalten des Quellsystems stammen. Überprüfen von Primärschlüsseln und anderen Spalten, wenn gemäß den Geschäftsanforderungen doppelte Werte vorhanden sind. |
Überprüfung der Datumsüberprüfung |
Überprüfen des Datumsfelds für verschiedene Aktionen, die im ETL-Prozess ausgeführt werden. Häufige Testfälle zur Durchführung der Datumsüberprüfung -
|
Minus-Abfrage zur vollständigen Datenüberprüfung |
Dabei wird der vollständige Datensatz in der Quell- und der Zieltabelle mithilfe der Minus-Abfrage überprüft.
|
Andere Testszenarien |
Andere Testszenarien können darin bestehen, zu überprüfen, ob beim Extraktionsprozess keine doppelten Daten aus dem Quellsystem extrahiert wurden. Das Testteam führt eine Liste der SQL-Anweisungen, die ausgeführt werden, um zu überprüfen, ob keine doppelten Daten aus den Quellsystemen extrahiert wurden. |
Datenreinigung |
Unerwünschte Daten sollten entfernt werden, bevor die Daten in den Staging-Bereich geladen werden. |
Die ETL-Leistungsoptimierung wird verwendet, um sicherzustellen, dass ein ETL-System eine erwartete Last von mehreren Benutzern und Transaktionen verarbeiten kann. Die Leistungsoptimierung umfasst normalerweise die serverseitige Arbeitslast auf dem ETL-System. Es wird verwendet, um die Serverantwort in einer Mehrbenutzerumgebung zu testen und Engpässe zu finden. Diese finden Sie in Quell- und Zielsystemen, in der Zuordnung von Systemen, in Konfigurationen wie Sitzungsverwaltungseigenschaften usw.
Wie führe ich eine Leistungsoptimierung für ETL-Tests durch?
Führen Sie die folgenden Schritte aus, um die Leistungsoptimierung für ETL-Tests durchzuführen.
Step 1 - Finden Sie die Last, die in der Produktion umgewandelt wird.
Step 2 - Erstellen Sie neue Daten derselben Last oder verschieben Sie sie von den Produktionsdaten auf Ihren lokalen Leistungsserver.
Step 3 - Deaktivieren Sie die ETL, bis Sie die erforderliche Last generiert haben.
Step 4 - Nehmen Sie die Anzahl der benötigten Daten aus den Tabellen der Datenbank.
Step 5- Notieren Sie sich den letzten Lauf der ETL und aktivieren Sie die ETL, damit sie genug Stress bekommt, um die gesamte erzeugte Last zu transformieren. Starte es
Step 6 - Nachdem die ETL ihren Lauf abgeschlossen hat, zählen Sie die erstellten Daten.
Leistungsindikatoren
- Finden Sie die Gesamtzeit heraus, die zum Transformieren der Last benötigt wurde.
- Finden Sie heraus, ob sich die Leistungszeit verbessert oder verringert hat.
- Überprüfen Sie, ob die gesamte erwartete Last extrahiert und übertragen wurde.
Das Ziel von ETL-Tests ist es, glaubwürdige Daten zu erhalten. Die Glaubwürdigkeit der Daten kann erreicht werden, indem der Testzyklus effektiver gestaltet wird.
Eine umfassende Teststrategie ist die Einrichtung eines effektiven Testzyklus. Die Teststrategie sollte die Testplanung für jede Phase des ETL-Prozesses abdecken, jedes Mal, wenn sich die Daten verschieben, und die Verantwortlichkeiten der einzelnen Stakeholder angeben, z. B. Geschäftsanalysten, Infrastrukturteam, QS-Team, Datenbankadministratoren, Entwickler und Geschäftsbenutzer.
Um die Testbereitschaft unter allen Aspekten sicherzustellen, sollten sich die Testbereiche auf folgende Schlüsselbereiche konzentrieren:
Testumfang - Beschreiben Sie die zu verwendenden Testtechniken und -typen.
Einrichten der Testumgebung.
Verfügbarkeit von Testdaten - Es wird empfohlen, produktionsähnliche Daten zu haben, die alle / kritischen Geschäftsanforderungen abdecken.
Kriterien für Datenqualität und Leistungsakzeptanz.
Beim ETL-Test wird die Datengenauigkeit verwendet, um sicherzustellen, dass die Daten erwartungsgemäß genau in das Zielsystem geladen werden. Die wichtigsten Schritte zur Durchführung der Datengenauigkeit sind:
Wertevergleich
Beim Wertevergleich werden die Daten im Quell- und Zielsystem mit minimaler oder keiner Transformation verglichen. Dies kann mit verschiedenen ETL-Testtools erfolgen, z. B. Source Qualifier Transformation in Informatica.
Einige Ausdruckstransformationen können auch beim Testen der Datengenauigkeit durchgeführt werden. In SQL-Anweisungen können verschiedene Mengenoperatoren verwendet werden, um die Datengenauigkeit im Quell- und im Zielsystem zu überprüfen. Übliche Operatoren sind Minus- und Intersect-Operatoren. Die Ergebnisse dieser Operatoren können als Wertabweichung im Ziel- und Quellsystem betrachtet werden.
Überprüfen Sie die Spalten für kritische Daten
Kritische Datenspalten können überprüft werden, indem unterschiedliche Werte im Quell- und im Zielsystem verglichen werden. Hier ist eine Beispielabfrage, mit der kritische Datenspalten überprüft werden können:
SELECT cust_name, Order_Id, city, count(*) FROM customer
GROUP BY cust_name, Order_Id, city;
Zum Überprüfen der Metadaten müssen die Quell- und die Zieltabellenstruktur im Zuordnungsdokument überprüft werden. Das Zuordnungsdokument enthält Details zu den Quell- und Zielspalten, Datentransformationsregeln und Datentypen sowie alle Felder, die die Struktur von Tabellen im Quell- und Zielsystem definieren.
Datenlängenprüfung
Die Länge des Zielspaltendatentyps sollte gleich oder größer als der Quellspaltendatentyp sein. Nehmen wir ein Beispiel. Angenommen, Sie haben die Vor- und Nachnamen in der Quelltabelle und die Datenlänge für jede ist als 50 Zeichen definiert. Dann sollte die Zieldatenlänge für die Spalte mit dem vollständigen Namen im Zielsystem mindestens 100 oder mehr betragen.
Datentypprüfung
Bei der Überprüfung des Datentyps werden der Quell- und der Zieldatentyp überprüft und sichergestellt, dass sie identisch sind. Es besteht die Möglichkeit, dass sich der Zieldatentyp nach einer Transformation von den Quelldaten unterscheidet. Daher müssen auch die Transformationsregeln überprüft werden.
Constraint / Index Check
Bei der Einschränkungsprüfung werden die Indexwerte und Einschränkungen gemäß dem Entwurfsspezifikationsdokument überprüft. Alle Spalten, die keine Nullwerte haben können, sollten die Einschränkung Nicht Null haben. Primärschlüsselspalten werden gemäß dem Entwurfsdokument indiziert.
Das Durchführen von Datentransformationen ist etwas komplex, da dies nicht durch Schreiben einer einzelnen SQL-Abfrage und anschließendes Vergleichen der Ausgabe mit dem Ziel erreicht werden kann. Für die ETL-Testdatenumwandlung müssen Sie möglicherweise mehrere SQL-Abfragen für jede Zeile schreiben, um die Umwandlungsregeln zu überprüfen.
Stellen Sie zunächst sicher, dass die Quelldaten ausreichen, um alle Transformationsregeln zu testen. Der Schlüssel zum Durchführen eines erfolgreichen ETL-Tests für Datentransformationen besteht darin, die richtigen und ausreichenden Beispieldaten aus dem Quellsystem auszuwählen, um die Transformationsregeln anzuwenden.
Die wichtigsten Schritte für die ETL-Testdaten-Transformation sind unten aufgeführt:
Der erste Schritt besteht darin, eine Liste von Szenarien mit Eingabedaten und den erwarteten Ergebnissen zu erstellen und diese mit dem Geschäftskunden zu validieren. Dies ist ein guter Ansatz für das Sammeln von Anforderungen während des Entwurfs und kann auch als Teil des Testens verwendet werden.
Der nächste Schritt besteht darin, die Testdaten zu erstellen, die alle Szenarien enthalten. Verwenden Sie einen ETL-Entwickler, um den gesamten Prozess des Auffüllens der Datensätze mit der Szenariotabelle zu automatisieren und Vielseitigkeit und Mobilität zu ermöglichen, da sich die Szenarien wahrscheinlich ändern.
Verwenden Sie als Nächstes Datenprofilerstellungsergebnisse, um den Bereich und die Übermittlung von Werten in jedem Feld zwischen den Ziel- und Quelldaten zu vergleichen.
Überprüfen Sie die genaue Verarbeitung von ETL-generierten Feldern, z. B. Ersatzschlüsseln.
Die Validierung der Datentypen innerhalb des Lagers entspricht den Angaben im Datenmodell oder -design.
Erstellen Sie Datenszenarien zwischen Tabellen, die die referenzielle Integrität testen.
Überprüfen Sie die Eltern-Kind-Beziehungen in den Daten.
Der letzte Schritt ist die Durchführung lookup transformation. Ihre Suchabfrage sollte ohne Aggregation gerade sein und voraussichtlich nur einen Wert pro Quelltabelle zurückgeben. Sie können der Nachschlagetabelle im Quellqualifizierer wie im vorherigen Test direkt beitreten. Ist dies nicht der Fall, schreiben Sie eine Abfrage, die die Nachschlagetabelle mit der Haupttabelle in der Quelle verbindet, und vergleichen Sie die Daten in den entsprechenden Spalten im Ziel.
Die Überprüfung der Datenqualität während des ETL-Tests umfasst die Durchführung von Qualitätsprüfungen für Daten, die in das Zielsystem geladen werden. Es enthält die folgenden Tests -
Nummernprüfung
Das Zahlenformat sollte im gesamten Zielsystem gleich sein. Im Quellsystem lautet das Format für die Nummerierung der Spalten beispielsweisex.30, aber wenn das Ziel nur ist 30, dann muss es kein Präfix laden x. in der Zielspaltennummer.
Datumsprüfung
Das Datumsformat sollte sowohl im Quell- als auch im Zielsystem konsistent sein. Beispielsweise sollte es für alle Datensätze gleich sein. Das Standardformat lautet: JJJJ-MM-TT.
Präzisionsprüfung
Der Präzisionswert sollte wie erwartet in der Zieltabelle angezeigt werden. In der Quelltabelle lautet der Wert beispielsweise 15,2323422, in der Zieltabelle sollte er jedoch 15,23 oder eine 15er-Runde anzeigen.
Datenprüfung
Dabei werden die Daten gemäß den Geschäftsanforderungen überprüft. Die Datensätze, die bestimmte Kriterien nicht erfüllen, sollten herausgefiltert werden.
Example - In die Zieltabelle sollten nur die Datensätze geladen werden, deren date_id> = 2015 und Account_Id! = '001'.
Null Check
Einige Spalten sollten gemäß der Anforderung und den möglichen Werten für dieses Feld Null haben.
Example - In der Spalte "Beendigungsdatum" sollte "Null" angezeigt werden, es sei denn, die Spalte "Aktiver Status" lautet "T" oder "Verstorben".
Andere Schecks
Allgemeine Überprüfungen wie From_Date sollten nicht größer als To_Date sein.
Durch Überprüfen der Datenvollständigkeit wird überprüft, ob die Daten im Zielsystem nach dem Laden den Erwartungen entsprechen.
Die üblichen Tests, die hierfür durchgeführt werden können, sind wie folgt:
Überprüfen der Aggregatfunktionen (Summe, Max, Min, Anzahl),
Überprüfen und Validieren der Anzahl und der tatsächlichen Daten zwischen der Quelle und dem Ziel für Spalten ohne Transformationen oder mit einfachen Transformationen.
Zählvalidierung
Vergleichen Sie die Anzahl der Datensätze in der Quell- und der Zieltabelle. Dies kann durch Schreiben der folgenden Abfragen erfolgen:
SELECT count (1) FROM employee;
SELECT count (1) FROM emp_dim;
Datenprofilvalidierung
Dabei werden die Aggregatfunktionen wie count, sum und max in der Quell- und Zieltabelle (Fakt oder Dimension) überprüft.
Überprüfung des Spaltendatenprofils
Dabei werden die unterschiedlichen Werte und die Anzahl der Zeilen für jeden unterschiedlichen Wert verglichen.
SELECT city, count(*) FROM employee GROUP BY city;
SELECT city_id, count(*) FROM emp_dim GROUP BY city_id;
Doppelte Datenüberprüfung
Dabei werden der Primärschlüssel und der eindeutige Schlüssel in einer Spalte oder in einer Kombination von Spalten überprüft, die gemäß den Geschäftsanforderungen eindeutig sein sollten. Mit der folgenden Abfrage können Sie eine doppelte Datenüberprüfung durchführen:
SELECT first_name, last_name, date_of_joining, count (1) FROM employee
GROUP BY first_name, last_name HAVING count(1)>1;
Die Sicherungswiederherstellung für ein System ist geplant, um sicherzustellen, dass das System nach einem Fehler so schnell wie möglich wiederhergestellt wird und der Betrieb so früh wie möglich wieder aufgenommen wird, ohne dass wichtige Daten verloren gehen.
Mithilfe von ETL Backup-Wiederherstellungstests wird sichergestellt, dass das Data Warehouse-System erfolgreich von Hardware, Software oder einem Netzwerkfehler mit Datenverlust wiederhergestellt wird.
Es muss ein ordnungsgemäßer Sicherungsplan erstellt werden, um die maximale Systemverfügbarkeit sicherzustellen. Sicherungssysteme sollten problemlos wiederhergestellt werden können und das ausgefallene System ohne Datenverlust übernehmen.
ETL-Tests Bei der Sicherungswiederherstellung werden die Anwendung oder das DW-System extremen Bedingungen für Hardwarekomponenten, Software-Abstürze usw. ausgesetzt. Der nächste Schritt besteht darin, sicherzustellen, dass der Wiederherstellungsprozess eingeleitet, die Systemüberprüfung durchgeführt und die Datenwiederherstellung erreicht wird.
ETL-Tests werden meistens mit SQL-Skripten durchgeführt und die Daten in Tabellenkalkulationen gesammelt. Dieser Ansatz zur Durchführung von ETL-Tests ist sehr langsam und zeitaufwändig, fehleranfällig und wird an Beispieldaten durchgeführt.
Technische Herausforderung beim manuellen ETL-Testen
Ihr ETL-Testteam schreibt SQL-Abfragen, um Daten in einem Warehouse-System zu testen. Sie müssen sie manuell mit einem SQL-Editor ausführen, die Daten dann in eine Excel-Tabelle einfügen und manuell vergleichen. Dieser Prozess ist zeitaufwändig, ressourcenintensiv und ineffizient.
Auf dem Markt sind verschiedene Tools verfügbar, um diesen Prozess zu automatisieren. Die gängigsten ETL-Testtools sind QuerySurge und Informatica Data Validation.
QuerySurge
QuerySurge ist eine Datentestlösung zum Testen von Big Data, Data Warehouses und dem ETL-Prozess. Es kann den gesamten Prozess für Sie automatisieren und passt gut in Ihre DevOps-Strategie.
Die wichtigsten Funktionen von QuerySurge sind:
Es verfügt über Abfrage-Assistenten, mit denen Sie schnell und einfach Test-QueryPairs erstellen können, ohne dass der Benutzer SQL schreiben muss.
Es verfügt über eine Designbibliothek mit wiederverwendbaren Abfrage-Snippets. Sie können auch benutzerdefinierte QueryPairs erstellen.
Es kann Daten aus Quelldateien und Datenspeichern mit dem Ziel-Data Warehouse oder Big Data-Speicher vergleichen.
Es kann Millionen von Datenzeilen und -spalten in Minuten vergleichen.
Es ermöglicht dem Benutzer, Tests so zu planen, dass sie (1) sofort, (2) ein beliebiges Datum / eine beliebige Uhrzeit oder (3) automatisch nach dem Ende eines Ereignisses ausgeführt werden.
Es kann informative Berichte erstellen, Aktualisierungen anzeigen und Ergebnisse automatisch per E-Mail an Ihr Team senden.
Um den gesamten Prozess zu automatisieren, sollte Ihr ETL-Tool QuerySurge über die Befehlszeilen-API starten, nachdem die ETL-Software den Ladevorgang abgeschlossen hat.
QuerySurge wird automatisch und unbeaufsichtigt ausgeführt, führt alle Tests aus und sendet dann allen Mitgliedern des Teams eine E-Mail mit den Ergebnissen.
Genau wie QuerySurge bietet Informatica Data Validation ein ETL-Testtool, mit dem Sie den ETL-Testprozess in der Entwicklungs- und Produktionsumgebung beschleunigen und automatisieren können. Damit können Sie in kürzerer Zeit eine vollständige, wiederholbare und überprüfbare Testabdeckung bereitstellen. Es erfordert keine Programmierkenntnisse!
Um ein Data Warehouse-System oder eine BI-Anwendung zu testen, muss ein datenzentrierter Ansatz verfolgt werden. Best Practices für ETL-Tests tragen dazu bei, die Kosten und die Zeit für die Durchführung der Tests zu minimieren. Es verbessert die Qualität der Daten, die in das Zielsystem geladen werden sollen, wodurch hochwertige Dashboards und Berichte für Endbenutzer erstellt werden.
Wir haben hier einige Best Practices aufgelistet, die für ETL-Tests befolgt werden können -
Analysieren Sie die Daten
Es ist äußerst wichtig, die Daten zu analysieren, um die Anforderungen zu verstehen und ein korrektes Datenmodell einzurichten. Wenn Sie Zeit investieren, um die Anforderungen zu verstehen und ein korrektes Datenmodell für das Zielsystem zu haben, können Sie die ETL-Herausforderungen reduzieren. Es ist auch wichtig, die Quellsysteme und die Datenqualität zu untersuchen und korrekte Datenvalidierungsregeln für ETL-Module zu erstellen. Eine ETL-Strategie sollte basierend auf der Datenstruktur des Quell- und des Zielsystems formuliert werden.
Beheben Sie fehlerhafte Daten im Quellsystem
Endbenutzer sind sich normalerweise der Datenprobleme bewusst, haben jedoch keine Ahnung, wie sie behoben werden können. Es ist wichtig, diese Fehler zu finden und zu korrigieren, bevor sie das ETL-System erreichen. Ein üblicher Weg, dies zu beheben, ist die ETL-Ausführungszeit. Die beste Vorgehensweise besteht jedoch darin, die Fehler im Quellsystem zu finden und Maßnahmen zu ergreifen, um sie auf der Ebene des Quellsystems zu beheben.
Suchen Sie ein kompatibles ETL-Tool
Eine der gängigen Best Practices für ETL ist die Auswahl eines Tools, das am besten mit dem Quell- und dem Zielsystem kompatibel ist. Die Fähigkeit des ETL-Tools, SQL-Skripte für das Quell- und das Zielsystem zu generieren, kann die Verarbeitungszeit und die Ressourcen reduzieren. Es ermöglicht die Verarbeitung von Transformationen überall in der Umgebung, die am besten geeignet sind.
Überwachen Sie ETL-Jobs
Eine weitere bewährte Methode während der ETL-Implementierung ist das Planen, Prüfen und Überwachen von ETL-Jobs, um sicherzustellen, dass die Ladevorgänge erwartungsgemäß ausgeführt werden.
Inkrementelle Daten integrieren
Manchmal sind Data Warehouse-Tabellen größer und können nicht bei jedem ETL-Zyklus aktualisiert werden. Inkrementelle Ladevorgänge stellen sicher, dass nur Datensätze, die seit der letzten Aktualisierung geändert wurden, in den ETL-Prozess übernommen werden. Dies hat erhebliche Auswirkungen auf die Skalierbarkeit und die Zeit, die zum Aktualisieren des Systems benötigt wird.
Normalerweise verfügen die Quellsysteme nicht über Zeitstempel oder einen Primärschlüssel, um die Änderungen leicht zu identifizieren. Solche Probleme können sehr kostspielig sein, wenn sie in späteren Phasen des Projekts festgestellt werden. Eine der Best Practices für ETL besteht darin, solche Aspekte in der ersten Studie zum Quellsystem zu behandeln. Dieses Wissen hilft dem ETL-Team, veränderte Datenerfassungsprobleme zu identifizieren und die am besten geeignete Strategie zu bestimmen.
Skalierbarkeit
Es wird empfohlen, sicherzustellen, dass die angebotene ETL-Lösung skalierbar ist. Zum Zeitpunkt der Implementierung muss sichergestellt werden, dass die ETL-Lösung mit den Geschäftsanforderungen und ihrem potenziellen Wachstum in Zukunft skalierbar ist.