Freigeben über


Optimieren der Clusternutzung von Delta Live Tables-Pipelines mit verbesserter automatischer Skalierung

In diesem Artikel wird erläutert, wie Sie die erweiterte automatische Skalierung verwenden, um Ihre Delta Live Tables-Pipelines in Azure Databricks zu optimieren.

Die erweiterte automatische Skalierung ist für alle neuen Pipelines standardmäßig aktiviert.

Bei serverlosen Pipelines ist die erweiterte automatische Skalierung immer aktiviert und kann nicht deaktiviert werden. Siehe Konfigurieren einer serverlosen Delta Live Tables-Pipeline.

Was ist die automatische Skalierung verbessert?

Databricks Enhanced Autoscaling optimiert die Clusterauslastung durch automatisches Zuordnen von Clusterressourcen basierend auf Arbeitslastvolumen, wobei minimale Auswirkungen auf die Datenverarbeitungslatenz Ihrer Pipelines auftreten.

Verbesserte automatische Skalierung verbessert die Automatische Skalierung von Azure Databricks-Clusterfunktionen mit den folgenden Features:

  • Durch die erweiterte automatische Skalierung werden Optimierungen von Streamingworkloads implementiert und Verbesserungen zur Verbesserung der Leistung von Batchworkloads hinzugefügt. Durch verbesserte automatische Skalierung werden die Kosten optimiert, indem Computer hinzugefügt oder entfernt werden, wenn sich die Arbeitsauslastung ändert.
  • Verbesserte automatische Skalierung beendet proaktiv nicht genutzte Knoten, während sichergestellt wird, dass während des Herunterfahrens keine fehlgeschlagenen Aufgaben vorhanden sind. Das vorhandene Feature Autocaling skaliert nur dann nach unten, wenn der Knoten leer ist.

Die erweiterte automatische Skalierung ist der Standardmodus für die automatische Skalierung, wenn Sie eine neue Pipeline in der Benutzeroberfläche von Delta Live Tables erstellen. Sie können die erweiterte automatische Skalierung für vorhandene Pipelines aktivieren, indem Sie die Pipelineeinstellungen auf der Benutzeroberfläche bearbeiten. Sie können die erweiterte automatische Skalierung auch aktivieren, wenn Sie Pipelines mit der Delta Live Tables-API erstellen oder bearbeiten.

Mit welchen Metriken wird die automatische Skalierung verbessert, um eine Skalierungs- oder Skalierungsentscheidung zu treffen?

Bei der erweiterten automatischen Skalierung werden zwei Metriken verwendet, um die Skalierung nach oben oder nach unten zu entscheiden:

  • Auslastung des Vorgangsplatzes: Dies ist das durchschnittliche Verhältnis der Anzahl der besetzten Vorgangsplätze zu den gesamt im Cluster verfügbaren Vorgangsplätze.
  • Größe der Vorgangswarteschlange: Dies ist die Anzahl der Aufgaben, die auf die Ausführung in Aufgabenfenstern warten.

Aktivieren der erweiterten automatischen Skalierung für eine Delta Live Tables-Pipeline

Die erweiterte automatische Skalierung ist der Standardmodus für die automatische Skalierung, wenn Sie eine neue Pipeline in der Benutzeroberfläche von Delta Live Tables erstellen. Sie können die erweiterte automatische Skalierung für vorhandene Pipelines aktivieren, indem Sie die Pipelineeinstellungen auf der Benutzeroberfläche bearbeiten. Sie können die erweiterte automatische Skalierung auch aktivieren, wenn Sie eine Pipeline mit der Delta Live Tables-API erstellen oder bearbeiten.

Führen Sie eine der folgenden Aktionen aus, um die erweiterte automatische Skalierung zu verwenden:

  • Legen Sie den Clustermodus beim Erstellen oder Bearbeiten einer Pipeline in der Benutzeroberfläche von Delta Live Tables auf erweiterte Automatische Skalierung fest.
  • Fügen Sie die autoscale-Konfiguration zum Pipelineclusterkonfiguration hinzu, und legen Sie das mode-Feld auf ENHANCED fest. Siehe Konfigurieren der Compute für eine Delta Live Tables-Pipeline.

Verwenden Sie die folgenden Richtlinien beim Konfigurieren der erweiterten automatischen Skalierung für Produktionspipelines:

  • Behalten Sie die Standardeinstellung von Min workers bei.
  • Legen Sie die Einstellung Max workers auf einen Wert fest, der dem Budget und der Pipelinepriorität entspricht.

Im folgenden Beispiel wird ein erweiterter Automatischer Skalierungscluster mit mindestens 5 Mitarbeitern und maximal 10 Mitarbeitern konfiguriert. max_workers muss größer als oder gleich sein wie min_workers.

Hinweis

  • Erweiterte automatische Skalierung ist nur für updates Cluster verfügbar. Legacy-Autocaling wird für maintenance Cluster verwendet.
  • Die autoscale-Konfiguration verfügt über zwei Modi:
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Wenn die Pipeline für die kontinuierliche Ausführung konfiguriert ist, wird sie automatisch neu gestartet, nachdem sich die automatische Skalierungskonfiguration geändert hat. Nach dem Neustart erwarten Sie einen kurzen Zeitraum von erhöhter Latenz. Nach diesem kurzen Zeitraum mit erhöhter Latenz sollte die Clustergröße basierend auf Ihrer autoscale Konfiguration aktualisiert werden, und die Pipelinelatenz sollte zu den vorherigen Latenzmerkmalen zurückkehren.

Begrenzen der Kosten für Pipelines, die eine erweiterte automatische Skalierung verwenden

Hinweis

Sie können Keine Mitarbeiter für serverlose Pipelines konfigurieren.

Durch Festlegen des Parameters "Max Worker" im Bereich "Berechnen" der Pipelines wird eine obergrenze für die automatische Skalierung festgelegt. Die Verringerung der Anzahl verfügbarer Mitarbeiter kann die Latenz für einige Workloads erhöhen, verhindert jedoch, dass die Rechenressourcenkosten bei rechenintensiven Vorgängen platzen.

Databricks empfiehlt, die Einstellungen für Max-Worker zu optimieren, um den Kostenlatenz-Kompromiss für Ihre speziellen Anforderungen auszugleichen.

Der Bereich

Überwachen der erweiterten automatischen Skalierung aktivierter klassischer Pipelines

Sie können das Ereignisprotokoll in der Benutzeroberfläche von Delta Live Tables verwenden, um erweiterte automatische Skalierungsmetriken für klassische Pipelines zu überwachen. Erweiterte ereignisse für die automatische Skalierung weisen den autoscale Ereignistyp auf. Im Folgenden sind Beispielereignisse aufgeführt:

Ereignis `Message`
Anforderung zum Ändern der Clustergröße gestartet Scaling [up or down] to <y> executors from current cluster size of <x>
Anforderung zum Ändern der Clustergröße erfolgreich ausgeführt Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Anforderung zum Ändern der Clustergröße teilweise erfolgreich ausgeführt Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Fehler bei Anforderung zum Ändern der Clustergröße Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Sie können auch erweiterte automatische Skalierungsereignisse anzeigen, indem Sie das Ereignisprotokoll direkt abfragen: