what is etl extract
Deze diepgaande zelfstudie over het ETL-proces legt de processtroom en de stappen uit die betrokken zijn bij het ETL-proces (extractie, transformatie en belasting) in het datawarehouse:
Deze tutorial in de serie legt uit: Wat is ETL-proces? Gegevensextractie, transformatie, laden, platte bestanden, wat is enscenering? ETL-cyclus, enz.
Laten we beginnen!!
Bekijk hier de trainingsgids voor perfecte datawarehousing.
Wat je leert:
- ETL (Extract, Transform, Load) Process Fundamentals
- Gevolgtrekking
ETL (Extract, Transform, Load) Process Fundamentals
Doelgroep
- Datawarehouse / ETL-ontwikkelaars en testers.
- Databaseprofessionals met basiskennis van databaseconcepten.
- Databasebeheerders / big data-experts die datawarehouse / ETL-gebieden willen begrijpen.
- Afgestudeerden / Freshers die op zoek zijn naar Data Warehouse-banen.
Wat is ETL-proces in datawarehouse?
We weten allemaal dat datawarehouse een verzameling van enorme hoeveelheden gegevens is, om informatie te verstrekken aan de zakelijke gebruikers met behulp van Business Intelligence-tools.
Om dit doel te dienen, moet DW met regelmatige tussenpozen worden geladen. De gegevens in het systeem worden verzameld uit een of meer operationele systemen, platte bestanden, enz. Het proces dat de gegevens naar DW brengt, staat bekend als ETL-proces Extractie, transformatie en laden zijn de taken van ETL.
# 1) Extractie: Alle voorkeursgegevens uit verschillende bronsystemen, zoals databases, applicaties en platte bestanden, worden geïdentificeerd en geëxtraheerd. Gegevensextractie kan worden voltooid door taken buiten kantooruren uit te voeren.
# 2) Transformatie: De meeste geëxtraheerde gegevens kunnen niet rechtstreeks in het doelsysteem worden geladen. Op basis van de bedrijfsregels kunnen enkele transformaties worden uitgevoerd voordat de gegevens worden geladen.
Bijvoorbeeld, een doelkolomgegevens kunnen twee aaneengeschakelde gegevens van bronkolommen verwachten als invoer. Evenzo kan er een complexe logica zijn voor datatransformatie die expertise vereist. Sommige gegevens die geen transformaties nodig hebben, kunnen rechtstreeks naar het doelsysteem worden verplaatst.
Het transformatieproces corrigeert ook de gegevens, verwijdert eventuele onjuiste gegevens en herstelt eventuele fouten in de gegevens voordat ze worden geladen.
# 3) Laden: Alle verzamelde informatie wordt in de doeldatawarehouse-tabellen geladen.
Data-extractie
Gegevensextractie speelt een belangrijke rol bij het ontwerpen van een succesvol DW-systeem. Verschillende bronsystemen kunnen verschillende kenmerken van gegevens hebben en het ETL-proces zal deze verschillen effectief beheren tijdens het extraheren van de gegevens.
Logische datakaart ”Is een basisdocument voor gegevensextractie. Dit laat zien welke brongegevens naar welke doeltabel moeten gaan en hoe de bronvelden worden toegewezen aan de respectieve doeltabelvelden in het ETL-proces.
Hieronder staan de stappen die moeten worden uitgevoerd tijdens het ontwerpen van logische gegevenskaarten:
- Een datawarehouse-architect ontwerpt het logical data map-document.
- Door naar dit document te verwijzen, zal de ETL-ontwikkelaar ETL-banen creëren en zullen ETL-testers testcases creëren.
- Alle specifieke gegevensbronnen en de respectieve gegevenselementen die de zakelijke beslissingen ondersteunen, worden in dit document vermeld. Deze gegevenselementen fungeren als invoer tijdens het extractieproces.
- Gegevens van alle bronsystemen worden geanalyseerd en elke vorm van gegevensanomalieën wordt gedocumenteerd, zodat dit helpt bij het ontwerpen van de juiste bedrijfsregels om te stoppen met het extraheren van de verkeerde gegevens in DW. Dergelijke gegevens worden hier zelf verworpen.
- Zodra het uiteindelijke bron- en doelgegevensmodel is ontworpen door de ETL-architecten en de bedrijfsanalisten, kunnen ze een walk-through maken met de ETL-ontwikkelaars en de testers. Hierdoor krijgen ze een duidelijk begrip van hoe de bedrijfsregels moeten worden uitgevoerd in elke fase van extractie, transformatie en laden.
- Door de toewijzingsregels uit dit document te doorlopen, moeten de ETL-architecten, ontwikkelaars en testers een goed begrip hebben van hoe gegevens uit elke tabel stromen als dimensies, feiten en eventuele andere tabellen.
- Elke vorm van gegevensmanipulatieregels of -formules wordt hier ook genoemd om de extractie van verkeerde gegevens te voorkomen. Bijvoorbeeld, alleen de laatste 40 dagen aan gegevens extraheren, enz.
- Het is de verantwoordelijkheid van het ETL-team om in te zoomen op de gegevens volgens de zakelijke vereisten, om alle bruikbare bronsystemen, tabellen en kolomgegevens naar buiten te brengen die in DW moeten worden geladen.
Logical Data Map-document is over het algemeen een spreadsheet met de volgende componenten:
(tabel '' niet gevonden /)Extractie stroomschema:
Geef van tevoren het tijdvenster aan om de taken naar elk bronsysteem uit te voeren, zodat er geen brongegevens zouden worden gemist tijdens de extractiecyclus.
Met de bovenstaande stappen bereikt extractie het doel van het converteren van gegevens van verschillende formaten uit verschillende bronnen naar één DW-formaat, wat de hele ETL-processen ten goede komt. Dergelijke logisch geplaatste gegevens zijn nuttiger voor een betere analyse.
Extractiemethoden in datawarehouse
Afhankelijk van de bron- en doelgegevensomgevingen en de zakelijke behoeften, kunt u de extractiemethode selecteren die geschikt is voor uw DW.
# 1) Logische extractiemethoden
Gegevensextractie in een datawarehouse-systeem kan een eenmalige volledige belasting zijn die in eerste instantie wordt gedaan (of) het kunnen incrementele ladingen zijn die elke keer plaatsvinden met constante updates.
video's om te bekijken met een vr-headset
- Volledige extractie: Zoals de naam zelf suggereert, worden de bronsysteemgegevens volledig geëxtraheerd naar de doeltabel. Elke keer dat dit soort extractie de volledige huidige bronsysteemgegevens laadt zonder rekening te houden met de laatst geëxtraheerde tijdstempels. Bij voorkeur kunt u volledige extractie gebruiken voor de initiële ladingen of tabellen met minder gegevens.
- Incrementele extractie: De gegevens die vanaf een specifieke datum worden toegevoegd / gewijzigd, worden in aanmerking genomen voor incrementele extractie. Deze datum is bedrijfsspecifiek als de laatste geëxtraheerde datum (of) de laatste besteldatum enz. We kunnen verwijzen naar een tijdstempelkolom uit de brontabel zelf (of) er kan een aparte tabel worden gemaakt om alleen de details van de extractiedatum bij te houden. Verwijzen naar het tijdstempel is een belangrijke methode tijdens incrementele extractie. Logica zonder tijdstempel kan mislukken als de DW-tabel grote gegevens bevat.
# 2) Fysieke extractiemethoden
Afhankelijk van de mogelijkheden van de bronsystemen en de beperkingen van gegevens, kunnen de bronsystemen de gegevens fysiek leveren voor extractie als online extractie en offline extractie. Dit ondersteunt elk van de logische extractietypes.
- Online extractie :: We kunnen rechtstreeks verbinding maken met elke bronsysteemdatabase met de verbindingsstrings om gegevens rechtstreeks uit de bronsysteemtabellen te extraheren.
- Offline extractie :: We zullen hier niet rechtstreeks verbinding maken met de bronsysteemdatabase, maar het bronsysteem levert gegevens expliciet in een vooraf gedefinieerde structuur. Bronsystemen kunnen gegevens leveren in de vorm van platte bestanden, dumpbestanden, archieflogboeken en tabelruimten.
ETL-tools zijn het meest geschikt om complexe gegevensextracties uit te voeren, een aantal keren voor DW, hoewel ze duur zijn.
Gewijzigde gegevens extraheren
Zodra de eerste keer laden is voltooid, is het belangrijk om te overwegen hoe u de gewijzigde gegevens verder uit het bronsysteem kunt extraheren. Het ETL-procesteam moet aan het begin van het project zelf een plan ontwerpen voor het implementeren van extractie voor de initiële belastingen en de incrementele belastingen.
Meestal kunt u de 'Audit-kolommen' -strategie overwegen voor de incrementele belasting om de gegevenswijzigingen vast te leggen. In het algemeen kunnen de bronsysteemtabellen auditkolommen bevatten, die het tijdstempel voor elke invoeging (of) wijziging opslaan.
Het tijdstempel kan worden gevuld door databasetriggers (of) van de toepassing zelf. U moet ervoor zorgen dat de gegevens van de controlekolommen nauwkeurig zijn, zelfs als ze worden geladen, om de gewijzigde gegevens voor incrementeel laden niet te missen.
Tijdens het incrementeel laden kunt u rekening houden met de maximale datum en tijd waarop de laatste laadactie heeft plaatsgevonden en alle gegevens uit het bronsysteem extraheren met een tijdstempel groter dan het laatste laadtijdstempel.
Tijdens het extraheren van de gegevens:
- Gebruik query's optimaal om alleen de gegevens op te halen die u nodig heeft.
- Gebruik de clausule Distinct niet veel, omdat dit de prestaties van de query's vertraagt.
- Gebruik SET-operators zoals Union, Minus, Intersect voorzichtig, aangezien dit de prestaties verslechtert.
- Gebruik vergelijkende sleutelwoorden zoals like, between, etc in where-clausule, in plaats van functies zoals substr (), to_char (), etc.
Datatransformatie
Transformatie is het proces waarbij een set regels wordt toegepast op de geëxtraheerde gegevens voordat de bronsysteemgegevens rechtstreeks naar het doelsysteem worden geladen. De geëxtraheerde gegevens worden als ruwe gegevens beschouwd.
Het transformatieproces met een reeks standaarden brengt alle ongelijksoortige gegevens uit verschillende bronsystemen in bruikbare gegevens in het DW-systeem. Datatransformatie is gericht op de kwaliteit van de data. U kunt het gegevenstoewijzingsdocument raadplegen voor alle logische transformatieregels.
Op basis van de transformatieregels als enige brongegevens niet voldoen aan de instructies, worden dergelijke brongegevens geweigerd voordat ze in het doel-DW-systeem worden geladen en in een afwijzingsbestand of afwijzingstabel geplaatst.
De transformatieregels zijn niet gespecificeerd voor de gegevens van de rechte laadkolommen (behoeft geen wijziging) van bron naar doel. Daarom kunnen datatransformaties worden geclassificeerd als eenvoudig en complex. Datatransformaties kunnen kolomconversies, het opnieuw formatteren van de datastructuur, enz.
Hieronder staan enkele van de taken die tijdens de gegevenstransformatie moeten worden uitgevoerd:
# 1) Selectie: U kunt de volledige tabelgegevens of een specifieke set kolomgegevens uit de bronsystemen selecteren. De selectie van gegevens gebeurt meestal bij de Extractie zelf.
Er kunnen gevallen zijn waarin het bronsysteem het niet toestaat om een specifieke set kolomgegevens te selecteren tijdens de extractiefase, vervolgens de volledige gegevens te extraheren en de selectie in de transformatiefase uit te voeren.
# 2) Splitsen / samenvoegen: U kunt de geselecteerde gegevens manipuleren door ze te splitsen of samen te voegen. Tijdens de transformatie wordt u gevraagd om de geselecteerde brongegevens nog meer te splitsen.
Bijvoorbeeld, als het hele adres is opgeslagen in een enkel groot tekstveld in het bronsysteem, kan het DW-systeem vragen om het adres op te splitsen in afzonderlijke velden als stad, staat, postcode, enz. Dit is gemakkelijk te indexeren en te analyseren op basis van elk component afzonderlijk.
Terwijl het samenvoegen / samenvoegen van twee of meer kolomgegevens veel wordt gebruikt tijdens de transformatiefase in het DW-systeem. Dit betekent niet dat twee velden in één veld worden samengevoegd.
Bijvoorbeeld, als informatie over een bepaalde entiteit afkomstig is uit meerdere gegevensbronnen, dan kan het verzamelen van de informatie als een enkele entiteit worden genoemd als het samenvoegen / samenvoegen van de gegevens.
# 3) Conversie: De geëxtraheerde gegevens van het bronsysteem kunnen verschillende formaten hebben voor elk gegevenstype, daarom moeten alle geëxtraheerde gegevens tijdens de transformatiefase worden geconverteerd naar een gestandaardiseerd formaat. Hetzelfde soort formaat is gemakkelijk te begrijpen en gemakkelijk te gebruiken voor zakelijke beslissingen.
# 4) Samenvatting: In sommige situaties zal DW zoeken naar samengevatte gegevens in plaats van gedetailleerde gegevens op laag niveau van de bronsystemen. Omdat gegevens op laag niveau niet het meest geschikt zijn voor analyse en query's door zakelijke gebruikers.
Bijvoorbeeld, verkoopgegevens voor elke kassa zijn mogelijk niet vereist door het DW-systeem, dagelijkse verkoop bijproduct (of) dagelijkse verkoop door de winkel is handig. Daarom kan een samenvatting van gegevens worden uitgevoerd tijdens de transformatiefase volgens de zakelijke vereisten.
# 5) Verrijking: Wanneer een DW-kolom wordt gevormd door een of meer kolommen uit meerdere records te combineren, zal de gegevensverrijking de velden opnieuw rangschikken voor een beter zicht op de gegevens in het DW-systeem.
# 6) Formaatherzieningen: Formaatherzieningen komen het vaakst voor tijdens de transformatiefase. Het gegevenstype en de lengte worden voor elke kolom herzien.
Bijvoorbeeld, een kolom in het ene bronsysteem kan numeriek zijn en dezelfde kolom in een ander bronsysteem kan een tekst zijn. Om dit te standaardiseren wordt tijdens de transformatiefase het datatype voor deze kolom gewijzigd in tekst.
# 7) Decodering van velden: Wanneer u gegevens uit meerdere bronsystemen haalt, kunnen de gegevens in verschillende systemen anders worden gedecodeerd.
Bijvoorbeeld, één bronsysteem kan de klantstatus vertegenwoordigen als AC, IN en SU. Een ander systeem kan dezelfde status vertegenwoordigen als 1, 0 en -1.
Tijdens de datatransformatiefase moet u dergelijke codes decoderen in de juiste waarden die begrijpelijk zijn voor de zakelijke gebruikers. Daarom kunnen de bovenstaande codes worden gewijzigd in Actief, Inactief en Opgeschort.
# 8) Berekende en afgeleide waarden: Door rekening te houden met de bronsysteemgegevens, kan DW extra kolomgegevens opslaan voor de berekeningen. U moet de berekeningen uitvoeren op basis van de bedrijfslogica voordat u deze opslaat in DW.
# 9) Datum / tijd-conversie: Dit is een van de belangrijkste gegevenstypen waarop u zich moet concentreren. Het datum- / tijdformaat kan verschillen in meerdere bronsystemen.
Bijvoorbeeld, één bron kan de datum opslaan als 10 november 1997. Een andere bron kan dezelfde datum opslaan in het formaat 11/10/1997. Daarom moeten tijdens de gegevenstransformatie alle datum- / tijdwaarden worden geconverteerd naar een standaardformaat.
# 10) De-duplicatie: Als het bronsysteem dubbele records heeft, zorg er dan voor dat er slechts één record in het DW-systeem wordt geladen.
Transformatie stroomschema:
Hoe transformatie implementeren?
Afhankelijk van de complexiteit van datatransformaties kunt u handmatige methoden, transformatietools (of) een combinatie van beide gebruiken, afhankelijk van wat effectief is.
# 1) Handmatige technieken
Handmatige technieken zijn voldoende voor kleine DW-systemen. Gegevensanalisten en ontwikkelaars zullen de programma's en scripts maken om de gegevens handmatig te transformeren. Deze methode vereist gedetailleerde tests voor elk deel van de code.
De onderhoudskosten kunnen hoog oplopen door de veranderingen die optreden in bedrijfsregels (of) door de kans op fouten met de toename van de datavolumes. Zorg in eerste instantie voor metadata en ook voor elke wijziging die plaatsvindt in de transformatieregels.
# 2) Transformatietools
Als u het grootste deel van het transformatieproces wilt automatiseren, kunt u de transformatietools gebruiken, afhankelijk van het beschikbare budget en tijdsbestek voor het project. Tijdens het automatiseren moet u tijd van goede kwaliteit besteden aan het selecteren van de tools, het configureren, installeren en integreren met het DW-systeem.
Praktisch Volledige transformatie met de tools zelf is niet mogelijk zonder handmatige tussenkomst. Maar de gegevens die door de tools worden getransformeerd, zijn zeker efficiënt en nauwkeurig.
Om dit te bereiken, moeten we de juiste parameters, gegevensdefinities en regels als invoer in de transformatietool invoeren. Op basis van de opgegeven invoer zal de tool zelf de metadata opnemen en deze metadata worden toegevoegd aan de algemene DW-metadata.
Als er wijzigingen zijn in de bedrijfsregels, voert u die wijzigingen gewoon in de tool in, de rest van de transformatieaanpassingen wordt door de tool zelf verzorgd. Daarom is een combinatie van beide methoden efficiënt in het gebruik.
Gegevens laden
Geëxtraheerde en getransformeerde gegevens worden geladen in de DW-doeltabellen tijdens de laadfase van het ETL-proces. Het bedrijf bepaalt hoe het laadproces voor elke tafel moet gebeuren.
Het laadproces kan op de onderstaande manieren gebeuren:
- Initiële belasting: Het laden van de gegevens om de respectieve DW-tabellen voor de eerste keer te vullen.
- Incrementele belasting: Zodra de DW-tabellen zijn geladen, worden de rest van de lopende wijzigingen periodiek toegepast.
- Volledig vernieuwen: Als tabellen die in gebruik zijn, moeten worden vernieuwd, worden de huidige gegevens uit die tabel volledig verwijderd en vervolgens opnieuw geladen. Herladen is vergelijkbaar met de eerste keer laden.
Bekijk het onderstaande voorbeeld voor een beter begrip van het laadproces in ETL:
Product-ID | productnaam | Verkocht Datum |
---|---|---|
1 | Grammatica boek | 3 juni 2007 |
twee | Markeerstift | 3 juni 2007 |
3 | Rugzak | 4 juni 2007 |
4 | Cap | 4 juni 2007 |
5 | Schoenen | 5 juni 2007 |
# 1) Tijdens de eerste laadbeurt worden de gegevens die op 3rdJuni 2007 wordt in de DW-doeltabel geladen omdat het de initiële gegevens uit de bovenstaande tabel zijn.
#twee) Tijdens het incrementeel laden moeten we de gegevens laden die na 3rdJuni 2007. We moeten alle records met een verkoopdatum groter dan (>) de vorige datum voor de volgende dag beschouwen. Vandaar dat op 4thHaal in juni 2007 alle records met verkoopdatum> 3 oprdJuni 2007 door queries te gebruiken en alleen die twee records uit de bovenstaande tabel te laden.
Op 5thHaal in juni 2007 alle records met de verkoopdatum> 4 opthJuni 2007 en laad slechts één record uit de bovenstaande tabel.
# 3) Tijdens de volledige vernieuwing worden alle bovenstaande tabelgegevens tegelijk in de DW-tabellen geladen, ongeacht de verkoopdatum.
De geladen gegevens worden opgeslagen in de respectieve dimensie (of) feitentabellen. De gegevens kunnen als volgt worden geladen, toegevoegd of samengevoegd in de DW-tabellen:
# 4) Laden: De gegevens worden in de doeltabel geladen als deze leeg is. Als de tabel enkele gegevens bevat, worden de bestaande gegevens verwijderd en vervolgens geladen met de nieuwe gegevens.
Bijvoorbeeld,
Bestaande tabelgegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | Lood |
Bob | Assistent manager |
Ronald | Ontwikkelaar |
Gewijzigde gegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Rohan | regisseur |
Chetan | AVP |
De | VP |
Gegevens na laden
Naam werknemer | Rol |
---|---|
John | Manager |
Rohan | regisseur |
Chetan | AVP |
De | VP |
# 5) Toevoegen: Append is een uitbreiding van de bovenstaande belasting omdat het werkt op reeds bestaande data-tabellen. In de doeltabellen voegt Append meer gegevens toe aan de bestaande gegevens. Als er een dubbel record wordt gevonden met de invoergegevens, kan het als duplicaat worden toegevoegd (of kan het worden geweigerd).
Bijvoorbeeld,
Bestaande tabelgegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | Lood |
Gewijzigde gegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Rohan | regisseur |
Chetan | AVP |
De | VP |
Gegevens na toevoegen
hoe kan ik een eps-bestand bekijken
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | Lood |
Rohan | regisseur |
Chetan | AVP |
De | VP |
# 6) Destructieve samenvoeging: Hier worden de inkomende gegevens vergeleken met de bestaande doelgegevens op basis van de primaire sleutel. Als er een overeenkomst is, wordt het bestaande doelrecord bijgewerkt. Als er geen overeenkomst wordt gevonden, wordt een nieuw record in de doeltabel ingevoegd.
Bijvoorbeeld,
Bestaande tabelgegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | Lood |
Gewijzigde gegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | regisseur |
Chetan | AVP |
De | VP |
Gegevens na constructieve samenvoeging
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | regisseur |
Chetan | AVP |
De | VP |
# 7) Constructief gaat: In tegenstelling tot destructieve samenvoeging, als er een overeenkomst is met het bestaande record, dan laat het het bestaande record zoals het is en voegt het het inkomende record in en markeert het als de laatste data (tijdstempel) met betrekking tot die primaire sleutel.
Bijvoorbeeld,
Bestaande tabelgegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | Lood |
Gewijzigde gegevens
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | regisseur |
Chetan | AVP |
De | VP |
Gegevens na constructieve samenvoeging
Naam werknemer | Rol |
---|---|
John | Manager |
Revanth | Regisseur*** |
Revanth | Lood |
Chetan | AVP |
De | VP |
Technisch gezien is vernieuwen eenvoudiger dan het bijwerken van de gegevens. De update heeft een speciale strategie nodig om alleen de specifieke wijzigingen te extraheren en ze toe te passen op het DW-systeem, terwijl Vernieuwen alleen de gegevens vervangt. Maar het vernieuwen van de gegevens duurt langer, afhankelijk van de hoeveelheden gegevens.
Als u dergelijke verversingstaken dagelijks moet uitvoeren, moet u mogelijk het DW-systeem uitschakelen om de gegevens te laden. In plaats van het hele DW-systeem naar beneden te halen om elke keer gegevens te laden, kunt u gegevens verdelen en laden in de vorm van enkele bestanden.
Noteer tijdens het testen de looptijd voor elke belasting. Als er gegevens niet in het DW-systeem kunnen worden geladen vanwege niet-overeenkomende sleutels enz., Geef ze dan de manieren om met dergelijke gegevens om te gaan. Zorg ervoor dat de geladen gegevens grondig worden getest.
Stroomschema laden:
Platte bestanden
Platte bestanden worden veel gebruikt om gegevens uit te wisselen tussen heterogene systemen, van verschillende bronbesturingssystemen en van verschillende brondatabasesystemen tot datawarehouse-toepassingen. Platte bestanden zijn ook het meest efficiënt en gemakkelijk te beheren voor homogene systemen.
Platte bestanden worden voornamelijk gebruikt voor de volgende doeleinden:
# 1) Levering van brongegevens: Er zijn mogelijk weinig bronsystemen die DW-gebruikers om veiligheidsredenen geen toegang tot hun databases geven. In dergelijke gevallen worden de gegevens geleverd via platte bestanden.
Evenzo zijn de gegevens afkomstig van externe leveranciers of mainframesystemen, hoofdzakelijk in de vorm van platte bestanden, en deze zullen via FTP worden verzonden door de ETL-gebruikers.
# 2) Werk- / verzameltabellen: ETL-proces maakt verzameltabellen voor zijn interne doel. De koppeling van verzameltabellen met de platte bestanden is veel eenvoudiger dan het DBMS, omdat lezen en schrijven naar een bestandssysteem sneller gaat dan het invoegen en opvragen van een database.
# 3) Voorbereiding voor bulklading: Als de extractie- en transformatieprocessen eenmaal zijn voltooid, als de in-stream bulkbelasting niet wordt ondersteund door de ETL-tool (of) als u de gegevens wilt archiveren, kunt u een plat bestand maken. Deze platte bestandsgegevens worden gelezen door de processor en laadt de gegevens in het DW-systeem.
Platte bestanden kunnen op twee manieren worden gemaakt als 'Platte bestanden met vaste lengte' en 'Gescheiden platte bestanden'. Platte bestanden kunnen worden gemaakt door de programmeurs die voor het bronsysteem werken.
Laten we eens kijken hoe we deze platte bestanden verwerken:
Verwerking van platte bestanden met een vaste lengte
Over het algemeen hebben platte bestanden kolommen met een vaste lengte, daarom worden ze ook wel positionele platte bestanden genoemd. Hieronder ziet u de lay-out van een plat bestand met de exacte velden en hun posities in een bestand.
Veldnaam | Lengte | Begin | Einde | Type | Opmerkingen |
---|---|---|---|---|---|
Voornaam | 10 | 1 | 10 | Tekst | Voornaam van klant |
Midden-naam | 5 | elf | vijftien | Tekst | Tweede naam van klant |
Achternaam | 10 | 16 | 25 | Tekst | Achternaam van de klant |
De lay-out bevat de veldnaam, lengte, startpositie waar het veldteken begint, de eindpositie waar het veldteken eindigt, het gegevenstype als tekst, numeriek, etc., en eventuele opmerkingen.
Afhankelijk van de gegevensposities, valideert het ETL-testteam de nauwkeurigheid van de gegevens in een plat bestand met een vaste lengte.
Verwerking van gescheiden platte bestanden
In platte bestanden met scheidingstekens wordt elk gegevensveld gescheiden door scheidingstekens. Dit scheidingsteken geeft de begin- en eindpositie van elk veld aan. Over het algemeen wordt een komma als scheidingsteken gebruikt, maar u kunt elk ander symbool of een reeks symbolen gebruiken.
Bestanden met scheidingstekens kunnen de extensie .CSV (of) .TXT-extensie (of) zonder extensie hebben. De ontwikkelaars die de ETL-bestanden maken, geven het daadwerkelijke scheidingsteken aan om dat bestand te verwerken. In de indeling met gescheiden bestanden kan de eerste rij de kolomnamen vertegenwoordigen.
Net als de positionele platte bestanden, zal het ETL-testteam expliciet de nauwkeurigheid van de gescheiden platte bestandsgegevens valideren.
Doel van het verzamelgebied
Het belangrijkste doel van het verzamelgebied is om gegevens tijdelijk op te slaan voor het ETL-proces. De verzamelplaats wordt de achterkamer van het DW-systeem genoemd. ETL-architect beslist of gegevens in het verzamelgebied worden opgeslagen of niet.
Staging helpt om de gegevens zeer snel uit bronsystemen te halen. Als het DW-systeem faalt, hoeft u het proces niet opnieuw te starten door gegevens van de bronsystemen te verzamelen als de staging-gegevens al bestaan.
Na het gegevensextractieproces zijn hier de redenen om gegevens in het DW-systeem op te nemen:
# 1) Herstelbaarheid: De gevulde verzameltabellen worden opgeslagen in de DW-database zelf (of) ze kunnen naar bestandssystemen worden verplaatst en kunnen afzonderlijk worden opgeslagen. Op een bepaald moment kunnen de staging-gegevens fungeren als herstelgegevens als een transformatie- of laadstap mislukt.
Er is een kans dat het bronsysteem de gegevens die voor ETL worden gebruikt, heeft overschreven, dus het bewaren van de geëxtraheerde gegevens in de staging helpt ons voor elke referentie.
# 2) Back-up: Het is moeilijk om een back-up te maken van grote hoeveelheden DW-databasetabellen. Maar back-ups zijn een must voor elk noodherstel. Als u dus de staging-gegevens hebt die geëxtraheerde gegevens zijn, kunt u de taken uitvoeren voor transformatie en laden, waardoor de gecrashte gegevens opnieuw kunnen worden geladen.
Om een back-up van de staging-gegevens te maken, kunt u de staging-gegevens regelmatig naar bestandssystemen verplaatsen, zodat ze gemakkelijk kunnen worden gecomprimeerd en in uw netwerk kunnen worden opgeslagen. Decomprimeer bestanden, laad ze in verzameltabellen en voer de taken uit om de DW-tabellen opnieuw te laden.
# 3) Controle: Soms kan er een audit plaatsvinden op het ETL-systeem om de datakoppeling tussen het bronsysteem en het doelsysteem te controleren. De auditors kunnen de originele invoergegevens valideren tegen de uitvoergegevens op basis van de transformatieregels.
De staging-gegevens en de back-up zijn hier erg handig, zelfs als het bronsysteem de gegevens beschikbaar heeft of niet. Omdat een audit op elk moment en in elke periode van de huidige (of) gegevens uit het verleden kan plaatsvinden. De architectuur van de verzamelplaats moet goed worden gepland.
Het staginggebied ontwerpen
In het datawarehouse kunnen de gegevens van het verzamelgebied als volgt worden ontworpen:
Met elke nieuwe lading gegevens in verzameltabellen, kunnen de bestaande gegevens worden verwijderd (of) behouden als historische gegevens ter referentie. Als gegevens worden verwijderd, wordt dit een 'Transient Staging Area' genoemd.
Als gegevens worden bijgehouden als geschiedenis, wordt dit een 'Persistent staging-gebied' genoemd. U kunt ook een staging-gebied ontwerpen met een combinatie van de bovenstaande twee typen die 'Hybride' is.
Hier zijn de basisregels die bekend moeten zijn bij het ontwerpen van de verzamelplaats:
- Alleen het ETL-team mag toegang hebben tot het datastaging-gebied. Het opvragen van de staging-gegevens is beperkt tot andere gebruikers.
- Tabellen in het staging-gebied kunnen worden toegevoegd, gewijzigd of verwijderd door de ETL-data-architect zonder tussenkomst van andere gebruikers. Omdat het verzamelgebied geen presentatiegebied is om rapporten te genereren, fungeert het alleen als een werkbank.
- ETL-architect moet de omvang van de gegevensopslag van het verzamelgebied schatten om de details aan DBA- en OS-beheerders te verstrekken. Beheerders zullen ruimte toewijzen voor het opzetten van databases, bestandssystemen, mappen, enz.
Als het verzamelgebied en de DW-database dezelfde server gebruiken, kunt u de gegevens eenvoudig naar het DW-systeem verplaatsen. Als de servers anders zijn, gebruik dan FTP (of) databasekoppelingen.
ETL-processtroom
Een standaard ETL-cyclus doorloopt de onderstaande processtappen:
- Start de ETL-cyclus om taken op volgorde uit te voeren.
- Zorg ervoor dat alle metadata gereed is.
- ETL-cyclus helpt om de gegevens uit verschillende bronnen te extraheren.
- Valideer de geëxtraheerde gegevens.
- Als stagingtabellen worden gebruikt, laadt de ETL-cyclus de gegevens in staging.
- ETL voert transformaties uit door bedrijfsregels toe te passen, aggregaten te maken, enz
- Als er storingen zijn, zal de ETL-cyclus dit in de vorm van rapporten onder de aandacht brengen.
- Vervolgens laadt ETL-cyclus gegevens in de doeltabellen.
- Eerdere gegevens die moeten worden opgeslagen voor historische referentie, worden gearchiveerd.
- De rest van de gegevens die niet hoeven te worden opgeslagen, wordt opgeschoond.
ETL-processtroomschema:
Gevolgtrekking
In deze tutorial leerden we over de belangrijkste concepten van het ETL-proces in Data Warehouse. Inmiddels zou u moeten kunnen begrijpen wat gegevensextractie, gegevenstransformatie, gegevensladen en de ETL-processtroom is.
Lees de aanstaande tutorial om meer te weten te komen over Data Warehouse Testing !!
Bezoek hier voor de exclusieve datawarehousing-serie.
Aanbevolen literatuur
- Zelfstudie over datawarehousetesten met voorbeelden | ETL-testgids
- De 10 beste tools voor het in kaart brengen van gegevens die nuttig zijn in het ETL-proces (2021 LIST)
- ETL-testen Tutorial datawarehouse-testen (een complete gids)
- Datamining: proces, technieken en grote problemen bij gegevensanalyse
- Dataminingproces: modellen, processtappen en betrokken uitdagingen
- Vragen en antwoorden over ETL-tests
- Top 10 ETL-testtools in 2021
- Top 10 van populaire datawarehouse-tools en testtechnologieën