Testowanie ETL - pytania do wywiadu

ETL oznacza wyodrębnianie, przekształcanie i ładowanie. Jest to ważna koncepcja w systemach hurtowni danych.Extraction oznacza wyodrębnianie danych z różnych źródeł danych, takich jak systemy transakcyjne lub aplikacje. Transformationoznacza stosowanie zasad konwersji danych, aby stały się one przydatne do raportowania analitycznego. Plikloading proces polega na przeniesieniu danych do systemu docelowego, zwykle hurtowni danych.

Trzy warstwy zaangażowane w cykl ETL to -

  • Staging Layer - Warstwa przejściowa służy do przechowywania danych wyodrębnionych z różnych źródłowych systemów danych.

  • Data Integration Layer - Warstwa integracji przekształca dane z warstwy przejściowej i przenosi dane do bazy danych, w której dane są uporządkowane w hierarchiczne grupy, często nazywane dimensionsoraz na fakty i fakty zbiorcze. Połączenie tabel faktów i wymiarów w systemie DW nazywa się aschema.

  • Access Layer - Warstwa dostępu jest wykorzystywana przez użytkowników końcowych do pobierania danych do raportowania analitycznego.

Narzędzie ETL służy do wyodrębniania danych z różnych źródeł danych, przekształcania danych i ładowania ich do systemu DW. Natomiast narzędzie BI służy do generowania interaktywnych i ad-hoc raportów dla użytkowników końcowych, pulpitu nawigacyjnego dla kadry kierowniczej wyższego szczebla, wizualizacji danych z miesięcznych, kwartalnych i rocznych spotkań zarządu.

Najpopularniejsze narzędzia ETL to - SAP BO Data Services (BODS), Informatica, Microsoft - SSIS, Oracle Data Integrator ODI, Talend Open Studio, Clover ETL Open source itp.

Najpopularniejsze narzędzia BI to - SAP Business Objects, SAP Lumira, IBM Cognos, JasperSoft, Microsoft BI Platform, Tableau, Oracle Business Intelligence Enterprise Edition itp.

Popularne narzędzia ETL dostępne na rynku to -

  • Informatica - Power Center
  • IBM - Websphere DataStage (wcześniej znany jako Ascential DataStage)
  • SAP - Business Objects Data Services BODS
  • IBM - Cognos Data Manager (wcześniej znany jako Cognos Decision Stream)
  • Microsoft - SQL Server Integration Services SSIS
  • Oracle - Data Integrator ODI (wcześniej znany jako Sunopsis Data Conductor)
  • SAS - Data Integration Studio
  • Oracle - Warehouse Builder
  • ABInitio
  • Open source Clover ETL

Obszar przejściowy to obszar pośredni, który znajduje się między źródłami danych a systemami hurtowni danych / baz danych. Obszary przejściowe można zaprojektować tak, aby zapewniały wiele korzyści, ale głównymi motywacjami do ich wykorzystania jest zwiększenie wydajności procesów ETL, zapewnienie integralności danych i wspieranie operacji związanych z jakością danych.

Hurtownie danych to szersze pojęcie w porównaniu z eksploracją danych. Eksploracja danych polega na wydobywaniu ukrytych informacji z danych i interpretowaniu ich na potrzeby przyszłych prognoz. Z kolei hurtownie danych obejmują operacje, takie jak raportowanie analityczne w celu generowania szczegółowych raportów i raportów ad-hoc, przetwarzanie informacji w celu generowania interaktywnych pulpitów nawigacyjnych i wykresów.

OLTP to skrót od Online Transactional Processing system, który jest zwykle relacyjną bazą danych i służy do zarządzania codziennymi transakcjami.

OLAP to skrót od Online Analytical Processing system, który jest powszechnie systemem wielowymiarowym i jest również nazywany hurtownią danych.

Załóżmy, że firma sprzedaje swoje produkty klientom. Każda sprzedaż jest faktem, który ma miejsce w firmie, a tabela faktów służy do rejestrowania tych faktów. Każda tabela faktów przechowuje klucze podstawowe do łączenia tabeli faktów z tabelami wymiarów i miar / faktów.

Example - Fact_Units

Cust_ID Prod_Id Time_Id Liczba sprzedanych jednostek
101 24 1 25
102 25 2 15
103 26 3 30

Tabela wymiarów przechowuje atrybuty lub wymiary opisujące obiekty w tabeli faktów. Jest to zestaw tabel towarzyszących tabeli faktów.

Example - Dim_Customer

Cust_id Cust_Name Płeć
101 Jason M
102 Ania fa

Hurtownia danych to prosta forma hurtowni danych, która koncentruje się na jednym obszarze funkcjonalnym. Zwykle pobiera dane tylko z kilku źródeł.

Example - W organizacji mogą istnieć zbiorniki danych dla finansów, marketingu, zasobów ludzkich i innych pojedynczych działów, które przechowują dane związane z ich określonymi funkcjami.

Funkcje agregujące służą do grupowania wielu wierszy w jednej kolumnie w celu utworzenia bardziej znaczącej miary. Służą również do optymalizacji wydajności, gdy zapisujemy zagregowane tabele w hurtowni danych.

Typowe funkcje agregujące to -

MIN zwraca najmniejszą wartość w danej kolumnie
MAX zwraca największą wartość w danej kolumnie
SUMA zwraca sumę wartości liczbowych w danej kolumnie
ŚR zwraca średnią wartość z danej kolumny
LICZYĆ zwraca całkowitą liczbę wartości w danej kolumnie
LICZYĆ(*) zwraca liczbę wierszy w tabeli

Example

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

Instrukcje języka definicji danych (DDL) służą do definiowania struktury lub schematu bazy danych.

Examples -

  • CREATE - do tworzenia obiektów w bazie danych

  • ALTER - zmienia strukturę bazy danych

Instrukcje języka DML (Data Manipulation Language) służą do manipulowania danymi w bazie danych.

Examples -

  • SELECT - pobiera dane z bazy danych

  • INSERT - wstawia dane do tabeli

  • UPDATE - aktualizuje istniejące dane w tabeli

  • DELETE - usuwa wszystkie rekordy z tabeli, pozostaje miejsce na rekordy

Instrukcje Data Control Language (DCL) służą do kontrolowania dostępu do obiektów bazy danych.

Examples -

  • GRANT - daje użytkownikowi uprawnienia dostępu do bazy danych

  • REVOKE - cofa uprawnienia dostępu nadane komendą GRANT

Operatory służą do określania warunków w instrukcji SQL i służą jako spójniki dla wielu warunków w instrukcji. Typowe typy operatorów to -

  • Operatory arytmetyczne
  • Operatory porównania / relacyjne
  • Operatory logiczne
  • Operatory zbioru
  • Operatory używane do negowania warunków

Typowe operatory zbiorów w SQL to -

  • UNION
  • UNIA WSZYSTKO
  • INTERSECT
  • MINUS

Operacja przecięcia służy do łączenia dwóch instrukcji SELECT, ale zwraca tylko rekordy, które są wspólne dla obu instrukcji SELECT. W przypadku Intersect liczba kolumn i typ danych muszą być takie same. MySQL nie obsługuje operatora INTERSECT. Zapytanie typu Intersect wygląda następująco -

select * from First 
INTERSECT 
select * from second

Operacja minus łączy wynik dwóch instrukcji Select i zwraca tylko te wyniki, które należą do pierwszego zestawu wyników. Zapytanie Minus wygląda następująco -

select * from First 
MINUS 
select * from second

Jeśli wykonujesz polecenie źródło minus cel i miejsce docelowe minus źródło, a zapytanie minus zwraca wartość, należy to traktować jako przypadek niezgodności wierszy.

Jeśli zapytanie minus zwraca wartość, a liczba przecięcia jest mniejsza niż liczba źródłowa lub tabela docelowa, wówczas tabele źródłowa i docelowa zawierają zduplikowane wiersze.

Group-by klauzula jest używana z select oświadczenie o zbieraniu podobnych danych. HAVING jest bardzo podobny do WHERE poza tym, że zawarte w nim stwierdzenia mają charakter zbiorczy.

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 - Tabela pracowników

Country Salary
Indie 3000
NAS 2500
Indie 500
NAS 1500

Group by Country

Country Salary
Indie 3000
Indie 500
NAS 2500
NAS 1500

Testowanie ETL jest wykonywane przed przeniesieniem danych do produkcyjnego systemu hurtowni danych. Czasami nazywa się to również równoważeniem tabel lub uzgadnianiem produkcji.

Głównym celem testowania ETL jest identyfikacja i łagodzenie defektów danych i ogólnych błędów, które pojawiają się przed przetwarzaniem danych do raportowania analitycznego.

W poniższej tabeli przedstawiono najważniejsze funkcje testów baz danych i ETL oraz ich porównanie -

Funkcjonować Testowanie baz danych Testowanie ETL
Główny cel Walidacja i integracja danych Ekstrakcja, transformacja i ładowanie danych do raportowania BI
Odpowiedni system System transakcyjny, w którym występuje przepływ biznesowy System zawierający dane historyczne, a nie w środowisku przepływu biznesowego
Typowe narzędzia na rynku QTP, Selenium itp. QuerySurge, Informatica itp.
Potrzeba biznesowa Służy do integracji danych z wielu aplikacji, poważny wpływ. Służy do raportowania analitycznego, informacji i prognoz.
Modelowanie Metoda ER Wielowymiarowy
Typ bazy danych Zwykle jest używany w systemach OLTP Jest stosowany w systemach OLAP
Typ danych Znormalizowane dane z większą liczbą sprzężeń Dane zdenormalizowane z mniejszą liczbą łączeń, większą liczbą indeksów i agregacji.

Testy ETL można podzielić na następujące kategorie w zależności od ich funkcji -

  • Source to Target Count Testing - Polega na dopasowaniu liczby rekordów w systemie źródłowym i docelowym.

  • Source to Target Data Testing- Obejmuje walidację danych między systemem źródłowym a docelowym. Obejmuje również integrację danych i sprawdzenie wartości progowej oraz sprawdzenie zduplikowanych danych w systemie docelowym.

  • Data Mapping or Transformation Testing- Potwierdza mapowanie obiektów w systemie źródłowym i docelowym. Obejmuje również sprawdzenie funkcjonalności danych w systemie docelowym.

  • End-User Testing- Obejmuje generowanie raportów dla użytkowników końcowych w celu weryfikacji, czy dane w raportach są zgodne z oczekiwaniami. Obejmuje wyszukiwanie odchyleń w raportach i krzyżowe sprawdzanie danych w systemie docelowym w celu walidacji raportu.

  • Retesting - Obejmuje naprawę błędów i defektów w danych w systemie docelowym i ponowne uruchomienie raportów w celu sprawdzenia poprawności danych.

  • System Integration Testing - Obejmuje testowanie wszystkich poszczególnych systemów, a następnie łączenie wyników w celu ustalenia, czy są jakieś odchylenia.

  • Utrata danych podczas procesu ETL.

  • Nieprawidłowe, niekompletne lub zduplikowane dane.

  • System DW zawiera dane historyczne, więc ilość danych jest zbyt duża i naprawdę skomplikowana, aby przeprowadzić testy ETL w systemie docelowym.

  • Testerzy ETL zwykle nie mają dostępu do harmonogramów zadań w narzędziu ETL. Prawie nie mają dostępu do narzędzi raportowania BI, aby zobaczyć ostateczny układ raportów i danych w raportach.

  • Trudne do generowania i budowania przypadków testowych, ponieważ ilość danych jest zbyt duża i złożona.

  • Testerzy ETL zwykle nie mają pojęcia o wymaganiach dotyczących raportów użytkownika końcowego i biznesowym przepływie informacji.

  • Testowanie ETL obejmuje różne złożone koncepcje SQL do sprawdzania poprawności danych w systemie docelowym.

  • Czasami testerzy nie otrzymują informacji o mapowaniu źródła do celu.

  • Niestabilne środowisko testowe powoduje opóźnienia w rozwoju i testowaniu procesu.

Do kluczowych obowiązków testera ETL należą:

  • Weryfikacja tabel w systemie źródłowym - sprawdzenie licznika, sprawdzenie typu danych, brak kluczy, zduplikowane dane.

  • Zastosowanie logiki transformacji przed załadowaniem danych: walidacja progu danych, kontrola zastępcza ky itp.

  • Ładowanie danych z obszaru przejściowego do systemu docelowego: wartości zagregowane i miary obliczone, nie brakuje pól kluczowych, sprawdzenie liczby w tabeli docelowej, walidacja raportu BI itp.

  • Testowanie narzędzia ETL i jego komponentów, przypadki testowe - tworzenie, projektowanie i wykonywanie planów testów, przypadków testowych, testowanie narzędzia ETL i jego funkcji, testowanie systemu DW itp.

Transformacja to zestaw reguł, które generują, modyfikują lub przekazują dane. Transformacja może być dwojakiego rodzaju - aktywna i pasywna.

W aktywnej transformacji liczbę wierszy tworzonych jako dane wyjściowe można zmienić po dokonaniu transformacji. Nie dzieje się tak podczas pasywnej transformacji. Informacja przechodzi przez ten sam numer, który został mu nadany jako dane wejściowe.

Partycjonowanie polega na podzieleniu obszaru magazynu danych na części. Zwykle ma to na celu poprawę wydajności transakcji.

Jeśli Twój system DW ma ogromne rozmiary, zlokalizowanie danych zajmie trochę czasu. Partycjonowanie przestrzeni dyskowej pozwala na łatwiejsze i szybsze wyszukiwanie i analizowanie danych.

Podział może być dwojakiego rodzaju - partycjonowanie okrężne i partycjonowanie mieszaniem.

W przypadku partycjonowania okrężnego dane są równomiernie rozłożone na wszystkie partycje, więc liczba wierszy w każdej partycji jest stosunkowo taka sama. Partycjonowanie z użyciem skrótu ma miejsce, gdy serwer używa funkcji skrótu do tworzenia kluczy partycji w celu grupowania danych.

  • Maplet definiuje reguły transformacji.

  • Sesje są zdefiniowane w celu instruowania danych, gdy są przenoszone ze źródła do systemu docelowego.

  • Przepływ pracy to zestaw instrukcji, które instruują serwer o wykonaniu zadania.

  • Mapowanie to przenoszenie danych ze źródła do celu.

Transformacja wyszukiwania umożliwia dostęp do danych z tabel relacyjnych, które nie są zdefiniowane w dokumentach mapowania. Umożliwia aktualizację wolno zmieniających się tabel wymiarów w celu określenia, czy rekordy już istnieją w miejscu docelowym, czy nie.

Klucz zastępczy to coś, co ma numery generowane przez sekwencję bez znaczenia i służy tylko do jednoznacznej identyfikacji wiersza. Nie jest widoczny dla użytkowników ani aplikacji. Jest również nazywany kluczem kandydata.

Klucz zastępczy ma numery generowane przez sekwencję bez znaczenia. Służy do jednoznacznej identyfikacji wierszy.

Klucz podstawowy służy do unikatowego identyfikowania wierszy. Jest widoczny dla użytkowników i można go zmienić zgodnie z wymaganiami.

W takich przypadkach można zastosować metodę sumy kontrolnej. Możesz zacząć od sprawdzenia liczby rekordów w systemie źródłowym i docelowym. Wybierz sumy i porównaj informacje.

W tym teście tester sprawdza zakres danych. Należy sprawdzić wszystkie wartości progowe w systemie docelowym, aby upewnić się, że są zgodne z oczekiwanym wynikiem.

Example - Atrybut Age nie powinien mieć wartości większej niż 100. W kolumnie Data DD / MM / RR pole miesiąca nie powinno mieć wartości większej niż 12.

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

Jeśli nie zdefiniowano klucza podstawowego, mogą pojawić się zduplikowane wartości.

Duplikacja danych może również wynikać z nieprawidłowego mapowania i błędów ręcznych podczas przesyłania danych ze źródła do systemu docelowego.

Testowanie regresyjne polega na wprowadzaniu zmian w regułach transformacji i agregacji danych w celu dodania nowej funkcjonalności i pomocy testerowi w znalezieniu nowych błędów. Błędy pojawiające się w danych pochodzących z testów regresji nazywane są regresją.

Te trzy podejścia to - odgórne, oddolne i hybrydowe.

Najczęstsze scenariusze testowania ETL to -

  • Walidacja struktury
  • Sprawdzanie poprawności dokumentu mapowania
  • Sprawdź poprawność ograniczeń
  • Kontrola spójności danych
  • Weryfikacja kompletności danych
  • Weryfikacja poprawności danych
  • Walidacja transformacji danych
  • Walidacja jakości danych
  • Walidacja zerowa
  • Podwójna weryfikacja
  • Data Sprawdzenie poprawności
  • Pełna walidacja danych przy użyciu zapytania minus
  • Inne scenariusze testowe
  • Czyszczenie danych

Czyszczenie danych to proces usuwania danych z hurtowni danych. Usuwa niepotrzebne dane, takie jak wiersze z wartościami null lub dodatkowymi spacjami.

Błąd kosmetyczny jest związany z GUI aplikacji. Może to być związane ze stylem czcionki, rozmiarem czcionki, kolorami, wyrównaniem, błędami ortograficznymi, nawigacją itp.

Nazywa się to błędem związanym z analizą wartości granicznej.

Możesz to zrobić, tworząc zmienną mapującą i przefiltrowaną transformację. Może być konieczne wygenerowanie sekwencji, aby uzyskać specjalnie posortowany rekord, którego potrzebujesz.

Value comparison- Polega na porównaniu danych w systemie źródłowym i docelowym z minimalną transformacją lub bez transformacji. Można to zrobić za pomocą różnych narzędzi do testowania ETL, takich jak Source Qualifier Transformation w Informatica.

Krytyczne kolumny danych można sprawdzić, porównując różne wartości w systemie źródłowym i docelowym.

Za pomocą instrukcji Minus i Intersect można przeprowadzić weryfikację kompletności danych. Gdy wykonujesz polecenie źródło minus cel i cel minus źródło, a zapytanie minus zwraca wartość, jest to znak niezgodności wierszy.

Jeśli zapytanie minus zwraca wartość, a liczba przecięcia jest mniejsza niż liczba źródłowa lub tabela docelowa, istnieją zduplikowane wiersze.

Shortcut Transformationto odniesienie do obiektu, który jest dostępny w udostępnionym folderze. Te odniesienia są powszechnie używane dla różnych źródeł i celów, które mają być wspólne dla różnych projektów lub środowisk.

W menedżerze repozytorium skrót jest tworzony poprzez przypisanie statusu „Udostępnione”. Później obiekty można przeciągać z tego folderu do innego folderu. Ten proces zapewnia pojedynczy punkt kontroli obiektu, a wiele projektów nie ma wszystkich źródeł importu i celów do swoich folderów lokalnych.

Reusable Transformation jest lokalna w folderze. Example- Generator sekwencji wielokrotnego użytku do przydzielania identyfikatorów klientów magazynu. Przydatne jest ładowanie szczegółów klienta z wielu systemów źródłowych i przydzielanie unikalnych identyfikatorów do każdego nowego klucza źródłowego.

Kiedy przyłączasz się do pojedynczego stołu, nazywa się to Self-Join.

Normalizacja bazy danych to proces organizowania atrybutów i tabel relacyjnej bazy danych w celu zminimalizowania nadmiarowości danych.

Normalizacja polega na rozkładaniu tabeli na mniej zbędne (i mniejsze) tabele, ale bez utraty informacji.

Tabela faktów bez faktów to tabela faktów, która nie zawiera żadnych miar. Zasadniczo jest to przecięcie wymiarów. Istnieją dwa typy tabel bez faktów: jedna służy do przechwytywania zdarzenia, a druga do opisywania warunków.

Powoli zmieniające się wymiary odnoszą się do zmieniającej się wartości atrybutu w czasie. Dyski SCD są trzech typów - Typ 1, Typ 2 i Typ 3.