Batchverwerking
Een veelvoorkomende big data is batchverwerking van data-at-rest. In dit scenario worden de brongegevens geladen in de gegevensopslag, hetzij door de brontoepassing zelf ofwel door een orchestration-werkstroom. De gegevens worden vervolgens in-place verwerkt door een ge parallelliseerde taak, die ook kan worden gestart door de orchestration-werkstroom. De verwerking kan meerdere iteratieve stappen bevatten voordat de getransformeerde resultaten worden geladen in een analytische gegevensopslag, die kan worden opgevraagd door analyse- en rapportageonderdelen.
De logboeken van een webserver kunnen bijvoorbeeld worden gekopieerd naar een map en vervolgens 's nachts worden verwerkt om dagelijkse rapporten over webactiviteit te genereren.

Wanneer gebruikt u deze oplossing?
Batchverwerking wordt gebruikt in verschillende scenario's, van eenvoudige gegevenstransformaties tot een meer volledige ETL-pijplijn (extract-transform-load). In een big data kan batchverwerking worden gebruikt voor zeer grote gegevenssets, waarbij de berekening veel tijd kost. (Zie bijvoorbeeld Lambda-architectuur.) Batchverwerking leidt doorgaans tot verdere interactieve verkenning, biedt de gegevens die gereed zijn voor machine learning of schrijft de gegevens naar een gegevensopslag die is geoptimaliseerd voor analyse en visualisatie.
Een voorbeeld van batchverwerking is het transformeren van een grote set platte, semi-gestructureerde CSV- of JSON-bestanden naar een geschematiseerde en gestructureerde indeling die gereed is voor verdere query's. Normaal gesproken worden de gegevens geconverteerd van de onbewerkte indelingen die worden gebruikt voor opname (zoals CSV) naar binaire indelingen die beter presteren voor het uitvoeren van query's, omdat ze gegevens opslaan in een kolomindeling en vaak indexen en inline statistieken over de gegevens bieden.
Uitdagingen
Gegevensindeling en -codering. Enkele van de lastigste problemen om fouten op te sporen, vinden plaats wanneer bestanden een onverwachte indeling of codering gebruiken. Bronbestanden kunnen bijvoorbeeld een combinatie van UTF-16- en UTF-8-codering gebruiken, of onverwachte scheidingstekens (spatie versus tab) bevatten of onverwachte tekens bevatten. Een ander veelvoorkomende voorbeeld zijn tekstvelden die tabbladen, spaties of komma's bevatten die worden geïnterpreteerd als scheidingstekens. De logica voor het laden en parseren van gegevens moet flexibel genoeg zijn om deze problemen te detecteren en te verwerken.
Tijdssegmenten insnijden. Vaak worden brongegevens in een maphiërarchie geplaatst waarin verwerkingsvensters worden weergegeven, geordend op jaar, maand, dag, uur, en meer. In sommige gevallen kunnen gegevens te laat binnenkomen. Stel bijvoorbeeld dat een webserver uitvalt en dat de logboeken voor 7 maart pas op 9 maart in de map voor verwerking staan. Worden ze gewoon genegeerd omdat ze te laat zijn? Kan de downstreamverwerkingslogica out-of-orderrecords verwerken?
Architectuur
Een batchverwerkingsarchitectuur bevat de volgende logische onderdelen, zoals wordt weergegeven in het bovenstaande diagram.
Gegevensopslag. Doorgaans een gedistribueerd bestandsopslag die kan fungeren als opslagplaats voor grote volumes grote bestanden in verschillende indelingen. Algemeen wordt dit soort winkel vaak aangeduid als een data lake.
Batchverwerking. De hoge volume aard van big data betekent vaak dat oplossingen gegevensbestanden moeten verwerken met behulp van langlopende batchtaken om de gegevens te filteren, samen te stellen en anderszins voor te bereiden voor analyse. Deze taken omvatten meestal het lezen van bronbestanden, het verwerken ervan, en het schrijven van de uitvoer naar nieuwe bestanden.
Analytische gegevensarchieven. Veel big data zijn ontworpen om gegevens voor te bereiden voor analyse en vervolgens de verwerkte gegevens in een gestructureerde indeling te leveren die kan worden opgevraagd met behulp van analytische hulpprogramma's.
Analyse en rapportage. Het doel van de meeste big data-oplossingen is inzicht te bieden in gegevens via analyse en rapportage.
Indeling. Bij batchverwerking is doorgaans enige orchestration vereist voor het migreren of kopiëren van de gegevens naar uw gegevensopslag, batchverwerking, analytische gegevensopslag en rapportagelagen.
Technologieopties
De volgende technologieën zijn aanbevolen opties voor batchverwerkingsoplossingen in Azure.
Gegevensopslag
- Azure Storage Blob-containers. Veel bestaande Azure-bedrijfsprocessen maken al gebruik van Azure Blob Storage, waardoor dit een goede keuze is voor big data opslag.
- Azure Data Lake Store. Azure Data Lake Store biedt vrijwel onbeperkte opslag voor elke bestandsgrootte en uitgebreide beveiligingsopties, waardoor het een goede keuze is voor grootschalige big data-oplossingen waarvoor een gecentraliseerd archief voor gegevens in heterogene indelingen is vereist.
Zie Gegevensopslag voor meer informatie.
Batchverwerking
- U-SQL. U-SQL is de queryverwerkingstaal die wordt gebruikt door Azure Data Lake Analytics. Het combineert de declaratieve aard van SQL met de procedurele extensibility van C# en maakt gebruik van parallelle verwerking om efficiënte verwerking van gegevens op grote schaal mogelijk te maken.
- Hive. Hive is een SQL-achtige taal die wordt ondersteund in de meeste Hadoop-distributies, waaronder HDInsight. Het kan worden gebruikt voor het verwerken van gegevens uit elk HDFS-compatibele opslag, waaronder Azure Blob Storage en Azure Data Lake Store.
- Pig. Pig is een declaratieve big data die wordt gebruikt in veel Hadoop-distributies, waaronder HDInsight. Het is met name handig voor het verwerken van ongestructureerde of semi-gestructureerde gegevens.
- Spark. De Spark-engine ondersteunt batchverwerkingsprogramma's die zijn geschreven in verschillende talen, waaronder Java, Scala en Python. Spark maakt gebruik van een gedistribueerde architectuur om gegevens parallel te verwerken op meerdere werkknooppunten.
Zie Batchverwerking voor meer informatie.
Analytische gegevensopslag
- Azure Synapse Analytics. Azure Synapse is een beheerde service op basis van SQL Server databasetechnologieën en geoptimaliseerd voor de ondersteuning van grootschalige workloads voor datawarehousing.
- Spark SQL. Spark SQL is een API die is gebouwd op Spark en die ondersteuning biedt voor het maken van gegevensframes en tabellen die kunnen worden opgevraagd met behulp van SQL syntaxis.
- HBase. HBase is een NoSQL-opslag met lage latentie die een krachtige, flexibele optie biedt voor het uitvoeren van query's op gestructureerde en semi-gestructureerde gegevens.
- Hive. Hive is niet alleen nuttig voor batchverwerking, maar biedt ook een databasearchitectuur die conceptueel vergelijkbaar is met die van een typisch relationeel databasebeheersysteem. Dankzij verbeteringen in de prestaties van Hive-query's via innovaties zoals de Tez-engine en het Stinger-initiatief kunnen Hive-tabellen in sommige scenario's effectief worden gebruikt als bronnen voor analytische query's.
Zie Analytische gegevensopslag voor meer informatie.
Analyse en rapportage
- Azure Analysis Services. Veel big data-oplossingen emuleren traditionele enterprise business intelligence architecturen door een gecentraliseerd OLAP-gegevensmodel (Online Analytical Processing) (ook wel kubus genoemd) op te nemen waarop rapporten, dashboards en interactieve analyse met segmenten en dobbelstenen kunnen worden gebaseerd. Azure Analysis Services ondersteunt het maken van tabellaire modellen om aan deze behoefte te voldoen.
- Power BI. Power BI kunnen gegevensanalisten interactieve gegevensvisualisaties maken op basis van gegevensmodellen in een OLAP-model of rechtstreeks vanuit een analytische gegevensopslag.
- Microsoft Excel. Microsoft Excel is een van de meest gebruikte softwaretoepassingen ter wereld en biedt een schat aan mogelijkheden voor gegevensanalyse en visualisatie. Gegevensanalisten kunnen Excel om documentgegevensmodellen te bouwen uit analytische gegevensopslag of om gegevens op te halen uit OLAP-gegevensmodellen in interactieve draaitabellen en grafieken.
Zie Analyse en rapportage voor meer informatie.
Orchestration
- Azure Data Factory. Azure Data Factory pijplijnen kunnen worden gebruikt voor het definiëren van een reeks activiteiten, gepland voor terugkerende tijdelijke vensters. Deze activiteiten kunnen bewerkingen voor het kopiëren van gegevens initiëren, evenals Hive-, Pig-, MapReduce- of Spark-taken in HDInsight-clusters op aanvraag; U-SQL taken in Azure Date Lake Analytics; en opgeslagen procedures in Azure Synapse of Azure SQL Database.
- Oozie en Sqoop. Oozie is een engine voor taakautomatisering voor het Apache Hadoop-ecosysteem en kan worden gebruikt om kopieerbewerkingen voor gegevens te initiëren, evenals Hive-, Pig- en MapReduce-taken voor het verwerken van gegevens en Sqoop-taken om gegevens te kopiëren tussen HDFS- en SQL-databases.