Dela via


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).
  • 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.

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.