Succesmethodologie voor Synapse-implementatie: Spark-poolontwerp evalueren
Notitie
Dit artikel maakt deel uit van het succes van de Azure Synapse-implementatie door ontwerpreeksen . Zie Azure Synapse-implementatie geslaagd voor een overzicht van de reeks.
U moet uw Apache Spark-poolontwerp evalueren om problemen te identificeren en te valideren dat deze voldoet aan richtlijnen en vereisten. Door het ontwerp te evalueren voordat de ontwikkeling van oplossingen begint, kunt u obstakels en onverwachte ontwerpwijzigingen voorkomen. Op die manier beveiligt u de tijdlijn en het budget van het project.
Apache Spark in Synapse brengt de parallelle gegevensverwerking van Apache Spark naar Azure Synapse Analytics. Deze evaluatie biedt richtlijnen voor wanneer Apache Spark in Azure Synapse wel of niet geschikt is voor uw workload. Er worden punten beschreven waarmee u rekening moet houden wanneer u de ontwerpelementen van uw oplossing evalueert die Spark-pools bevatten.
Analyse van hiaat passend maken
Wanneer u van plan bent Spark-pools te implementeren met Azure Synapse, moet u eerst controleren of ze het meest geschikt zijn voor uw workload.
Houd rekening met de volgende punten.
- Is voor uw workload data engineering/gegevensvoorbereiding vereist?
- Apache Spark werkt het beste voor workloads waarvoor het volgende is vereist:
- Gegevens opschonen.
- Semi-gestructureerde gegevens transformeren, zoals XML in relationele.
- Complexe vrije-teksttransformatie, zoals fuzzy matching of natuurlijke taalverwerking (NLP).
- Gegevensvoorbereiding voor machine learning (ML).
- Apache Spark werkt het beste voor workloads waarvoor het volgende is vereist:
- Omvat uw workload voor data engineering/gegevensvoorbereiding complexe of eenvoudige transformaties? En, bent u op zoek naar een benadering met weinig code/geen code?
- Voor eenvoudige transformaties, zoals het verwijderen van kolommen, het wijzigen van kolomgegevenstypen of het samenvoegen van gegevenssets, kunt u een Azure Synapse-pijplijn maken met behulp van een gegevensstroomactiviteit.
- Activiteiten voor gegevensstromen bieden een benadering met weinig code/geen code om uw gegevens voor te bereiden.
- Heeft uw workload ML nodig voor big data?
- Apache Spark werkt goed voor grote gegevenssets die worden gebruikt voor ML. Als u kleine gegevenssets gebruikt, kunt u Azure Machine Learning gebruiken als rekenservice.
- Bent u van plan om gegevensverkenning of ad-hocqueryanalyse uit te voeren op big data?
- Apache Spark in Azure Synapse biedt Python/Scala/SQL/. Gegevensverkenning op basis van NET. Als u echter een volledige Transact-SQL-ervaring (T-SQL) nodig hebt, kunt u overwegen om een serverloze SQL-pool te gebruiken.
- Hebt u een huidige Spark/Hadoop-workload en hebt u een geïntegreerd big data-platform nodig?
- Azure Synapse biedt een geïntegreerd analytische platform voor het werken met big data. Er zijn serverloze Spark- en SQL-pools voor ad-hocquery's en de toegewezen SQL-pool voor het rapporteren en leveren van gegevens.
- Als u overstapt van een Spark-/Hadoop-workload van on-premises (of een andere cloudomgeving), moet u rekening houden met enkele herstructureringen.
- Als u op zoek bent naar een lift-and-shift-benadering van uw Apache Big Data-omgeving van on-premises naar de cloud en u moet voldoen aan een strikte SLA (Data Engineering Service Level Agreement), kunt u Overwegen Om Azure HDInsight te gebruiken.
Overwegingen voor architectuur
Om ervoor te zorgen dat uw Apache Spark-pool voldoet aan uw vereisten voor operationele uitmuntendheid, prestaties, betrouwbaarheid en beveiliging, zijn er belangrijke gebieden om te valideren in uw architectuur.
Operationele uitmuntendheid
Evalueer de volgende punten voor operationele uitmuntendheid.
- Omgeving: Bij het configureren van uw omgeving ontwerpt u uw Spark-pool om te profiteren van functies zoals automatisch schalen en dynamische toewijzing. Als u de kosten wilt verlagen, kunt u overwegen om de functie voor automatische pauze in te schakelen.
- Pakketbeheer: Bepaal of vereiste Apache Spark-bibliotheken worden gebruikt op werkruimte-, pool- of sessieniveau. Zie Bibliotheken beheren voor Apache Spark in Azure Synapse Analytics voor meer informatie.
- Bewaking: Apache Spark in Azure Synapse biedt ingebouwde bewaking van Spark-pools en -toepassingen met het maken van elke Spark-sessie. Overweeg ook toepassingsbewaking te implementeren met Azure Log Analytics of Prometheus en Grafana, die u kunt gebruiken om metrische gegevens en logboeken te visualiseren.
Prestatie-efficiëntie
Evalueer de volgende punten voor prestatie-efficiëntie.
- Bestandsgrootte en bestandstype: Bestandsgrootte en het aantal bestanden hebben invloed op de prestaties. Ontwerp de architectuur om ervoor te zorgen dat de bestandstypen leiden tot systeemeigen opname met Apache Spark. Leun ook naar minder grote bestanden in plaats van veel kleine bestanden.
- Partitionering: Bepaal of partitionering op map- en/of bestandsniveau wordt geïmplementeerd voor uw workload. Mappartities beperken de hoeveelheid gegevens om te zoeken en te lezen. Bestandspartities verminderen de hoeveelheid gegevens die in het bestand moeten worden doorzocht, maar zijn alleen van toepassing op specifieke bestandsindelingen die in de eerste architectuur moeten worden overwogen.
Betrouwbaarheid
Evalueer voor betrouwbaarheid de volgende punten.
- Beschikbaarheid: Spark-pools hebben een begintijd van drie tot vier minuten. Het kan langer duren als er veel bibliotheken zijn geïnstalleerd. Bij het ontwerpen van batch- en streamingworkloads identificeert u de SLA voor het uitvoeren van de taak op basis van uw evaluatiegegevens en bepaalt u welke architectuur het beste aan uw behoeften voldoet. Houd er ook rekening mee dat elke taakuitvoering een nieuw Spark-poolcluster maakt.
- Controlepunten: Apache Spark-streaming heeft een ingebouwd controlepuntmechanisme. Met controlepunten kan uw stream herstellen van de laatste verwerkte vermelding als er een fout op een knooppunt in uw pool is opgetreden.
Beveiliging
Evalueer voor beveiliging de volgende punten.
- Gegevenstoegang: Gegevenstoegang moet worden overwogen voor het AdLS-account (Azure Data Lake Storage) dat is gekoppeld aan de Synapse-werkruimte. Bepaal bovendien de beveiligingsniveaus die vereist zijn voor toegang tot gegevens die zich niet in de Azure Synapse-omgeving bevinden. Raadpleeg de informatie die u tijdens de evaluatiefase hebt verzameld.
- Netwerken: Controleer de netwerkinformatie en vereisten die tijdens uw evaluatie zijn verzameld. Als het ontwerp betrekking heeft op een beheerd virtueel netwerk met Azure Synapse, moet u rekening houden met de gevolgen die deze vereiste heeft voor Apache Spark in Azure Synapse. Eén implicatie is dat Spark SQL niet kan worden gebruikt tijdens het openen van gegevens.
Volgende stappen
In het volgende artikel in de azure Synapse-serie voor succes met ontwerp leert u hoe u uw moderne datawarehouse-projectplan evalueert voordat het project begint.
Zie Richtlijnen voor Apache Spark voor Azure Synapse voor meer informatie over aanbevolen procedures.