Delen via


Uitpakken, transformeren en laden (ETL) op de juiste schaal

ETL (Extract, Transform, and Load) is het proces waarmee gegevens worden verkregen uit verschillende bronnen. De gegevens worden verzameld op een standaardlocatie, opgeschoond en verwerkt. Uiteindelijk worden de gegevens geladen in een gegevensarchief waaruit ze kunnen worden opgevraagd. Verouderde ETL-processen verwerken gegevens importeren, opschonen en opslaan in een relationele gegevensengine. Met Azure HDInsight biedt een groot aantal Apache Hadoop-omgevingsonderdelen ondersteuning voor ETL op schaal.

Het gebruik van HDInsight in het ETL-proces wordt samengevat door deze pijplijn:

HDInsight ETL at scale overview.

In de volgende secties worden alle ETL-fasen en de bijbehorende onderdelen verkend.

Orchestration

Indeling omvat alle fasen van de ETL-pijplijn. ETL-taken in HDInsight hebben vaak betrekking op verschillende producten die in combinatie met elkaar werken. Voorbeeld:

  • U kunt Apache Hive gebruiken om een deel van de gegevens op te schonen en Apache Pig om een ander gedeelte op te schonen.
  • U kunt Azure Data Factory gebruiken om gegevens vanuit Azure Data Lake Store in Azure SQL Database te laden.

Indeling is nodig om de juiste taak op het juiste moment uit te voeren.

Apache Oozie

Apache Oozie is een coördinatiesysteem voor werkstromen waarmee Hadoop-taken worden beheerd. Oozie wordt uitgevoerd binnen een HDInsight-cluster en is geïntegreerd met de Hadoop-stack. Oozie ondersteunt Hadoop-taken voor Apache Hadoop MapReduce, Pig, Hive en Sqoop. U kunt Oozie gebruiken om taken te plannen die specifiek zijn voor een systeem, zoals Java-programma's of shellscripts.

Zie Apache Oozie gebruiken met Apache Hadoop om een werkstroom in HDInsight te definiëren en uit te voeren voor meer informatie. Zie ook operationeel maken van de gegevenspijplijn.

Azure Data Factory

Azure Data Factory biedt indelingsmogelijkheden in de vorm van PaaS (Platform as a Service). Azure Data Factory is een op de cloud gebaseerde gegevensintegratieservice. Hiermee kunt u gegevensgestuurde werkstromen maken voor het organiseren en automatiseren van gegevensverplaatsing en gegevenstransformatie.

Azure Data Factory gebruiken om:

  1. Gegevensgestuurde werkstromen maken en plannen. Deze pijplijnen nemen gegevens op uit verschillende gegevensarchieven.
  2. De gegevens verwerken en transformeren met behulp van rekenservices zoals HDInsight of Hadoop. U kunt ook Spark, Azure Data Lake Analytics, Azure Batch of Azure Machine Learning gebruiken voor deze stap.
  3. Uitvoergegevens publiceren naar gegevensarchieven, zoals Azure Synapse Analytics, zodat BI-toepassingen deze kunnen gebruiken.

Zie de documentatie voor meer informatie over Azure Data Factory.

Bestandsopslag en resultaatopslag opnemen

Brongegevensbestanden worden doorgaans geladen op een locatie in Azure Storage of Azure Data Lake Storage. De bestanden hebben meestal een platte indeling, zoals CSV. Maar ze kunnen in elke indeling zijn.

Azure Storage

Azure Storage heeft specifieke aanpassingsdoelen. Zie Schaalbaarheids- en prestatiedoelen voor Blob Storage voor meer informatie. Voor de meeste analyseknooppunten wordt Azure Storage het beste geschaald bij het verwerken van veel kleinere bestanden. Zolang u zich binnen de limieten van uw account bevindt, garandeert Azure Storage dezelfde prestaties, ongeacht hoe groot de bestanden zijn. U kunt terabytes aan gegevens opslaan en toch consistente prestaties krijgen. Deze instructie is waar, ongeacht of u een subset of alle gegevens gebruikt.

Azure Storage heeft verschillende typen blobs. Een toevoeg-blob is een uitstekende optie voor het opslaan van weblogboeken of sensorgegevens.

Meerdere blobs kunnen op veel servers worden gedistribueerd om de toegang tot deze blobs uit te schalen. Maar één blob wordt slechts door één server bediend. Hoewel blobs logisch kunnen worden gegroepeerd in blobcontainers, zijn er geen partitioneringsgevolgen van deze groepering.

Azure Storage heeft een WebHDFS API-laag voor de blobopslag. Alle HDInsight-services hebben toegang tot bestanden in Azure Blob Storage voor het opschonen en verwerken van gegevens. Dit is vergelijkbaar met hoe deze services Hadoop Distributed File System (HDFS) zouden gebruiken.

Gegevens worden doorgaans opgenomen in Azure Storage via PowerShell, de Azure Storage SDK of AzCopy.

Azure Data Lake Storage

Azure Data Lake Storage is een beheerde, hyperscale-opslagplaats voor analysegegevens. Het is compatibel met en maakt gebruik van een ontwerpparadigma dat vergelijkbaar is met HDFS. Data Lake Storage biedt onbeperkte aanpassingsmogelijkheden voor de totale capaciteit en de grootte van afzonderlijke bestanden. Het is een goede keuze bij het werken met grote bestanden, omdat ze kunnen worden opgeslagen op meerdere knooppunten. Het partitioneren van gegevens in Data Lake Storage wordt achter de schermen uitgevoerd. Data Lake Store biedt u een enorme doorvoer voor het uitvoeren van analysetaken waarbij meer dan duizend simultane uitvoerders honderden terabytes aan gegevens efficiënt lezen en schrijven.

Gegevens worden meestal opgenomen in Data Lake Storage via Azure Data Factory. U kunt ook Data Lake Storage SDK's, de AdlCopy-service, Apache DistCp of Apache Sqoop gebruiken. De service die u kiest, is afhankelijk van waar de gegevens zich bevinden. Als het zich in een bestaand Hadoop-cluster bevindt, kunt u Apache DistCp, de AdlCopy-service of Azure Data Factory gebruiken. Voor gegevens in Azure Blob Storage kunt u Azure Data Lake Storage .NET SDK, Azure PowerShell of Azure Data Factory gebruiken.

Data Lake Storage is geoptimaliseerd voor gebeurtenisopname via Azure Event Hubs.

Overwegingen voor beide opslagopties

Voor het uploaden van gegevenssets in het terabyte-bereik kan netwerklatentie een groot probleem zijn. Dit geldt met name als de gegevens afkomstig zijn van een on-premises locatie. In dergelijke gevallen kunt u deze opties gebruiken:

  • Azure ExpressRoute: Maak privéverbindingen tussen Azure-datacenters en uw on-premises infrastructuur. Deze verbindingen bieden een betrouwbare optie voor het overdragen van grote hoeveelheden gegevens. Zie de Documentatie voor Azure ExpressRoute voor meer informatie.

  • Gegevens uploaden vanaf harde schijven: u kunt de Azure Import/Export-service gebruiken om harde schijven met uw gegevens naar een Azure-datacenter te verzenden. Uw gegevens worden eerst geüpload naar Azure Blob Storage. Vervolgens kunt u Azure Data Factory of het hulpprogramma AdlCopy gebruiken om gegevens van Azure Blob Storage te kopiëren naar Data Lake Storage.

Azure Synapse Analytics

Azure Synapse Analytics is een geschikte keuze voor het opslaan van voorbereide resultaten. U kunt Azure HDInsight gebruiken om deze services uit te voeren voor Azure Synapse Analytics.

Azure Synapse Analytics is een relationeel databasearchief dat is geoptimaliseerd voor analyseworkloads. De schaal wordt geschaald op basis van gepartitioneerde tabellen. Tabellen kunnen worden gepartitioneerd over meerdere knooppunten. De knooppunten worden geselecteerd op het moment van maken. Ze kunnen na het feit worden geschaald, maar dat is een actief proces dat mogelijk gegevensverplaatsing vereist. Zie Compute beheren in Azure Synapse Analytics voor meer informatie.

Apache HBase

Apache HBase is een sleutel-/waardearchief dat beschikbaar is in Azure HDInsight. Het is een opensource NoSQL-database die is gebouwd op Hadoop en gemodelleerd na Google BigTable. HBase biedt krachtige willekeurige toegang en sterke consistentie voor grote hoeveelheden ongestructureerde en semi-gestructureerde gegevens.

Omdat HBase een schemaloze database is, hoeft u geen kolommen en gegevenstypen te definiëren voordat u ze gebruikt. Gegevens worden opgeslagen in de rijen van een tabel en worden gegroepeerd op kolomfamilie.

De open-source code wordt lineair geschaald om petabytes aan gegevens op duizenden knooppunten te verwerken. HBase is afhankelijk van gegevensredundantie, batchverwerking en andere functies die worden geleverd door gedistribueerde toepassingen in de Hadoop-omgeving.

HBase is een goede bestemming voor sensor- en logboekgegevens voor toekomstige analyse.

HBase-aanpassing is afhankelijk van het aantal knooppunten in het HDInsight-cluster.

Azure SQL-databases

Azure biedt drie relationele PaaS-databases:

Voeg meer CPU en geheugen toe om deze producten omhoog te schalen. U kunt er ook voor kiezen om Premium-schijven te gebruiken met de producten voor betere I/O-prestaties.

Azure Analysis Services

Azure Analysis Services is een analytische gegevensengine die wordt gebruikt bij beslissingsondersteuning en bedrijfsanalyse. Het biedt de analytische gegevens voor zakelijke rapporten en clienttoepassingen zoals Power BI. De analytische gegevens werken ook met Excel- en SQL Server Reporting Services-rapporten en andere hulpprogramma's voor gegevensvisualisatie.

Schaal analysekubussen door lagen voor elke afzonderlijke kubus te wijzigen. Zie prijzen voor Azure Analysis Services voor meer informatie.

Extraheren en laden

Nadat de gegevens in Azure aanwezig zijn, kunt u veel services gebruiken om deze te extraheren en te laden in andere producten. HDInsight ondersteunt Sqoop en Flume.

Apache Sqoop

Apache Sqoop is een hulpprogramma dat is ontworpen voor het efficiënt overdragen van gegevens tussen gestructureerde, semi-gestructureerde en ongestructureerde gegevensbronnen.

Sqoop maakt gebruik van MapReduce om de gegevens te importeren en te exporteren, om parallelle bewerkingen en fouttolerantie te bieden.

Apache Flume

Apache Flume is een gedistribueerde, betrouwbare en beschikbare service voor het efficiënt verzamelen, samenvoegen en verplaatsen van grote hoeveelheden logboekgegevens. De flexibele architectuur is gebaseerd op streaminggegevensstromen. Flume is robuust en fouttolerant met niet-betrouwbare mechanismen. Het heeft veel failover- en herstelmechanismen. Flume maakt gebruik van een eenvoudig uitbreidbaar gegevensmodel waarmee online, analytische toepassingen mogelijk zijn.

Apache Flume kan niet worden gebruikt met Azure HDInsight. Maar een on-premises Hadoop-installatie kan Flume gebruiken om gegevens te verzenden naar Azure Blob Storage of Azure Data Lake Storage. Zie Apache Flume gebruiken met HDInsight voor meer informatie.

Transformeren

Nadat de gegevens op de gekozen locatie aanwezig zijn, moet u deze opschonen, combineren of voorbereiden op een specifiek gebruikspatroon. Hive, Pig en Spark SQL zijn allemaal goede keuzes voor dat soort werk. Ze worden allemaal ondersteund in HDInsight.

Volgende stappen