Optimera klusteranvändningen för Lakeflow Spark deklarativa pipelines med autoskalning

I den här artikeln beskrivs hur du använder förbättrad autoskalning för att optimera dina pipelines på Azure Databricks.

Förbättrad autoskalning är aktiverad som standard för alla nya pipelines. Serverlösa pipelines använder också vertikal automatisk skalning. Se Vad är vertikal autoskalning?.

För serverlösa pipelines är förbättrad autoskalning alltid aktiverad och kan inte inaktiveras. Se Konfigurera en serverlös pipeline.

Vad är avancerad autoskalning?

Förbättrad automatisk skalning i Databricks optimerar klusteranvändningen genom att automatiskt allokera klusterresurser baserat på arbetsbelastningsvolym, med minimal påverkan på svarstiden för databearbetning för dina pipelines.

Förbättrad autoskalning förbättrar funktionerna för automatisk skalning i Azure Databricks kluster med följande funktioner:

  • Förbättrad autoskalning implementerar optimering av strömmande jobb och lägger till förbättringar för att öka prestandan hos batchjobb. Förbättrad autoskalning optimerar kostnaderna genom att lägga till eller ta bort datorer när arbetsbelastningen ändras.
  • Förbättrad autoskalning proaktivt stänger ned noder med låg utnyttjandegrad samtidigt som det garanteras att det inte finns några misslyckade uppgifter under avstängningen. Den befintliga funktionen för automatisk skalning av kluster skalar bara ned noder om noden är inaktiv.

Förbättrad autoskalning är standardläget för automatisk skalning när du skapar en ny pipeline i pipelinegränssnittet. Du kan aktivera förbättrad autoskalning för befintliga pipelines genom att redigera pipelineinställningarna i användargränssnittet. Du kan också aktivera förbättrad autoskalning när du skapar eller redigerar pipelines med rest-API:et för pipelines.

Vilka mått använder förbättrad autoskalning för att fatta ett beslut om uppskalning eller nedskalning?

Förbättrad autoskalning använder två mått för att bestämma hur du skalar upp eller ned:

  • Användning av aktivitetsfack: Det här är det genomsnittliga förhållandet mellan det antalet upptagna aktivitetsfack till totala tillgängliga aktivitetsfack i klustret.
  • aktivitetsköstorlek: Det här är antalet aktiviteter som väntar på att köras i aktivitetsfack.

Aktivera förbättrad autoskalning för en pipeline

Förbättrad autoskalning är standardläget för automatisk skalning när du skapar en ny pipeline i pipelinegränssnittet. Du kan aktivera förbättrad autoskalning för befintliga pipelines genom att redigera pipelineinställningarna i användargränssnittet. Du kan också aktivera förbättrad autoskalning när du redigerar en pipeline med Lakeflow Pipelines Editor.

Om du vill använda förbättrad autoskalning kan du göra något av följande:

  • Ange Klusterläge till Förbättrad autoskalning när du redigerar pipelineinställningar i Lakeflow Pipelines-redigeraren.
  • Lägg till inställningen autoscale i konfigurationen av pipelineklustret och ange fältet mode till ENHANCED. För pipelines, se Konfigurera klassisk beräkning.

Använd följande riktlinjer när du konfigurerar förbättrad autoskalning för produktionsrörledningar:

  • Lämna inställningen Min workers som standard.
  • Ange inställningen Max workers till ett värde baserat på budget- och pipelineprioritet.

I följande exempel konfigureras ett förbättrat kluster för automatisk skalning med minst fem och högst tio arbetare. max_workers måste vara större än eller lika med min_workers.

Anmärkning

  • Förbättrad autoskalning är endast tillgängligt för updates kluster. Autoskalning av äldre modell används för maintenance kluster.
  • Konfigurationen autoscale har två lägen:
    • LEGACY: Använd automatisk skalning av kluster.
    • ENHANCED: Använd förbättrad autoskalning.
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Om pipelinen har konfigurerats för kontinuerlig körning startas den om automatiskt efter att konfigurationen för automatisk skalning har ändrats. Efter omstarten förväntar du dig en kort period med ökad svarstid. Efter den här korta perioden med ökad svarstid bör klusterstorleken uppdateras baserat på din autoscale konfiguration och pipelinens svarstid bör återgå till dess tidigare svarstidsegenskaper.

Begränsa kostnader för pipelines som använder förbättrad automatisk skalning

Anmärkning

Du kan inte konfigurera arbetsprocesser för serverlösa pipelines.

Om du anger parametern Max workers i fönstret pipelines Compute anges en övre gräns för automatisk skalning. Att minska antalet tillgängliga arbetare kan öka svarstiden för vissa arbetsbelastningar, men förhindrar att kostnader för beräkningsresurser spricker under beräkningsintensiva åtgärder.

Databricks rekommenderar att du justerar inställningarna för Maximalt antal arbetare för att balansera kompromissen mellan kostnader och svarstider för dina specifika behov.

Fönstret Beräkning i pipelines-gränssnittet, där du kan ange Max antal arbetare för automatisk skalning

Övervaka klassiska pipelines med aktiverad utökad autoskalning

Du kan använda händelseloggen i pipelinens användargränssnitt för att övervaka förbättrade mått för automatisk skalning för klassiska pipelines. Förbättrade autoskalningshändelser har händelsetypen autoscale. Följande är exempelhändelser:

Event Message
Begäran om att ändra klusterstorlek har påbörjats Scaling [up or down] to <y> executors from current cluster size of <x>
Begäran om ändring av klusterstorlek lyckades Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Begäran om ändring av klusterstorlek har delvis lyckats Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Begäran om att ändra klusterstorlek misslyckades Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Du kan också visa förbättrade autoskalningshändelser genom att fråga händelseloggen direkt:

Vad är vertikal autoskalning?

Serverlösa pipelines kompletterar den vågräta autoskalning som tillhandahålls av Databricks förbättrade autoskalning genom att automatiskt fördela de mest kostnadseffektiva instansvarianterna, som kan köra din pipeline utan att misslyckas på grund av minnesfel. Vertikal autoskalning skalas upp när större instanstyper krävs för att köra en pipelineuppdatering och skalas ned när den fastställer att uppdateringen kan köras med mindre instanstyper. Lodrät autoskalning avgör om drivrutinsnoder, arbetsnoder eller både drivrutins- och arbetsnoder ska skalas upp eller ned.

Lodrät automatisk skalning används för alla serverless-pipelines, inklusive de pipelines som används för Databricks SQL-materialiserade vyer och strömmande tabeller.

Lodrät autoskalning fungerar genom att identifiera pipelineuppdateringar som har misslyckats på grund av brist på minne. Lodrät autoskalning allokerar större instanstyper när dessa fel identifieras baserat på minnesutdata som samlats in från den misslyckade uppdateringen. I produktionsläge startas en ny uppdatering som använder de nya beräkningsresurserna automatiskt. I utvecklingsläge används de nya beräkningsresurserna när du startar en ny uppdatering manuellt.

Om vertikal autoskalning upptäcker att minnet hos de tilldelade instanserna är konsekvent underutnyttjat, kommer den att skala ned instanstyperna för användning i nästa pipeline-uppdatering.