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.

Nästa steg