Framgångsmetod för Synapse-implementering: Utvärdera Spark-pooldesign
Kommentar
Den här artikeln är en del av azure Synapse-implementeringen genom att designa artiklar. En översikt över serien finns i Azure Synapse-implementeringen lyckades avsiktligt.
Du bör utvärdera din Apache Spark-pooldesign för att identifiera problem och verifiera att den uppfyller riktlinjer och krav. Genom att utvärdera designen innan lösningsutvecklingen börjar kan du undvika blockerare och oväntade designändringar. På så sätt skyddar du projektets tidslinje och budget.
Apache Spark i Synapse ger Apache Spark parallell databehandling till Azure Synapse Analytics. Den här utvärderingen ger vägledning om när Apache Spark i Azure Synapse är – eller inte är – rätt passform för din arbetsbelastning. Den beskriver saker att tänka på när du utvärderar dina lösningsdesignelement som innehåller Spark-pooler.
Anpassa gapanalys
När du planerar att implementera Spark-pooler med Azure Synapse måste du först se till att de passar bäst för din arbetsbelastning.
Tänk på följande punkter.
- Kräver din arbetsbelastning datateknik/dataförberedelse?
- Apache Spark fungerar bäst för arbetsbelastningar som kräver:
- Datarensning.
- Omvandla halvstrukturerade data, till exempel XML till relationella.
- Komplex fritexttransformering, till exempel fuzzy-matchning eller bearbetning av naturligt språk (NLP).
- Förberedelse av data för maskininlärning (ML).
- Apache Spark fungerar bäst för arbetsbelastningar som kräver:
- Innebär din arbetsbelastning för förberedelse av datateknik/data komplexa eller enkla transformeringar? Och letar du efter en metod med låg kod/ingen kod?
- För enkla transformeringar, som att ta bort kolumner, ändra kolumndatatyper eller ansluta till datauppsättningar, bör du överväga att skapa en Azure Synapse-pipeline med hjälp av en dataflödesaktivitet.
- Dataflödesaktiviteter tillhandahåller en metod med låg kod/ingen kod för att förbereda dina data.
- Kräver din arbetsbelastning ML på stordata?
- Apache Spark fungerar bra för stora datauppsättningar som ska användas för ML. Om du använder små datauppsättningar bör du överväga att använda Azure Machine Learning som beräkningstjänst.
- Planerar du att utföra datautforskning eller ad hoc-frågeanalys på stordata?
- Apache Spark i Azure Synapse tillhandahåller Python/Scala/SQL/. NET-baserad datautforskning. Men om du behöver en fullständig Transact-SQL-upplevelse (T-SQL) bör du överväga att använda en serverlös SQL-pool.
- Har du en aktuell Spark/Hadoop-arbetsbelastning och behöver du en enhetlig stordataplattform?
- Azure Synapse tillhandahåller en enhetlig analysplattform för att arbeta med stordata. Det finns Spark- och SQL-serverlösa pooler för ad hoc-frågor och den dedikerade SQL-poolen för rapportering och hantering av data.
- Att flytta från en Spark/Hadoop-arbetsbelastning från en lokal (eller en annan molnmiljö) kan innebära viss refaktorisering som du bör ta hänsyn till.
- Om du letar efter en lift-and-shift-metod för din Apache-stordatamiljö från lokalt till molnet och du behöver uppfylla ett strikt serviceavtal för datateknik (SLA) kan du överväga att använda Azure HDInsight.
Arkitekturöverväganden
För att säkerställa att Apache Spark-poolen uppfyller dina krav på driftskvalitet, prestanda, tillförlitlighet och säkerhet finns det viktiga områden att verifiera i din arkitektur.
Driftsäkerhet
Utvärdera följande punkter för driftskvalitet.
- Miljö: När du konfigurerar din miljö utformar du Spark-poolen för att dra nytta av funktioner som autoskalning och dynamisk allokering. Om du vill minska kostnaderna bör du överväga att aktivera funktionen för automatisk pausning .
- Pakethantering: Avgör om nödvändiga Apache Spark-bibliotek ska användas på arbetsyta, pool eller sessionsnivå. Mer information finns i Hantera bibliotek för Apache Spark i Azure Synapse Analytics.
- Övervakning: Apache Spark i Azure Synapse tillhandahåller inbyggd övervakning av Spark-pooler och -program när varje Spark-session skapas. Överväg också att implementera programövervakning med Azure Log Analytics eller Prometheus och Grafana, som du kan använda för att visualisera mått och loggar.
Prestandaeffektivitet
Utvärdera följande punkter för prestandaeffektivitet.
- Filstorlek och filtyp: Filstorlek och antalet filer påverkar prestandan. Utforma arkitekturen för att säkerställa att filtyperna bidrar till intern inmatning med Apache Spark. Luta dig också mot färre stora filer i stället för många små filer.
- Partitionering: Identifiera om partitionering på mapp- och/eller filnivå ska implementeras för din arbetsbelastning. Mapppartitioner begränsar mängden data som ska sökas och läsas. Filpartitioner minskar mängden data som ska sökas i filen – men gäller bara för specifika filformat som bör beaktas i den inledande arkitekturen.
Tillförlitlighet
Utvärdera följande punkter för tillförlitlighet.
- Tillgänglighet: Spark-pooler har en starttid på tre till fyra minuter. Det kan ta längre tid om det finns många bibliotek att installera. När du utformar batch- och strömningsarbetsbelastningar identifierar du serviceavtalet för att köra jobbet från din utvärderingsinformation och avgör vilken arkitektur som bäst uppfyller dina behov. Tänk också på att varje jobbkörning skapar ett nytt Spark-poolkluster.
- Kontrollpunkter: Apache Spark-strömning har en inbyggd kontrollpunktsmekanism. Med kontrollpunkter kan dataströmmen återställas från den senast bearbetade posten om det skulle uppstå ett fel på en nod i poolen.
Säkerhet
Utvärdera följande punkter för säkerhet.
- Dataåtkomst: Dataåtkomst måste beaktas för det Azure Data Lake Storage-konto (ADLS) som är kopplat till Synapse-arbetsytan. Fastställa dessutom de säkerhetsnivåer som krävs för åtkomst till data som inte finns i Azure Synapse-miljön. Se den information som du samlade in under utvärderingsfasen.
- Nätverk: Granska nätverksinformationen och kraven som samlats in under utvärderingen. Om designen omfattar ett hanterat virtuellt nätverk med Azure Synapse bör du överväga vilka konsekvenser detta krav kommer att få för Apache Spark i Azure Synapse. En implikation är oförmågan att använda Spark SQL vid åtkomst till data.
Nästa steg
I nästa artikel i Azure Synapse lyckades genom designserien får du lära dig hur du utvärderar din projektplan för modernt informationslager innan projektet startar.
Mer information om metodtips finns i Vägledning för Apache Spark för Azure Synapse.