Een batchverwerkingstechnologie kiezen in Azure
Big data-oplossingen maken vaak gebruik 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 uit schaalbare opslag (zoals HDFS, Azure Data Lake Store en Azure Storage), het verwerken ervan en het schrijven van de uitvoer naar nieuwe bestanden in schaalbare opslag.
De belangrijkste vereiste van dergelijke batchverwerkingsen engines is de mogelijkheid om berekeningen uit te schalen om een grote hoeveelheid gegevens te kunnen verwerken. In tegenstelling tot realtime verwerking wordt echter verwacht dat batchverwerking latentie heeft (de tijd tussen gegevensingestie en het berekenen van een resultaat) die in minuten tot uren meten.
Technologische keuzen voor batchverwerking
Azure Synapse Analytics
Azure Synapse is een gedistribueerd systeem dat is ontworpen om analyses uit te voeren op grote gegevens. Het biedt ondersteuning voor MPP (Massive Parallel Processing), waardoor het geschikt is voor het uitvoeren van analyses met hoge prestaties. Overweeg Azure Synapse wanneer u grote hoeveelheden gegevens (meer dan 1 TB) hebt en een analyseworkload hebt die profiteert van parallelle behandeling.
Azure Data Lake Analytics
Data Lake Analytics is een analyseservice op aanvraag. Het is geoptimaliseerd voor gedistribueerde verwerking van zeer grote gegevenssets die zijn opgeslagen in Azure Data Lake Store.
- Talen: U-SQL (inclusief Python-, R- en C#-extensies).
- Kan worden geïntegreerd met Azure Data Lake Store, Azure Storage blobs, Azure SQL Database en Azure Synapse.
- Het prijsmodel is per taak.
HDInsight
HDInsight is een beheerde Hadoop-service. Gebruik het om Hadoop-clusters in Azure te implementeren en te beheren. Voor batchverwerking kunt u Spark, Hive, Hive LLAP, MapReduce gebruiken.
- Talen: R, Python, Java, Scala, SQL
- Kerberos-verificatie met Active Directory, op Apache Ranger gebaseerd toegangsbeheer
- Geeft u volledige controle over het Hadoop-cluster
Azure Databricks
Azure Databricks is een Apache Spark gebaseerd analyseplatform. U kunt het zien als 'Spark als een service'. Dit is de eenvoudigste manier om Spark te gebruiken op het Azure-platform.
- Talen: R, Python, Java, Scala, Spark SQL
- Snelle begintijden van clusters, automatische beëindiging, automatisch schalen.
- Beheert het Spark-cluster voor u.
- Ingebouwde integratie met Azure Blob Storage, Azure Data Lake Storage (ADLS), Azure Synapse en andere services. Zie Gegevensbronnen.
- Gebruikersverificatie met Azure Active Directory.
- Webgebaseerde notebooks voor samenwerking en gegevensverkenning.
- Ondersteunt clusters met GPU
Azure Distributed Data Engineering Toolkit
De Distributed Data Engineering Toolkit (AZTK) is een hulpprogramma voor het inrichten van Spark on-demand Spark on Docker-clusters in Azure.
AZTK is geen Azure-service. Het is in plaats van een hulpprogramma aan de clientzijde met een CLI- en Python SDK-interface die is gebouwd op Azure Batch. Met deze optie hebt u de meeste controle over de infrastructuur bij het implementeren van een Spark-cluster.
- Neem uw eigen Docker-afbeelding mee.
- Gebruik VM's met lage prioriteit voor een korting van 80%.
- Gemengde-modusclusters die gebruikmaken van zowel VM's met lage prioriteit als toegewezen VM's.
- Ingebouwde ondersteuning voor Azure Blob Storage en Azure Data Lake-verbinding.
Selectiecriteria voor sleutels
Als u de keuzes wilt beperken, begint u met het beantwoorden van deze vragen:
Wilt u een beheerde service in plaats van uw eigen servers beheren?
Wilt u batchverwerkingslogica declaratief of imperatiever maken?
Gaat u batchverwerking uitvoeren in bursts? Zo ja, overweeg dan opties om het cluster automatisch te beëindigen of waarvan het prijsmodel per batch-taak is.
Moet u samen met uw batchverwerking query's uitvoeren op relationele gegevensopslag, bijvoorbeeld om referentiegegevens op te zoeken? Zo ja, overweeg dan de opties waarmee query's kunnen worden uitgevoerd op externe relationele winkels.
Mogelijkheidsmatrix
De volgende tabellen geven een overzicht van de belangrijkste verschillen in mogelijkheden.
Algemene mogelijkheden
| Mogelijkheid | Azure Data Lake Analytics | Azure Synapse | HDInsight | Azure Databricks |
|---|---|---|---|---|
| Is beheerde service | Ja | Ja | Ja 1 | Ja |
| Relationele gegevensopslag | Ja | Ja | Nee | Nee |
| Prijsmodel | Per batch-taak | Per clusteruur | Per clusteruur | Databricks-eenheid2 + clusteruur |
[1] Met handmatige configuratie.
[2] Een Databricks Unit (DBU) is een verwerkingseenheid per uur.
Functies
| Mogelijkheid | Azure Data Lake Analytics | Azure Synapse | HDInsight met Spark | HDInsight met Hive | HDInsight met Hive LLAP | Azure Databricks |
|---|---|---|---|---|---|---|
| Automatisch schalen | Nee | Nee | Ja | Ja | Ja | Ja |
| Granulariteit van uitschalen | Per taak | Per cluster | Per cluster | Per cluster | Per cluster | Per cluster |
| In-memory caching van gegevens | Nee | Ja | Ja | Nee | Ja | Ja |
| Query's uitvoeren vanuit externe relationele winkels | Ja | Nee | Ja | Nee | Nee | Ja |
| Verificatie | Azure AD | SQL / Azure AD | No | Azure AD1 | Azure AD1 | Azure AD |
| Controleren | Ja | Ja | Nee | Ja 1 | Ja 1 | Ja |
| Beveiliging op rijniveau | No | Ja2 | Nee | Ja 1 | Ja 1 | No |
| Ondersteunt firewalls | Ja | Ja | Ja | Ja 3 | Ja 3 | Nee |
| Dynamische gegevensmaskering | Nee | Ja | Nee | Ja 1 | Ja 1 | No |
[1] Vereist het gebruik van een HDInsight-cluster dat is verbonden met een domein.
[2] Alleen filterpredicaten. Zie Beveiliging op rijniveau
[3] Ondersteund bij gebruik binnen een Azure-Virtual Network.