ETL-Tests - Interviewfragen

ETL steht für Extrahieren, Transformieren und Laden. Es ist ein wichtiges Konzept in Data Warehousing-Systemen.Extraction steht für das Extrahieren von Daten aus verschiedenen Datenquellen wie Transaktionssystemen oder Anwendungen. Transformationsteht für die Anwendung der Konvertierungsregeln auf Daten, damit diese für die analytische Berichterstattung geeignet sind. Dasloading Der Prozess umfasst das Verschieben der Daten in das Zielsystem, normalerweise ein Data Warehouse.

Die drei Schichten, die an einem ETL-Zyklus beteiligt sind, sind -

  • Staging Layer - In der Staging-Schicht 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 Fakten und aggregierte Fakten. 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 die analytische Berichterstellung abzurufen.

Ein ETL-Tool wird verwendet, um Daten aus verschiedenen Datenquellen zu extrahieren, die Daten zu transformieren und in ein DW-System zu laden. Im Gegensatz dazu werden mithilfe eines BI-Tools interaktive und Ad-hoc-Berichte für Endbenutzer, ein Dashboard für die Geschäftsleitung sowie Datenvisualisierungen für monatliche, vierteljährliche und jährliche Vorstandssitzungen erstellt.

Zu den gängigsten ETL-Tools gehören - SAP BO Data Services (BODS), Informatica, Microsoft - SSIS, ODI von Oracle Data Integrator, Talend Open Studio, Clover ETL Open Source usw.

Zu den am häufigsten verwendeten BI-Tools gehören: SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI-Plattform, Tableau, Oracle Business Intelligence Enterprise Edition usw.

Die beliebtesten ETL-Tools auf dem Markt sind:

  • Informatica - Power Center
  • IBM - Websphere DataStage (früher bekannt als Ascential DataStage)
  • SAP - Business Objects Data Services-BODS
  • IBM - Cognos Data Manager (früher bekannt als Cognos Decision Stream)
  • Microsoft - SQL Server Integration Services SSIS
  • Oracle - Data Integrator ODI (früher bekannt als Sunopsis Data Conductor)
  • SAS - Datenintegrationsstudio
  • Oracle - Warehouse Builder
  • ABInitio
  • Open Source Clover ETL

Der Staging-Bereich ist ein Zwischenbereich zwischen Datenquellen und Data Warehouse- / Data Marts-Systemen. Staging-Bereiche können so gestaltet werden, dass sie viele Vorteile bieten. Die Hauptmotive für ihre Verwendung sind jedoch die Steigerung der Effizienz von ETL-Prozessen, die Gewährleistung der Datenintegrität und die Unterstützung von Datenqualitätsvorgängen.

Data Warehousing ist im Vergleich zu Data Mining ein umfassenderes Konzept. Beim Data Mining werden versteckte Informationen aus Daten extrahiert und für zukünftige Vorhersagen interpretiert. Im Gegensatz dazu umfasst Data Warehousing Vorgänge wie analytische Berichte zur Erstellung detaillierter Berichte und Ad-hoc-Berichte sowie Informationsverarbeitung zur Erstellung interaktiver Dashboards und Diagramme.

OLTP steht für Online Transactional Processing System, eine gewöhnliche relationale Datenbank, die zur Verwaltung alltäglicher Transaktionen verwendet wird.

OLAP steht für Online Analytical Processing System, das üblicherweise ein mehrdimensionales System ist und auch als Data Warehouse bezeichnet wird.

Angenommen, ein Unternehmen verkauft seine Produkte an Kunden. Jeder Verkauf ist eine Tatsache, die innerhalb des Unternehmens stattfindet, und die Faktentabelle wird verwendet, um diese Tatsachen aufzuzeichnen. Jede Faktentabelle speichert die Primärschlüssel, um die Faktentabelle mit Dimensionstabellen und Kennzahlen / Fakten zu verbinden.

Example - Fact_Units

Cust_ID Prod_Id Time_Id Anzahl der verkauften Einheiten
101 24 1 25
102 25 2 15
103 26 3 30

In einer Dimensionstabelle werden Attribute oder Dimensionen gespeichert, die die Objekte in einer Faktentabelle beschreiben. Es handelt sich um eine Reihe von Begleittabellen zu einer Faktentabelle.

Example - Dim_Customer

Cust_id Kundenname Geschlecht
101 Jason M.
102 Anna F.

Ein Data Mart ist eine einfache Form des Data Warehouse und konzentriert sich auf einen einzelnen Funktionsbereich. Es werden normalerweise nur Daten aus wenigen Quellen abgerufen.

Example - In einer Organisation können Data Marts für Finanzen, Marketing, Personalwesen und andere einzelne Abteilungen vorhanden sein, in denen Daten zu ihren spezifischen Funktionen gespeichert werden.

Aggregatfunktionen werden verwendet, um mehrere Zeilen einer einzelnen Spalte zu gruppieren, um eine signifikantere Messung zu bilden. Sie werden auch zur Leistungsoptimierung verwendet, wenn wir aggregierte Tabellen im Data Warehouse speichern.

Gemeinsame Aggregatfunktionen sind -

MINDEST Gibt den kleinsten Wert in einer bestimmten Spalte zurück
MAX Gibt den größten Wert in einer bestimmten Spalte zurück
SUMME Gibt die Summe der numerischen Werte in einer bestimmten Spalte zurück
AVG Gibt den Durchschnittswert einer bestimmten Spalte zurück
ANZAHL Gibt die Gesamtzahl der Werte in einer bestimmten Spalte zurück
ANZAHL(*) Gibt die Anzahl der Zeilen in einer Tabelle zurück

Example

SELECT AVG(salary) 
FROM employee 
WHERE title = 'developer';

DDL-Anweisungen (Data Definition Language) werden zum Definieren der Datenbankstruktur oder des Datenbankschemas verwendet.

Examples - -

  • CREATE - um Objekte in einer Datenbank zu erstellen

  • ALTER - ändert die Struktur einer Datenbank

DML-Anweisungen (Data Manipulation Language) werden zum Bearbeiten von Daten in der Datenbank verwendet.

Examples - -

  • SELECT - ruft Daten aus einer Datenbank ab

  • INSERT - fügt Daten in eine Tabelle ein

  • UPDATE - Aktualisiert vorhandene Daten in einer Tabelle

  • DELETE - löscht alle Datensätze aus einer Tabelle, der Platz für die Datensätze bleibt erhalten

DCL-Anweisungen (Data Control Language) werden verwendet, um den Zugriff auf Datenbankobjekte zu steuern.

Examples - -

  • GRANT - Verleiht dem Benutzer Zugriffsrechte auf die Datenbank

  • REVOKE - entzieht dem mit dem Befehl GRANT erteilten Zugriffsberechtigungen

Operatoren werden verwendet, um Bedingungen in einer SQL-Anweisung anzugeben und als Konjunktionen für mehrere Bedingungen in einer Anweisung zu dienen. Die gängigen Operatortypen sind -

  • Rechenzeichen
  • Vergleichs- / Vergleichsoperatoren
  • Logische Operatoren
  • Operatoren einstellen
  • Operatoren, mit denen Bedingungen negiert werden

Die gängigen Mengenoperatoren in SQL sind -

  • UNION
  • UNION ALL
  • INTERSECT
  • MINUS

Die Intersect-Operation wird verwendet, um zwei SELECT-Anweisungen zu kombinieren, gibt jedoch nur die Datensätze zurück, die beiden SELECT-Anweisungen gemeinsam sind. Bei Intersect müssen die Anzahl der Spalten und der Datentyp gleich sein. MySQL unterstützt den INTERSECT-Operator nicht. Eine Intersect-Abfrage sieht wie folgt aus:

select * from First 
INTERSECT 
select * from second

Die Minus-Operation kombiniert das Ergebnis zweier Select-Anweisungen und gibt nur das Ergebnis zurück, das zur ersten Ergebnismenge gehört. Eine Minus-Abfrage sieht wie folgt aus:

select * from First 
MINUS 
select * from second

Wenn Sie Quelle minus Ziel und Ziel minus Quelle ausführen und die Minusabfrage einen Wert zurückgibt, sollte dies als ein Fall von nicht übereinstimmenden Zeilen betrachtet werden.

Wenn die Minus-Abfrage einen Wert zurückgibt und die Anzahl der Schnittpunkte geringer ist als die Quellanzahl oder die Zieltabelle, enthalten die Quell- und Zieltabellen doppelte Zeilen.

Group-by Klausel wird mit verwendet select Anweisung zum Sammeln ähnlicher Daten. HAVING ist sehr ähnlich zu WHERE mit Ausnahme der darin enthaltenen Aussagen sind aggregierter Natur.

Syntax - -

SELECT dept_no, count ( 1 ) FROM employee GROUP BY dept_no;  
SELECT dept_no, count ( 1 ) FROM employee GROUP BY dept_no HAVING COUNT( 1 ) > 1;

Example - Mitarbeitertabelle

Country Salary
Indien 3000
UNS 2500
Indien 500
UNS 1500

Group by Country

Country Salary
Indien 3000
Indien 500
UNS 2500
UNS 1500

ETL-Tests werden durchgeführt, bevor Daten in ein Data Warehouse-Produktionssystem verschoben werden. Es wird manchmal auch als Tabellenausgleich oder Produktionsabgleich bezeichnet.

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.

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
Gemeinsame Werkzeuge auf dem Markt 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.

ETL-Tests können basierend auf ihrer Funktion in die folgenden Kategorien unterteilt werden:

  • Source to Target Count Testing - Es beinhaltet den Abgleich der Anzahl der Datensätze im Quell- und Zielsystem.

  • Source to Target Data Testing- Es beinhaltet die Datenvalidierung zwischen Quell- und 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 Berichten den Erwartungen entsprechen. Dabei werden Abweichungen in Berichten festgestellt und die Daten im Zielsystem für die 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 das Ergebnis kombiniert, um festzustellen, ob Abweichungen vorliegen.

  • 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 sehr komplex ist, um ETL-Tests im Zielsystem durchzuführen.

  • ETL-Tester haben normalerweise keinen Zugriff auf die Anzeige von Jobplänen im ETL-Tool. 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 für die Datenvalidierung im Zielsystem.

  • Manchmal erhalten Tester keine Informationen zur Zuordnung von Quelle zu Ziel.

  • Instabile Testumgebungsergebnisse verzögern die Entwicklung und das Testen des Prozesses.

Zu den Hauptaufgaben eines ETL-Testers gehören:

  • Überprüfen der Tabellen im Quellsystem - Zählprüfung, Datentypprüfung, Schlüssel fehlen nicht, doppelte Daten.

  • Anwenden der Transformationslogik vor dem Laden der Daten: Validierung des Datenschwellenwerts, Ersatz-Ky-Prüfung usw.

  • Laden von Daten aus dem Staging-Bereich in das Zielsystem: Aggregierte Werte und berechnete Kennzahlen, Schlüsselfelder fehlen nicht, Anzahl Check in Zieltabelle, Validierung des BI-Berichts usw.

  • Testen des ETL-Tools und seiner Komponenten, Testfälle - Erstellen, Entwerfen und Ausführen von Testplänen, Testfällen, Testen des ETL-Tools und seiner Funktion, Testen des DW-Systems usw.

Eine Transformation ist ein Satz von Regeln, die Daten generieren, ändern oder übergeben. Es gibt zwei Arten der Transformation: Aktiv und Passiv.

In einer aktiven Transformation kann die Anzahl der Zeilen, die als Ausgabe erstellt werden, geändert werden, sobald eine Transformation stattgefunden hat. Dies geschieht nicht während einer passiven Transformation. Die Informationen durchlaufen dieselbe Nummer, die sie als Eingabe erhalten haben.

Partitionierung ist, wenn Sie den Bereich des Datenspeichers in Teile teilen. Dies geschieht normalerweise, um die Leistung von Transaktionen zu verbessern.

Wenn Ihr DW-System sehr groß ist, dauert es einige Zeit, bis die Daten gefunden sind. Durch die Partitionierung des Speicherplatzes können Sie die Daten einfacher und schneller finden und analysieren.

Es gibt zwei Arten von Partitionen: Round-Robin-Partitionierung und Hash-Partitionierung.

Bei der Round-Robin-Partitionierung werden die Daten gleichmäßig auf alle Partitionen verteilt, sodass die Anzahl der Zeilen in jeder Partition relativ gleich ist. Hash-Partitionierung ist, wenn der Server eine Hash-Funktion verwendet, um Partitionsschlüssel zum Gruppieren der Daten zu erstellen.

  • Ein Mapplet definiert die Transformationsregeln.

  • Sitzungen werden definiert, um die Daten anzuweisen, wenn sie vom Quell- zum Zielsystem verschoben werden.

  • Ein Workflow besteht aus einer Reihe von Anweisungen, die den Server zur Ausführung von Aufgaben anweisen.

  • Mapping ist die Verschiebung von Daten von der Quelle zum Ziel.

Mit der Lookup-Transformation können Sie auf Daten aus relationalen Tabellen zugreifen, die nicht in Zuordnungsdokumenten definiert sind. Sie können langsam ändernde Dimensionstabellen aktualisieren, um festzustellen, ob die Datensätze bereits im Ziel vorhanden sind oder nicht.

Ein Ersatzschlüssel ist etwas, das sequenzgenerierte Zahlen ohne Bedeutung hat und nur dazu dient, die Zeile eindeutig zu identifizieren. Es ist für Benutzer oder Anwendungen nicht sichtbar. Es wird auch als Kandidatenschlüssel bezeichnet.

Ein Ersatzschlüssel hat sequenzgenerierte Zahlen ohne Bedeutung. Es soll die Zeilen eindeutig identifizieren.

Ein Primärschlüssel wird verwendet, um die Zeilen eindeutig zu identifizieren. Es ist für Benutzer sichtbar und kann je nach Anforderung geändert werden.

In solchen Fällen können Sie die Prüfsummenmethode anwenden. Sie können beginnen, indem Sie die Anzahl der Datensätze im Quell- und im Zielsystem überprüfen. Wählen Sie die Summen aus und vergleichen Sie die Informationen.

Bei diesem Test validiert ein Tester den Datenbereich. Alle Schwellenwerte im Zielsystem sind zu überprüfen, um sicherzustellen, dass sie dem erwarteten Ergebnis entsprechen.

Example - Das Altersattribut sollte keinen Wert größer als 100 haben. In der Spalte Datum TT / MM / JJ sollte das Feld Monat keinen Wert größer als 12 haben.

Select Cust_Id, Cust_NAME, Quantity, COUNT (*)
FROM Customer GROUP BY Cust_Id, Cust_NAME, Quantity HAVING COUNT (*) >1;

Wenn kein Primärschlüssel definiert ist, werden möglicherweise doppelte Werte angezeigt.

Datenverdoppelungen können auch aufgrund falscher Zuordnung und manueller Fehler beim Übertragen von Daten von der Quelle zum Zielsystem auftreten.

Regressionstests sind Änderungen an Datentransformations- und Aggregationsregeln, um eine neue Funktionalität hinzuzufügen und dem Tester zu helfen, neue Fehler zu finden. Die Fehler, die in Daten auftreten, die beim Regressionstest auftreten, werden als Regression bezeichnet.

Die drei Ansätze sind Top-Down, Bottom-Up und Hybrid.

Die häufigsten ETL-Testszenarien sind:

  • Strukturvalidierung
  • Zuordnungsdokument validieren
  • Einschränkungen validieren
  • Datenkonsistenzprüfung
  • Validierung der Datenvollständigkeit
  • Validierung der Datenkorrektheit
  • Validierung der Datentransformation
  • Validierung der Datenqualität
  • Null-Validierung
  • Doppelte Validierung
  • Überprüfung der Datumsüberprüfung
  • Vollständige Datenüberprüfung mit Minus-Abfrage
  • Andere Testszenarien
  • Datenreinigung

Beim Löschen von Daten werden Daten aus einem Data Warehouse gelöscht. Es entfernt Junk-Daten wie Zeilen mit Nullwerten oder zusätzlichen Leerzeichen.

Der kosmetische Fehler hängt mit der Benutzeroberfläche einer Anwendung zusammen. Dies kann mit Schriftstil, Schriftgröße, Farben, Ausrichtung, Rechtschreibfehlern, Navigation usw. zusammenhängen.

Es wird als Fehler im Zusammenhang mit der Grenzwertanalyse bezeichnet.

Sie können dies tun, indem Sie eine Zuordnungsvariable und eine gefilterte Transformation erstellen. Möglicherweise müssen Sie eine Sequenz generieren, um den speziell sortierten Datensatz zu erhalten, den Sie benötigen.

Value comparison- Dabei werden die Daten im Quell- und im Zielsystem mit minimaler oder keiner Transformation verglichen. Dies kann mit verschiedenen ETL-Testtools wie der Source Qualifier Transformation in Informatica erfolgen.

Kritische Datenspalten können durch Vergleichen unterschiedlicher Werte in Quell- und Zielsystemen überprüft werden.

Sie können Minus- und Intersect-Anweisungen verwenden, um die Validität der Datenvollständigkeit durchzuführen. Wenn Sie Quelle minus Ziel und Ziel minus Quelle ausführen und die Minusabfrage einen Wert zurückgibt, ist dies ein Zeichen für nicht übereinstimmende Zeilen.

Wenn die Minus-Abfrage einen Wert zurückgibt und die Anzahl der Schnittpunkte geringer ist als die Quellanzahl oder die Zieltabelle, sind doppelte Zeilen vorhanden.

Shortcut Transformationist ein Verweis auf ein Objekt, das in einem freigegebenen Ordner verfügbar ist. Diese Referenzen werden üblicherweise für verschiedene Quellen und Ziele verwendet, die von verschiedenen Projekten oder Umgebungen gemeinsam genutzt werden sollen.

Im Repository-Manager wird eine Verknüpfung erstellt, indem der Status "Freigegeben" zugewiesen wird. Später können Objekte aus diesem Ordner in einen anderen Ordner gezogen werden. Dieser Prozess ermöglicht einen einzigen Kontrollpunkt für das Objekt, und mehrere Projekte haben nicht alle Importquellen und -ziele in ihren lokalen Ordnern.

Reusable Transformation ist lokal in einem Ordner. Example- Wiederverwendbarer Sequenzgenerator zur Zuordnung von Lagerkunden-IDs. Es ist nützlich, Kundendaten aus mehreren Quellsystemen zu laden und jedem neuen Quellschlüssel eindeutige IDs zuzuweisen.

Wenn Sie eine einzelne Tabelle mit sich selbst verbinden, wird sie als Self-Join bezeichnet.

Bei der Datenbanknormalisierung werden die Attribute und Tabellen einer relationalen Datenbank organisiert, um die Datenredundanz zu minimieren.

Bei der Normalisierung wird eine Tabelle in weniger redundante (und kleinere) Tabellen zerlegt, ohne dass Informationen verloren gehen.

Eine Faktentabelle ohne Fakten ist eine Faktentabelle, die keine Kennzahlen enthält. Es ist im Wesentlichen ein Schnittpunkt von Dimensionen. Es gibt zwei Arten von Tabellen ohne Fakten: Eine dient zur Erfassung eines Ereignisses und die andere zur Beschreibung von Bedingungen.

Sich langsam ändernde Dimensionen beziehen sich auf den sich im Laufe der Zeit ändernden Wert eines Attributs. Es gibt drei Arten von SCDs: Typ 1, Typ 2 und Typ 3.