Dela via


Framgångsmetod för Synapse-implementering: Utvärdera Spark-pooldesign

Anteckning

Den här artikeln är en del av Azure Synapse implementeringsframgång genom designserier med artiklar. En översikt över serien finns i Azure Synapse implementering 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 databearbetning 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 plats 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.
      • Transformera halvstrukturerade data, till exempel XML till relationsdata.
      • Komplex fritexttransformering, till exempel fuzzy-matchning eller bearbetning av naturligt språk (NLP).
      • Förberedelse av data för maskininlärning (ML).
  • Omfattar din arbetsbelastning för datateknik/dataförberedelse 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 koppla 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 lokal plats till molnet och du behöver uppfylla ett strikt serviceavtal för datateknik (SLA) bör 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.

Utmärkt driftseffektivitet

Utvärdera följande punkter för utmärkt drift.

Prestandaeffektivitet

Utvärdera följande punkter för prestandaeffektivitet.

  • Filstorlek och filtyp: Filstorlek och antalet filer påverkar prestanda. 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 ursprungliga 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- eller 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 Azure Data Lake Storage-kontot (ADLS) som är kopplat till Synapse-arbetsytan. Bestäm dessutom vilka säkerhetsnivåer som krävs för att komma åt data som inte finns i Azure Synapse miljö. 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 kan 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 lyckade 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.