Batchbearbetning

Ett vanligt scenario för stordata är batchbearbetning av vilodata. I det här scenariot läses källdata in i datalagringen, antingen av själva källprogrammet eller av ett orkestreringsarbetsflöde. Data bearbetas sedan på plats av ett parallelliserat jobb, som också kan initieras av orkestreringsarbetsflödet. Bearbetningen kan innehålla flera iterativa steg innan de transformerade resultaten läses in i ett analysdatalager som kan efterfrågas av analys- och rapporteringskomponenter.

Loggarna från en webbserver kan till exempel kopieras till en mapp och sedan bearbetas över natten för att generera dagliga rapporter om webbaktivitet.

Diagram över en pipeline för batchbearbetning

När du ska använda den här lösningen

Batchbearbetning används i en mängd olika scenarier, från enkla datatransformeringar till en mer komplett ETL-pipeline (extract-transform-load). I en stordatakontext kan batchbearbetningen fungera över mycket stora datamängder, där beräkningen tar lång tid. (Se till exempel Lambda-arkitektur.) Batchbearbetning leder vanligtvis till ytterligare interaktiv utforskning, tillhandahåller modelleringsklara data för maskininlärning eller skriver data till ett datalager som är optimerat för analys och visualisering.

Ett exempel på batchbearbetning är att omvandla en stor uppsättning flata, halvstrukturerade CSV- eller JSON-filer till ett schematiserat och strukturerat format som är redo för ytterligare frågor. Vanligtvis konverteras data från de rådataformat som används för inmatning (till exempel CSV) till binära format som är mer presterande för frågor eftersom de lagrar data i ett kolumnformat och ofta tillhandahåller index och infogade statistik om data.

Utmaningar

  • Dataformat och kodning. Några av de svåraste problemen att felsöka inträffar när filer använder ett oväntat format eller kodning. Källfiler kan till exempel använda en blandning av UTF-16- och UTF-8-kodning, eller innehålla oväntade avgränsare (blanksteg kontra tabb) eller innehålla oväntade tecken. Ett annat vanligt exempel är textfält som innehåller tabbar, blanksteg eller kommatecken som tolkas som avgränsare. Logiken för inläsning och parsning av data måste vara tillräckligt flexibel för att identifiera och hantera dessa problem.

  • Orkestrering av tidssegment. Källdata placeras ofta i en mapphierarki som återspeglar bearbetningsfönster, ordnade efter år, månad, dag, timme och så vidare. I vissa fall kan data bli försenade. Anta till exempel att en webbserver misslyckas och att loggarna för den 7 mars inte hamnar i mappen för bearbetning förrän den 9 mars. Ignoreras de bara för att de är för sent? Kan den underordnade bearbetningslogiken hantera poster som inte är i ordning?

Arkitektur

En arkitektur för batchbearbetning har följande logiska komponenter, som visas i diagrammet ovan.

  • Datalagring. Vanligtvis ett distribuerat filarkiv som kan fungera som en lagringsplats för stora mängder stora filer i olika format. Allmänt kallas den här typen av butik ofta för en datasjö.

  • Batchbearbetning. Stordatas stora volym innebär ofta att lösningar måste bearbeta datafiler med hjälp av långvariga batchjobb för att filtrera, aggregera och på annat sätt förbereda data för analys. Sådana jobb består ofta i att läsa källfiler, bearbeta dem och skriva utdata till nya filer.

  • Analysdatalager. Många stordatalösningar är utformade för att förbereda data för analys och sedan hantera bearbetade data i ett strukturerat format som kan efterfrågas med analysverktyg.

  • Analys och rapportering. Målet för de flesta stordatalösningar är att ge insikter om data genom analys och rapportering.

  • Orkestrering. Med batchbearbetning krävs vanligtvis viss orkestrering för att migrera eller kopiera data till datalagring, batchbearbetning, analysdatalager och rapporteringslager.

Teknikval

Följande tekniker är rekommenderade alternativ för batchbearbetningslösningar i Azure.

Datalagring

  • Azure Storage blobcontainrar. Många befintliga Azure-affärsprocesser använder redan Azure Blob Storage, vilket gör det här till ett bra alternativ för ett stordatalager.
  • Azure Data Lake Store. Azure Data Lake Store erbjuder praktiskt taget obegränsad lagring för alla filstorlekar och omfattande säkerhetsalternativ, vilket gör det till ett bra val för mycket storskaliga stordatalösningar som kräver ett centraliserat lager för data i heterogena format.

Mer information finns i Datalagring.

Batchbearbetning

  • U-SQL. U-SQL är det frågebearbetningsspråk som används av Azure Data Lake Analytics. Den kombinerar deklarativ karaktär SQL med procedurer för utökningsbarhet av C# och drar nytta av parallellitet för att möjliggöra effektiv bearbetning av data i massiv skala.
  • Hive. Hive är ett SQL språk som stöds i de flesta Hadoop-distributioner, inklusive HDInsight. Den kan användas för att bearbeta data från alla HDFS-kompatibla arkiv, inklusive Azure Blob Storage och Azure Data Lake Store.
  • Pig. Pig är ett deklarativt stordatabearbetningsspråk som används i många Hadoop-distributioner, inklusive HDInsight. Det är särskilt användbart för bearbetning av data som är ostrukturerade eller halvstrukturerade.
  • Spark. Spark-motorn stöder batchbearbetningsprogram som skrivits på en mängd olika språk, inklusive Java, Scala och Python. Spark använder en distribuerad arkitektur för att bearbeta data parallellt över flera arbetsnoder.

Mer information finns i Batchbearbetning.

Analysdatalager

  • Azure Synapse Analytics. Azure Synapse är en hanterad tjänst som bygger SQL Server databastekniker och optimerad för att stödja storskaliga arbetsbelastningar i informationslager.
  • Spark SQL. Spark SQL är ett API som bygger på Spark och som stöder skapandet av dataramar och tabeller som kan efterfrågas med hjälp av SQL syntax.
  • HBase. HBase är ett NoSQL-arkiv med låg latens som erbjuder ett flexibelt alternativ med höga prestanda för att köra frågor mot strukturerade och halvstrukturerade data.
  • Hive. Förutom att det är användbart för batchbearbetning erbjuder Hive en databasarkitektur som begreppsmässigt liknar den för ett typiskt hanteringssystem för relationsdatabaser. Förbättringar i Hive-frågeprestanda genom innovationer som Tez-motorn och Initiativet Traper innebär att Hive-tabeller kan användas effektivt som källor för analytiska frågor i vissa scenarier.

Mer information finns i Analysdatalager.

Analyser och rapporter

  • Azure Analysis Services. Många stordatalösningar emulerar traditionella enterprise business intelligence-arkitekturer genom att inkludera en centraliserad OLAP-datamodell (online analytical processing) (kallas ofta en kub) där rapporter, instrumentpaneler och interaktiv analys av "segment och tärningar" kan baseras på. Azure Analysis Services har stöd för att skapa tabellmodeller för att uppfylla detta behov.
  • Power BI. Power BI dataanalytiker kan skapa interaktiva datavisualiseringar baserade på datamodeller i en OLAP-modell eller direkt från ett analysdatalager.
  • Microsoft Excel. Microsoft Excel är ett av de mest använda programvaruprogrammen i världen och erbjuder en mängd funktioner för dataanalys och visualisering. Dataanalytiker kan använda Excel för att skapa dokumentdatamodeller från analysdatalager eller för att hämta data från OLAP-datamodeller till interaktiva pivottabeller och diagram.

Mer information finns i Analytics och rapportering.

Orkestrering

  • Azure Data Factory. Azure Data Factory pipelines kan användas för att definiera en sekvens med aktiviteter, schemalagda för återkommande temporala fönster. Dessa aktiviteter kan initiera datakopieringsåtgärder samt Hive-, Pig-, MapReduce- eller Spark-jobb i HDInsight-kluster på begäran. U-SQL jobb i Azure Date Lake Analytics och lagrade procedurer i Azure Synapse eller Azure SQL Database.
  • Oozie och Sqoop. Oozie är en jobbautomatiseringsmotor för Apache Hadoop-ekosystemet och kan användas för att initiera datakopieringsåtgärder samt Hive-, Pig- och MapReduce-jobb för att bearbeta data och Sqoop-jobb för att kopiera data mellan HDFS- och SQL-databaser.

Mer information finns i Pipeline orchestration (Pipelineorkestrering)