Välja en teknik för batchbearbetning i Azure
Stordatalösningar använder ofta långvariga batchjobb för att filtrera, aggregera och på annat sätt förbereda data för analys. De här jobben handlar vanligtvis om att läsa källfiler från skalbar lagring (till exempel HDFS, Azure Data Lake Store och Azure Storage), bearbeta dem och skriva utdata till nya filer i skalbar lagring.
Det viktigaste kravet för sådana batchbearbetningsmotorer är möjligheten att skala ut beräkningar för att hantera en stor mängd data. Till skillnad från realtidsbearbetning förväntas batchbearbetning dock ha svarstider (tiden mellan datainmatning och beräkning av ett resultat) som mäts i minuter till timmar.
Teknikval för batchbearbetning
Azure Synapse Analytics
Azure Synapse är ett distribuerat system som utformats för att utföra analyser på stora data. Den stöder massiv parallell bearbetning (MPP), vilket gör den lämplig för att köra analyser med höga prestanda. Överväg Azure Synapse när du har stora mängder data (mer än 1 TB) och kör en analysarbetsbelastning som kan dra nytta av parallellitet.
Azure Data Lake Analytics
Data Lake Analytics är en tjänst för analysjobb på begäran. Den är optimerad för distribuerad bearbetning av mycket stora datamängder som lagras i Azure Data Lake Store.
- Språk: U-SQL (inklusive Python-, R- och C#-tillägg).
- Integrerar med Azure Data Lake Store, Azure Storage blobar, Azure SQL Database och Azure Synapse.
- Prismodellen är per jobb.
HDInsight
HDInsight är en hanterad Hadoop-tjänst. Använd den för att distribuera och hantera Hadoop-kluster i Azure. För batchbearbetning kan du använda Spark,Hive,Hive LLAP,MapReduce.
- Språk: R, Python, Java, Scala, SQL
- Kerberos-autentisering med Active Directory, Apache Ranger-baserad åtkomstkontroll
- Ger dig fullständig kontroll över Hadoop-klustret
Azure Databricks
Azure Databricks är en Apache Spark-baserad analysplattform. Du kan se det som "Spark som en tjänst". Det är det enklaste sättet att använda Spark på Azure-plattformen.
- Språk: R, Python, Java, Scala, Spark SQL
- Snabba starttider för kluster, autoterminering, autoskalning.
- Hanterar Spark-klustret åt dig.
- Inbyggd integrering med Azure Blob Storage, Azure Data Lake Storage (ADLS), Azure Synapse och andra tjänster. Se Datakällor.
- Användarautentisering med Azure Active Directory.
- Webbaserade notebook-datorer för samarbete och datagranskning.
- Stöder GPU-aktiverade kluster
Azure Distributed Data Engineering Toolkit
AZTK (Distributed Data Engineering Toolkit) är ett verktyg för att etablera Spark på begäran på Docker-kluster i Azure.
AZTK är inte en Azure-tjänst. I stället är det ett verktyg på klientsidan med ett CLI- och Python SDK-gränssnitt som bygger på Azure Batch. Det här alternativet ger dig störst kontroll över infrastrukturen när du distribuerar ett Spark-kluster.
- Ta med din egen Docker-avbildning.
- Använd lågprioriterade virtuella datorer för en rabatt på 80 %.
- Kluster med blandat läge som använder både lågprioriterade och dedikerade virtuella datorer.
- Inbyggt stöd för Azure Blob Storage- och Azure Data Lake-anslutning.
Viktiga urvalsvillkor
Börja med att besvara de här frågorna för att begränsa alternativen:
Vill du ha en hanterad tjänst i stället för att hantera dina egna servrar?
Vill du skapa logik för batchbearbetning deklarativt eller imperativt?
Kommer du att utföra batchbearbetning i burst-fel? Om ja, överväg alternativ som gör att du kan avsluta klustret automatiskt eller vars prismodell är per batchjobb.
Behöver du köra frågor mot relationsdatalager tillsammans med batchbearbetningen, till exempel för att leta upp referensdata? Om ja, överväg de alternativ som gör det möjligt att köra frågor mot externa relationsarkiv.
Kapacitetsmatris
I följande tabeller sammanfattas de viktigaste skillnaderna i funktioner.
Allmänna funktioner
| Funktion | Azure Data Lake Analytics | Azure Synapse | HDInsight | Azure Databricks |
|---|---|---|---|---|
| Är hanterad tjänst | Ja | Ja | Ja 1 | Ja |
| Relationsdatalager | Ja | Ja | Inga | Inga |
| Prismodell | Per batchjobb | Efter klustertimme | Efter klustertimme | Databricks enhet2 + klustertimme |
[1] Med manuell konfiguration.
[2] En Databricks-enhet (DBU) är en bearbetningskapacitet per timme.
Funktioner
| Funktion | Azure Data Lake Analytics | Azure Synapse | HDInsight med Spark | HDInsight med Hive | HDInsight med Hive LLAP | Azure Databricks |
|---|---|---|---|---|---|---|
| Automatisk skalning | Inga | Inga | Ja | Ja | Ja | Ja |
| Utskalningskornighet | Per jobb | Per kluster | Per kluster | Per kluster | Per kluster | Per kluster |
| Minnescachelagring av data | Inga | Ja | Ja | Inga | Ja | Ja |
| Fråga från externa relationsarkiv | Ja | Inga | Ja | Inga | Inga | Ja |
| Autentisering | Azure AD | SQL/Azure AD | No | Azure AD1 | Azure AD1 | Azure AD |
| Granskning | Ja | Ja | Nej | Ja 1 | Ja 1 | Ja |
| Säkerhet på radnivå | No | Ja2 | Nej | Ja 1 | Ja 1 | No |
| Stöder brandväggar | Ja | Ja | Ja | Ja 3 | Ja 3 | Nej |
| Dynamisk datamaskning | Inga | Ja | Nej | Ja 1 | Ja 1 | No |
[1] Kräver att du använder ett domän-ansluten HDInsight-kluster.
[2] Filtrera endast predikat. Se Säkerhet på radnivå
[3] Stöds när det används i en Azure-Virtual Network.