Uitpakken, transformeren en laden (ETL)
Een veelvoorkomende probleem waar organisaties mee te maken krijgen, is het verzamelen van gegevens uit meerdere bronnen, in meerdere indelingen, en het verplaatsen van gegevens naar een of meer gegevensopslag. Het doel is mogelijk niet hetzelfde type gegevensopslag als de bron en vaak is de indeling anders, of moeten de gegevens worden vormgegeven of opgeschoond voordat ze naar de eindbestemming worden geladen.
In de loop van de jaren zijn verschillende hulpprogramma's, services en processen ontwikkeld om deze uitdagingen het hoofd te bieden. Ongeacht het proces dat wordt gebruikt, is er een algemene noodzaak om het werk te coördineren en een niveau van gegevenstransformatie toe te passen binnen de gegevenspijplijn. In de volgende secties worden de algemene methoden belicht die worden gebruikt om deze taken uit te voeren.
ETL-proces (Extraheren, transformeren en laden)
Extraheren, transformeren en laden (ETL) is een gegevenspijplijn die wordt gebruikt voor het verzamelen van gegevens uit verschillende bronnen, het transformeren van de gegevens volgens bedrijfsregels en het laden ervan in een doelgegevensopslag. Het transformatiewerk in ETL vindt plaats in een gespecialiseerde engine en omvat vaak het gebruik van faseringstabellen voor het tijdelijk opslaan van gegevens terwijl deze worden getransformeerd en uiteindelijk naar de bestemming worden geladen.
De gegevenstransformatie die plaatsvindt, omvat meestal verschillende bewerkingen, zoals filteren, sorteren, aggregeren, samenvoegen van gegevens, gegevens opsschoonen, ontdubbelen en valideren van gegevens.

Vaak worden de drie ETL-fasen parallel uitgevoerd om tijd te besparen. Terwijl er bijvoorbeeld gegevens worden geëxtraheerd, kan een transformatieproces werken aan gegevens die al zijn ontvangen en deze voorbereiden voor het laden, en kan een laadproces aan de voorbereide gegevens beginnen werken in plaats van te wachten tot het volledige extractieproces is voltooid.
Relevante Azure-service:
Andere hulpprogramma's:
Extraheren, laden en transformeren (extract, load, and transform, of ELT)
Extraheren, laden en transformeren (ELT) verschilt uitsluitend van ETL in de plaats waar de transformatie plaatsvindt. In de ELT-pijplijn vindt de transformatie plaats in het doelgegevensopslag. In plaats van een afzonderlijke transformatie-engine te gebruiken, worden de verwerkingsmogelijkheden van het doelgegevensopslag gebruikt om gegevens te transformeren. Dit vereenvoudigt de architectuur door de transformatie-engine uit de pijplijn te verwijderen. Een ander voordeel van deze benadering is dat het schalen van het doelgegevensopslag ook de prestaties van de ELT-pijplijn schaalt. ELT werkt echter alleen goed als het doelsysteem krachtig genoeg is om de gegevens efficiënt te transformeren.

Typische gebruiksgevallen voor ELT vallen binnen big data realm. U kunt bijvoorbeeld beginnen met het extraheren van alle brongegevens naar platte bestanden in schaalbare opslag, zoals HdFS (Hadoop Distributed File System) of Azure Data Lake Store. Technologieën zoals Spark, Hive of PolyBase kunnen vervolgens worden gebruikt om query's uit te voeren op de brongegevens. Het belangrijkste punt bij ELT is dat het gegevensopslag dat wordt gebruikt om de transformatie uit te voeren, hetzelfde gegevensopslag is als het gegevensopslag waar de gegevens uiteindelijk worden gebruikt. Dit gegevensopslag leest rechtstreeks vanuit de schaalbare opslag, in plaats van de gegevens in een eigen opslag te laden. Met deze methode wordt de stap voor het kopiëren van gegevens overgeslagen die aanwezig is in ETL. Dit kan een tijdrovende bewerking zijn voor grote gegevenssets.
In de praktijk is het doelgegevensopslag een datawarehouse dat gebruik maakt van een Hadoop-cluster (met behulp van Hive of Spark) of een Azure Synapse Analytics. Over het algemeen wordt een schema over de platte bestandsgegevens heen gelegd tijdens het uitvoeren van de query en opgeslagen als een tabel, waardoor de gegevens kunnen worden opgevraagd zoals elke andere tabel in het gegevensopslag. Deze worden externe tabellen genoemd omdat de gegevens zich niet in de opslag bevinden die wordt beheerd door het gegevensopslag zelf, maar in een externe schaalbare opslag.
Het gegevensopslag beheert alleen het schema van de gegevens en past het schema toe bij lezen. Een Hadoop-cluster met Hive zou bijvoorbeeld een Hive-tabel beschrijven waarin de gegevensbron in de meeste gevallen een pad is naar een set bestanden in HDFS. PolyBase Azure Synapse hetzelfde resultaat bereiken door een tabel te maken op basis van gegevens die extern zijn opgeslagen — in de database zelf. Zodra de brongegevens zijn geladen, kunnen de gegevens in de externe tabellen worden verwerkt met behulp van de mogelijkheden van het gegevensopslag. In big data betekent dit dat het gegevensopslag MPP (Massively Parallel Processing) moet kunnen verwerken, waardoor de gegevens in kleinere segmenten worden verdeeld en de verwerking van de segmenten parallel over meerdere machines wordt verdeeld.
De laatste fase van de ELT-pijplijn bestaat doorgaans uit het transformeren van de brongegevens naar een uiteindelijke indeling die efficiënter is voor de typen query's die moeten worden ondersteund. De gegevens kunnen bijvoorbeeld worden gepartitiefd. ELT kan ook gebruikmaken van geoptimaliseerde opslagindelingen, zoals Parquet, waarmee rijgegevens op kolomvorm worden opgeslagen en geoptimaliseerde indexering mogelijk is.
Relevante Azure-service:
Andere hulpprogramma's:
Gegevensstroom en controlestroom
In de context van gegevenspijplijnen zorgt de controlestroom ervoor dat een set taken op volgorde wordt verwerkt. Om de juiste verwerkingsorde van deze taken af te dwingen, worden er prioriteitsbeperkingen gebruikt. U kunt deze beperkingen zien als connectors in een werkstroomdiagram, zoals wordt weergegeven in de onderstaande afbeelding. Elke taak heeft een resultaat, zoals slagen, mislukken of voltooien. Elke volgende taak start de verwerking pas als zijn voorganger een van deze resultaten heeft voltooid.
Met controlestromen worden gegevensstromen als een taak uitgevoerd. In een gegevensstroomtaak worden gegevens uit een bron geëxtraheerd, getransformeerd of in een gegevensopslag geladen. De uitvoer van één gegevensstroomtaak kan de invoer zijn voor de volgende gegevensstroomtaak en gegevensstromen kunnen parallel worden uitgevoerd. In tegenstelling tot controlestromen kunt u geen beperkingen toevoegen tussen taken in een gegevensstroom. U kunt echter een data viewer om de gegevens te observeren terwijl deze door elke taak worden verwerkt.

In het bovenstaande diagram zijn er verschillende taken in de controlestroom, waarvan een gegevensstroomtaak is. Een van de taken is genest in een container. Containers kunnen worden gebruikt om taken structuur te geven en zo een werkeenheid te bieden. Een voorbeeld hiervan is het herhalen van elementen binnen een verzameling, zoals bestanden in een map of database-instructies.
Relevante Azure-service:
Andere hulpprogramma's:
Technologieopties
- OLTP-gegevensopslag (Online Transaction Processing)
- OLAP-gegevensopslag (Online Analytical Processing)
- Datawarehouses
- Pijplijnindeling
Volgende stappen
De volgende referentiearchitectlijnen tonen end-to-end ELT-pijplijnen in Azure: