ETL-testhandleiding
Wat is ETL-testen?
ETL-tests worden uitgevoerd om ervoor te zorgen dat de gegevens die na een bedrijfstransformatie van een bron naar de bestemming zijn geladen, accuraat zijn. Het omvat ook de verificatie van gegevens in verschillende middenfasen die worden gebruikt tussen bron en bestemming. ETL staat voor Extract-Transform-Load.
Testen van datawarehouses
Testen van datawarehouses is een testmethode waarbij de gegevens in een datawarehouse worden getest op integriteit, betrouwbaarheid, nauwkeurigheid en consistentie om te voldoen aan het dataframework van het bedrijf. Het belangrijkste doel van het testen van datawarehouses is ervoor te zorgen dat de geïntegreerde gegevens in het datawarehouse betrouwbaar genoeg zijn zodat een bedrijf beslissingen kan nemen.
Wat is ETL?
ETL staat voor Extract-Transform-Load en het is een proces van hoe gegevens van het bronsysteem naar het datawarehouse worden geladen. Gegevens worden uit een OLTP-database gehaald, getransformeerd zodat ze overeenkomen met het datawarehouse-schema en in de datawarehouse-database geladen. Veel datawarehouses bevatten ook gegevens uit niet-OLTP-systemen, zoals tekstbestanden, oudere systemen en spreadsheets.
Laten we eens kijken hoe het werkt
Er is bijvoorbeeld een winkel met verschillende afdelingen, zoals verkoop, marketing, logistiek enz. Elk van hen verwerkt de klantinformatie onafhankelijk, en de manier waarop ze die gegevens opslaan is heel anders. De verkoopafdeling heeft het opgeslagen op naam van de klant, terwijl de marketingafdeling het heeft opgeslagen op klant-ID.
Als ze nu de geschiedenis van de klant willen controleren en willen weten welke verschillende producten hij/zij heeft gekocht als gevolg van verschillende marketingcampagnes, dan zou dat erg omslachtig zijn.
De oplossing is om een datawarehouse om informatie uit verschillende bronnen in een uniforme structuur op te slaan met behulp van ETL. ETL kan ongelijksoortige datasets omzetten in een uniforme structuur.Later gebruik BI-tools om betekenisvolle inzichten en rapporten uit deze gegevens af te leiden.
Het volgende diagram in deze ETL-testtutorial geeft u de ROADMAP van de ETL-testprocesstroom en verschillende ETL-testconcepten:
- Extract
- Haal relevante gegevens eruit
- Transformeren
- Transformeer gegevens naar DW-formaat (Data Warehouse).
- Bouwsleutels – Een sleutel is een of meer gegevensattributen die een entiteit op unieke wijze identificeren. Verscheidene soorten sleutels zijn primaire sleutel, alternatieve sleutel, refererende sleutel, samengestelde sleutel, surrogaatsleutel. Het datawarehouse is eigenaar van deze sleutels en staat nooit toe dat een andere entiteit deze toewijst.
- Opschonen van gegevens: Nadat de gegevens zijn geëxtraheerd, gaat deze naar de volgende fase: het opschonen en conformeren van gegevens. Met schoonmaken worden de weglatingen in de gegevens verwijderd en worden de fouten geïdentificeerd en hersteld. Conformeren betekent het oplossen van de conflicten tussen gegevens die niet compatibel zijn, zodat ze kunnen worden gebruikt in een bedrijfsdatawarehouse. Daarnaast creëert dit systeem metagegevens die worden gebruikt om bronsysteemproblemen te diagnosticeren en de gegevenskwaliteit te verbeteren.
- Laden
- Gegevens laden in DW (Data Warehouse)
- Aggregaten maken – Het maken van een aggregaat is het samenvatten en opslaan van gegevens die beschikbaar zijn in feitentabel om de prestaties van zoekopdrachten van eindgebruikers te verbeteren.
ETL-testproces
Net als andere testprocessen doorloopt ETL ook verschillende fasen. De verschillende fasen van het ETL-testproces zijn als volgt
ETL-testen worden in vijf fasen uitgevoerd
- Identificeren van gegevensbronnen en vereisten
- data acquisitie
- Implementeer bedrijfslogica en dimensionale modellering
- Gegevens opbouwen en invullen
- Rapporten bouwen
Soorten ETL-testen
Soorten testen | Testproces |
---|---|
Productievalidatietesten | “Tabelbalancering” of “productieafstemming” Dit type ETL-testen wordt uitgevoerd op gegevens terwijl deze naar productiesystemen worden verplaatst. Om uw zakelijke beslissing te ondersteunen, moeten de gegevens in uw productiesystemen in de juiste volgorde staan. Informatica Data Validation Option biedt de ETL-testautomatisering en -beheermogelijkheden om ervoor te zorgen dat productiesystemen niet in gevaar worden gebracht door de gegevens. |
Bron naar Target Testen (validatietesten) | Een dergelijk type testen wordt uitgevoerd om te valideren of de getransformeerde gegevenswaarden de verwachte gegevenswaarden zijn. |
Aanvraag Upgrades | Een dergelijk type ETL-test kan automatisch worden gegenereerd, waardoor aanzienlijke testontwikkelingstijd wordt bespaard. Bij dit type testen wordt gecontroleerd of de gegevens uit een oudere applicatie of repository exact hetzelfde zijn als de gegevens in een repository of nieuwe applicatie. |
Metagegevens testen | Het testen van metagegevens omvat het testen van gegevenstypecontrole, gegevenslengtecontrole en index-/beperkingscontrole. |
Testen van de volledigheid van gegevens | Om te verifiëren dat alle verwachte gegevens vanuit de bron in het doel zijn geladen, worden tests op de volledigheid van de gegevens uitgevoerd. Enkele van de tests die kunnen worden uitgevoerd, zijn het vergelijken en valideren van tellingen, aggregaties en feitelijke gegevens tussen de bron en het doel voor kolommen met eenvoudige transformatie of geen transformatie. |
Nauwkeurigheidstests van gegevens | Deze tests worden uitgevoerd om ervoor te zorgen dat de gegevens nauwkeurig worden geladen en getransformeerd zoals verwacht. |
Testen van gegevenstransformatie | Het testen van datatransformatie wordt gedaan omdat dit in veel gevallen niet kan worden bereikt door één bron te schrijven SQL bevragen en de uitvoer vergelijken met het doel. Mogelijk moeten voor elke rij meerdere SQL-query's worden uitgevoerd om de transformatieregels te verifiëren. |
Testen van gegevenskwaliteit | Datakwaliteitstests omvatten syntaxis- en referentietests. Om fouten als gevolg van de datum of het ordernummer tijdens het bedrijfsproces te voorkomen, worden gegevenskwaliteitstests uitgevoerd.
Syntaxistests: het rapporteert vuile gegevens, gebaseerd op ongeldige tekens, tekenpatroon, onjuiste volgorde van hoofdletters of kleine letters enz. Referentietests: het controleert de gegevens volgens het datamodel. Bijvoorbeeld: Klant-ID Het testen van de gegevenskwaliteit omvat nummercontrole, datumcontrole, precisiecontrole, gegevenscontrole, nulcontrole enz. |
Incrementeel ETL-testen | Deze tests worden uitgevoerd om de gegevensintegriteit van oude en nieuwe gegevens te controleren met de toevoeging van nieuwe gegevens. Incrementeel testen verifieert dat de invoegingen en updates worden verwerkt zoals verwacht tijdens het incrementele ETL-proces. |
GUI/navigatietesten | Deze tests worden uitgevoerd om de navigatie- of GUI-aspecten van de front-endrapporten te controleren. |
Hoe u een ETL-testcase maakt
ETL-testen is een concept dat kan worden toegepast op verschillende tools en databases in de informatiebeheerindustrie. Het doel van ETL-testen is ervoor te zorgen dat de gegevens die na een bedrijfstransformatie van bron naar bestemming zijn geladen, accuraat zijn. Het omvat ook de verificatie van gegevens in verschillende middenfasen die worden gebruikt tussen bron en bestemming.
Tijdens het uitvoeren van ETL-testen zijn er twee documenten die altijd door een ETL-tester zullen worden gebruikt
- ETL-toewijzingsbladen:ETL-toewijzingsbladen bevatten alle informatie van bron- en bestemmingstabellen, inclusief elke kolom en hun zoekopdrachten in referentietabellen. ETL-testers moeten vertrouwd zijn met SQL-query's, aangezien ETL-tests het schrijven van grote queries met meerdere joins kunnen inhouden om gegevens in elk stadium van ETL te valideren. ETL-toewijzingsbladen bieden een aanzienlijke hulp bij het schrijven van query's voor gegevensverificatie.
- DB-schema van bron, Target: Het moet bij de hand worden gehouden om elk detail in kaartbladen te verifiëren.
ETL-testscenario's en testcases
Testscenario | Test Cases |
---|---|
Documentvalidatie in kaart brengen | Controleer het toewijzingsdocument of de bijbehorende ETL-informatie wordt verstrekt of niet. Het wijzigingslogboek moet in elk toewijzingsdocument worden bijgehouden. |
Validatie |
|
Beperkingvalidatie | Zorg ervoor dat de beperkingen voor een specifieke tabel zijn gedefinieerd, zoals verwacht |
Problemen met de consistentie van gegevens |
|
Volledigheidsproblemen |
|
Correctheidsproblemen |
|
Transformatie | Transformatie |
Datakwaliteit |
|
Nul valideren | Controleer de nulwaarden, waarbij 'Not Null' is opgegeven voor een specifieke kolom. |
Dubbele cheque |
|
Datum validatie | Datumwaarden worden op veel gebieden in de ETL-ontwikkeling gebruikt
|
Volledige gegevensvalidatie |
|
Gegevenszuiverheid | Onnodige kolommen moeten worden verwijderd voordat ze in het verzamelgebied worden geladen. |
Soorten ETL-bugs
Soort bugs | Beschrijving |
---|---|
Bugs in de gebruikersinterface/cosmetische bugs |
|
Boundary Value Analysis (BVA) gerelateerde bug |
|
Equivalence Class Partitioning (ECP) gerelateerde bug |
|
Invoer-/uitvoerfouten |
|
Berekeningsfouten |
|
Laadconditie-bugs |
|
Raceconditie-bugs |
|
Bugs in versiebeheer |
|
H/W-bugs |
|
Help Bronbugs |
|
Verschil tussen databasetesten en ETL-testen
ETL-testen | Testen van databases |
---|---|
Controleert of gegevens worden verplaatst zoals verwacht | Het primaire doel is om te controleren of de gegevens voldoen aan de regels/normen die zijn gedefinieerd in het datamodel. |
Controleert of tellingen in de bron en het doel overeenkomen
Controleert of de getransformeerde gegevens aan de verwachtingen voldoen |
Controleer of er geen weesrecords zijn en dat de relaties tussen buitenlandse en primaire sleutels behouden blijven |
Controleert of de externe primaire sleutelrelaties tijdens de ETL behouden blijven | Controleert of er geen redundante tabellen zijn en of de database optimaal is genormaliseerd |
Controleert op duplicatie in geladen gegevens | Controleer waar nodig of er gegevens ontbreken in de kolommen |
Verantwoordelijkheden van een ETL-tester
De belangrijkste verantwoordelijkheden van een ETL-tester zijn onderverdeeld in drie categorieën
- Podiumtafel/SFS of MFS
- Bedrijfstransformatielogica toegepast
- Target tabel laden vanuit fasebestand of tabel na het toepassen van een transformatie.
Enkele van de verantwoordelijkheden van een ETL-tester zijn
- ETL-software testen
- Testcomponenten van ETL-datawarehouse
- Voer backend datagestuurde tests uit
- Bedenken, ontwerpen en uitvoeren testgevallen, testplannen en testharnas
- Identificeer het probleem en bied oplossingen voor mogelijke problemen
- Goedkeuren van eisen en ontwerpspecificaties
- Gegevensoverdracht en test plat bestand
- SQL-query's3 schrijven voor verschillende scenario's, zoals teltest
Prestatietesten in ETL
Prestatietesten in ETL is een testtechniek om ervoor te zorgen dat een ETL-systeem de belasting van meerdere gebruikers en transacties aankan. Het primaire doel van ETL Performance Testing is het optimaliseren en verbeteren van de sessieprestaties door het identificeren en elimineren van prestatieknelpunten. De bron- en doeldatabases, mappings, sessies en het systeem hebben mogelijk prestatieknelpunten.
Een van de beste tools die worden gebruikt voor prestatietests/afstemming is Informatica.
Automatisering van ETL-testen
De algemene methodologie van ETL-testen is het gebruik van SQL-scripting of het “opletten” van gegevens. Deze benaderingen van ETL-testen zijn tijdrovend, foutgevoelig en bieden zelden volledige resultaten. test dekking. Om te versnellen, de dekking te verbeteren, de kosten te verlagen, te verbeteren Defect detectierantsoen van ETL-testen in productie- en ontwikkelomgevingen, automatisering is de noodzaak van het uur. Een voorbeeld van zo'n tool is Informatica.
Beste praktijken voor ETL-testen
- Zorg ervoor dat gegevens correct worden getransformeerd
- Zonder enig gegevensverlies en afkapping moeten de geprojecteerde gegevens in het datawarehouse worden geladen
- Zorg ervoor dat de ETL-toepassing op de juiste manier standaardwaarden afwijst en vervangt en ongeldige gegevens rapporteert
- Moet ervoor zorgen dat de gegevens binnen voorgeschreven en verwachte tijdsbestekken in het datawarehouse worden geladen om de schaalbaarheid en prestaties te bevestigen
- Alle methoden moeten passende eenheidstests hebben, ongeacht de zichtbaarheid
- Om de effectiviteit ervan te meten moeten alle unit-tests geschikte dekkingstechnieken gebruiken
- Streef naar één bewering per testgeval
- creëren eenheidstests die zich richten op uitzonderingen
Uitchecken - Vragen en antwoorden over ETL-testinterviews