Dela via


Rekommendationer för beräkningskonfiguration

Den här artikeln innehåller rekommendationer och metodtips som rör beräkningskonfiguration.

Om din arbetsbelastning stöds rekommenderar Databricks att du använder serverlös beräkning i stället för att konfigurera din egen beräkningsresurs. Serverlös beräkning är det enklaste och mest tillförlitliga beräkningsalternativet. Det kräver ingen konfiguration, är alltid tillgänglig och skalar enligt din arbetsbelastning. Serverfri beräkning är tillgänglig för notebook-filer, jobb och DLT. Se Ansluta till serverlös beräkning.

Dessutom kan dataanalytiker använda serverlösa SQL-lager för att fråga efter och utforska data på Databricks. Se Vad är serverlösa SQL-lager?.

Använd beräkningsprinciper

Om du skapar ny beräkning från grunden rekommenderar Databricks att du använder beräkningsprinciper. Med beräkningspolicyer kan du skapa förkonfigurerade beräkningsresurser som utformats för specifika ändamål, till exempel personliga beräkningar, delade beräkningar, prestandaanvändare och jobb. Principer begränsar de beslut du behöver fatta när du konfigurerar beräkningsinställningar.

Om du inte har åtkomst till principer kontaktar du administratören för arbetsytan. Se Standardprinciper och principfamiljer.

Överväganden för beräkningsstorlek

Kommentar

Följande rekommendationer förutsätter att du har obegränsat skapande av kluster. Arbetsyteadministratörer bör endast bevilja den här behörigheten till avancerade användare.

Människor tänker ofta på beräkningsstorlek när det gäller antalet arbetare, men det finns andra viktiga faktorer att tänka på:

  • Totalt antal körkärnor (beräkning): Det totala antalet kärnor för alla utförare. Detta avgör den maximala parallelliteten för en beräkning.
  • Totalt körminne: Den totala mängden RAM-minne för alla utförare. Detta avgör hur mycket data som kan lagras i minnet innan de sprids till disken.
  • Exekutorens lokala lagring: Typ och mängd lokal disklagring. Lokal disk används främst vid spill under blandningar och cachelagring.

Ytterligare överväganden är typen och storleken på arbetsinstansen, som också påverkar faktorerna ovan. När du dimensionerar din beräkningskapacitet bör du tänka på:

  • Hur mycket data kommer din arbetsbelastning att förbruka?
  • Vilken beräkningskomplexitet har din arbetsbelastning?
  • Var läser du data från?
  • Hur partitioneras data i extern lagring?
  • Hur mycket parallellitet behöver du?

Om du svarar på dessa frågor kan du avgöra optimala beräkningskonfigurationer baserat på arbetsbelastningar.

Det finns en balansakt mellan antalet arbetare och storleken på arbetsinstanstyper. Att konfigurera beräkning med två arbetare, var och en med 16 kärnor och 128 GB RAM-minne, har samma beräkning och minne som att konfigurera beräkning med 8 arbetare, var och en med 4 kärnor och 32 GB RAM-minne.

Exempel på beräkningskonfiguration

I följande exempel visas beräkningsrekommendationer baserat på specifika typer av arbetsbelastningar. De här exemplen omfattar även konfigurationer att undvika och varför dessa konfigurationer inte är lämpliga för arbetsbelastningstyperna.

Kommentar

Alla exempel i det här avsnittet (förutom maskininlärningsträning) kan dra nytta av att använda serverlös beräkning i stället för att skapa en ny beräkningsresurs. Om din arbetsbelastning inte stöds på serverlös använder du rekommendationerna nedan för att konfigurera beräkningsresursen.

Dataanalys

Dataanalytiker utför vanligtvis bearbetning som kräver data från flera partitioner, vilket leder till många shuffle-åtgärder. En beräkningsresurs med ett mindre antal större noder kan minska det nätverks- och disk-I/O som behövs för att utföra dessa blandningar.

En beräkning med en enda nod med en stor VM-typ är förmodligen det bästa valet, särskilt för en enskild analytiker.

Analytiska arbetsbelastningar kräver troligen att samma data läss upprepade gånger, så rekommenderade nodtyper är lagringsoptimerade med diskcache aktiverat eller instanser med lokal lagring.

Ytterligare funktioner som rekommenderas för analytiska arbetsbelastningar är:

  • Aktivera automatisk avslutning för att säkerställa att beräkningen avslutas efter en period av inaktivitet.
  • Överväg att aktivera automatisk skalning baserat på analytikerns typiska arbetsbelastning.

Grundläggande batch-ETL

Enkla batch-ETL-jobb som inte kräver breda omvandlingar, till exempel kopplingar eller aggregeringar, drar vanligtvis nytta av Photon. Välj därför en generell instans som stöder Photon.

Instanser med lägre krav på minne och lagring kan leda till kostnadsbesparingar jämfört med andra arbetstyper.

Komplex batch-ETL

För ett komplext ETL-jobb, till exempel ett som kräver fackföreningar och kopplingar mellan flera tabeller, rekommenderar Databricks att du använder färre arbetare för att minska mängden data som blandas. Öka storleken på dina instanser för att kompensera för färre anställda.

Komplexa omvandlingar kan vara beräkningsintensiva. Om du ser betydande spill till disk eller OOM-fel bör du öka mängden minne som är tillgängligt på dina instanser.

Valfritt, använd pooler för att minska starttiderna för beräkningar och reducera den totala körtiden när du kör jobbpipelines.

Träna maskininlärningsmodeller

För att träna maskininlärningsmodeller rekommenderar Databricks att du skapar en beräkningsresurs med hjälp av principen för personlig beräkning .

Du bör använda en beräkning med en enda nod med en stor nodtyp för inledande experimentering med maskininlärningsmodeller för träning. Att ha färre noder minskar effekten av omblandningar.

Att lägga till fler arbetare kan hjälpa till med stabiliteten, men du bör undvika att lägga till för många arbetare på grund av omkostnaderna för att blanda data.

Rekommenderade arbetstyper är lagringsoptimerade med diskcachelagring aktiverat, eller en instans med lokal lagring för att ta hänsyn till upprepade läsningar av samma data och för att aktivera cachelagring av träningsdata.

Ytterligare funktioner som rekommenderas för maskininlärningsarbetsbelastningar är:

  • Aktivera automatisk avslutning för att säkerställa att beräkningen avslutas efter en period av inaktivitet.
  • Använd pooler, vilket gör det möjligt att begränsa beräkning till förgodkänd instanstyp.
  • Se till att beräkningskonfigurationerna är konsekventa med hjälp av principer.