Extraheren, transformeren en laden (Extraction, Transformation, and Loading, of ETL)

Azure Synapse Analytics
Azure Data Factory

Een veelvoorkomend probleem waarmee organisaties te maken hebben, is het verzamelen van gegevens uit meerdere bronnen, in meerdere indelingen. Vervolgens moet u deze verplaatsen naar een of meer gegevensarchieven. Het doel is mogelijk niet hetzelfde type gegevensarchief als de bron. Vaak is de indeling anders of moeten de gegevens worden vormgegeven of opgeschoond voordat ze in de uiteindelijke bestemming worden geladen.

Verschillende hulpprogramma's, services en processen zijn in de loop der jaren ontwikkeld om deze uitdagingen aan te pakken. Ongeacht het gebruikte proces is er een veelvoorkomende noodzaak om het werk te coördineren en een bepaald niveau van gegevenstransformatie toe te passen binnen de gegevenspijplijn. In de volgende secties worden de algemene methoden gemarkeerd die worden gebruikt om deze taken uit te voeren.

ETL-proces (Extraheren, transformeren en laden)

ETL (Extract, Transform, and Load) is een gegevenspijplijn die wordt gebruikt voor het verzamelen van gegevens uit verschillende bronnen. Vervolgens worden de gegevens op basis van bedrijfsregels getransformeerd en worden de gegevens in een doelgegevensarchief geladen. Het transformatiewerk in ETL vindt plaats in een gespecialiseerde engine en het gaat vaak om het gebruik van faseringstabellen om gegevens tijdelijk vast te houden wanneer deze worden getransformeerd en uiteindelijk naar de bestemming worden geladen.

Diagram of the extract-transform-load (ETL) process.

De gegevenstransformatie die plaatsvindt, omvat meestal verschillende bewerkingen, zoals filteren, sorteren, samenvoegen, gegevens samenvoegen, gegevens opschonen, ontdubbelen en valideren van gegevens.

Vaak worden de drie ETL-fasen parallel uitgevoerd om tijd te besparen. Terwijl gegevens bijvoorbeeld worden geëxtraheerd, kan een transformatieproces werken aan gegevens die al zijn ontvangen en voorbereiden voor het laden, en kan een laadproces beginnen met het werken aan de voorbereide gegevens, in plaats van te wachten tot het hele extractieproces is voltooid.

Relevante Azure-service:

Andere hulpprogramma's:

Extraheren, laden en transformeren (extract, load, and transform, of ELT)

ELT (Extract, Load, and Transform) verschilt alleen van ETL waar de transformatie plaatsvindt. In de ELT-pijplijn vindt de transformatie plaats in het doelgegevensarchief. In plaats van een afzonderlijke transformatie-engine te gebruiken, worden de verwerkingsmogelijkheden van het doelgegevensarchief 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 doelgegevensarchief ook de prestaties van de ELT-pijplijn schaalt. ELT werkt echter alleen goed wanneer het doelsysteem krachtig genoeg is om de gegevens efficiënt te transformeren.

Diagram of the extract-load-transform (ELT) process.

Typische gebruiksvoorbeelden voor ELT vallen binnen de big data-realm. U kunt bijvoorbeeld beginnen met het extraheren van alle brongegevens naar platte bestanden in schaalbare opslag, zoals een hadoop gedistribueerd bestandssysteem, een Azure Blob-archief of Azure Data Lake Gen 2 (of een combinatie). Technologieën, zoals Spark, Hive of Polybase, kunnen vervolgens worden gebruikt om query's uit te voeren op de brongegevens. Het belangrijkste punt met ELT is dat het gegevensarchief dat wordt gebruikt om de transformatie uit te voeren, hetzelfde gegevensarchief is als waar de gegevens uiteindelijk worden verbruikt. Dit gegevensarchief leest rechtstreeks vanuit de schaalbare opslag, in plaats van de gegevens te laden in een eigen eigen opslag. Met deze methode wordt de stap voor het kopiëren van gegevens in ETL overgeslagen. Dit kan vaak een tijdrovende bewerking zijn voor grote gegevenssets.

In de praktijk is het doelgegevensarchief een datawarehouse met behulp van een Hadoop-cluster (met Hive of Spark) of een toegewezen SQL-pools in Azure Synapse Analytics. Over het algemeen wordt een schema overlappend op de platte bestandsgegevens tijdens de query en opgeslagen als een tabel, zodat de gegevens kunnen worden opgevraagd zoals elke andere tabel in het gegevensarchief. Deze worden externe tabellen genoemd omdat de gegevens zich niet in de opslag bevinden die wordt beheerd door het gegevensarchief zelf, maar op een aantal externe schaalbare opslag, zoals Azure Data Lake Store of Azure Blob Storage.

Het gegevensarchief beheert alleen het schema van de gegevens en past het schema toe op lezen. Een Hadoop-cluster met Hive beschrijft bijvoorbeeld een Hive-tabel waarin de gegevensbron effectief een pad naar een set bestanden in HDFS is. In Azure Synapse kan PolyBase hetzelfde resultaat bereiken: een tabel 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 gegevensarchief. In big data-scenario's betekent dit dat het gegevensarchief geschikt moet zijn voor MPP (Massively Parallel Processing), waardoor de gegevens in kleinere segmenten worden gesplitst en de verwerking van de segmenten parallel over meerdere knooppunten moet worden verdeeld.

De laatste fase van de ELT-pijplijn is doorgaans het transformeren van de brongegevens in een uiteindelijke indeling die efficiënter is voor de typen query's die moeten worden ondersteund. De gegevens kunnen bijvoorbeeld worden gepartitioneerd. Daarnaast kan ELT geoptimaliseerde opslagindelingen zoals Parquet gebruiken, waarmee rijgeoriënteerde gegevens op een kolom worden opgeslagen en geoptimaliseerde indexering worden geboden.

Relevante Azure-service:

Andere hulpprogramma's:

Gegevensstroom en controlestroom

In de context van gegevenspijplijnen zorgt de controlestroom voor de ordelijke verwerking van een set taken. Om de juiste verwerkingsvolgorde van deze taken af te dwingen, worden prioriteitsbeperkingen gebruikt. U kunt deze beperkingen beschouwen als connectors in een werkstroomdiagram, zoals wordt weergegeven in de onderstaande afbeelding. Elke taak heeft een resultaat, zoals geslaagd, mislukt of voltooiing. Elke volgende taak start de verwerking pas nadat de voorafgaande taak met een van deze resultaten is voltooid.

Beheerstromen voeren gegevensstromen uit als een taak. In een gegevensstroomtaak worden gegevens geëxtraheerd uit een bron, getransformeerd of geladen in een gegevensarchief. De uitvoer van een gegevensstroomtaak kan de invoer zijn voor de volgende gegevensstroomtaak en gegevensstromen kunnen parallel worden uitgevoerd. In tegenstelling tot besturingsstromen kunt u geen beperkingen toevoegen tussen taken in een gegevensstroom. U kunt echter een gegevensviewer toevoegen om de gegevens te observeren terwijl deze door elke taak worden verwerkt.

Diagram of a data flow being executed as a task within a control flow.

In het bovenstaande diagram zijn er verschillende taken binnen de controlestroom, waarvan een van deze taken een gegevensstroomtaak is. Een van de taken is genest in een container. Containers kunnen worden gebruikt om structuur aan taken te bieden, wat een werkeenheid biedt. Een voorbeeld hiervan is het herhalen van elementen in een verzameling, zoals bestanden in een map of database-instructies.

Relevante Azure-service:

Andere hulpprogramma's:

Technologieopties

Bijdragers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Hoofdauteur:

Volgende stappen

In de volgende referentiearchitecturen ziet u end-to-end ELT-pijplijnen in Azure: