Was ist Autotune für Apache Spark-Konfigurationen in Fabric, und wie kann es aktiviert und deaktiviert werden?
Autotune stimmt Apache Spark-Konfigurationen automatisch ab, um die Ausführungszeit der Workload zu minimieren und Workloads zu optimieren. Sie ermöglicht es Ihnen, mit weniger mehr zu erreichen. Dieses Feature reduziert die Ausführungszeit und übertrifft die Vorteile, die von manuell optimierten Workloads von Experten erzielt werden, was erhebliche Anstrengungen und Experimente erfordert.
Es nutzt die Verlaufsdatenausführung Ihrer Workloads, um iterativ die optimalen Konfigurationen für eine bestimmte Workload und deren Ausführungszeit zu erlernen.
Wichtig
Microsoft Fabric befindet sich derzeit in der VORSCHAU. Diese Informationen beziehen sich auf eine Vorabversion des Produkts, an der vor der Veröffentlichung noch wesentliche Änderungen vorgenommen werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.
Abfrageoptimierung
Derzeit konfiguriert Autotune drei Abfrageebenen von Apache Spark-Konfigurationen:
spark.sql.shuffle.partitions
: Konfiguriert die Anzahl der Partitionen, die beim Mischen von Daten für Joins oder Aggregationen verwendet werden sollen. Der Standardwert ist 200.spark.sql.autoBroadcastJoinThreshold
: Konfiguriert die maximale Größe in Bytes für eine Tabelle, die bei einer Verknüpfung an alle Workerknoten übertragen wird. Der Standardwert ist 10 MB.spark.sql.files.maxPartitionBytes
– die maximale Anzahl von Bytes, die beim Lesen von Dateien in eine einzelne Partition verpackt werden sollen. Funktioniert für dateibasierte Parquet-, JSON- und ORC-Quellen. Der Standardwert ist 128 MB.
Da während der ersten Ausführung von Autotune keine Verlaufsdaten verfügbar sind, werden Konfigurationen basierend auf einem Basismodell festgelegt. Dieses Modell basiert auf Heuristiken, die sich auf den Inhalt und die Struktur der Workload selbst beziehen. Da jedoch dieselbe Abfrage oder Workload wiederholt ausgeführt wird, werden wir immer größere Verbesserungen von Autotune feststellen. Da die Ergebnisse vorheriger Ausführungen verwendet werden, um das Modell zu optimieren und es an einen bestimmten Arbeitsbereich oder eine bestimmte Workload anzupassen.
Hinweis
Während der Algorithmus verschiedene Konfigurationen untersucht, können Sie geringfügige Unterschiede in den Ergebnissen feststellen. Dies wird erwartet, da Autotune iterativ funktioniert und sich mit jeder Wiederholung derselben Abfrage verbessert.
Übersicht über den Konfigurationsoptimierungsalgorithmus
Bei der ersten Ausführung der Abfrage wird die Suche nach den Nachbarn der aktuellen Einstellung (beginnend mit der Standardeinstellung) von einem ML-Modell (Machine Learning) geleitet, das anfänglich mithilfe von Open-Source-Benchmarkabfragen (z. B. TPC-DS) trainiert wurde. Unter den Nachbarkandidaten wählt das ML-Modell die beste Konfiguration mit der kürzesten vorhergesagten Ausführungszeit aus. Bei dieser Ausführung ist der "Centroid" die Standardkonfiguration, um die autotune neue Kandidaten generiert.
Basierend auf der Leistung der zweiten Ausführung pro vorgeschlagene Konfiguration trainieren wir das ML-Modell erneut, indem wir die neue Beobachtung aus dieser Abfrage hinzufügen und den Schwerpunkt aktualisieren, indem wir die Leistung der letzten beiden Ausführungen vergleichen. Wenn die vorherige Ausführung besser ist, wird der Schwerpunkt in umgekehrter Richtung des vorherigen Updates aktualisiert (ähnlich dem Momentum-Ansatz im DNN-Training). Wenn die neue Ausführung besser ist, wird die neueste Konfigurationseinstellung zum neuen Schwerpunkt. Iterativ sucht der Algorithmus schrittweise in die Richtung mit besserer Leistung.
Aktivieren oder Deaktivieren von Autotune
Autotune ist standardmäßig deaktiviert und wird von Apache Spark-Konfigurationseinstellungen gesteuert. Aktivieren Sie Autotune ganz einfach innerhalb einer Sitzung, indem Sie den folgenden Code in Ihrem Notebook ausführen oder ihn in Ihrem Spark-Auftragsdefinitionscode hinzufügen:
%%sql
SET spark.ms.autotune.queryTuning.enabled=TRUE
Verwenden Sie die folgenden Befehle, um die Aktivierung zu überprüfen und zu bestätigen:
%%sql
GET spark.ms.autotune.queryTuning.enabled
Führen Sie zum Deaktivieren von Autotune die folgenden Befehle aus:
%%sql
SET spark.ms.autotune.queryTuning.enabled=FALSE
Transparenzhinweis
Microsoft folgt dem Responsible AI-Standard, und dieser Transparenzhinweis soll eine klare Dokumentation bereitstellen, die die beabsichtigte Verwendung von Autotune und den Nachweis, dass das Feature für den Zweck geeignet ist, bevor der Dienst extern verfügbar wird. Wir verstehen die Bedeutung von Transparenz und stellen sicher, dass unsere Kunden über die erforderlichen Informationen verfügen, um fundierte Entscheidungen bei der Nutzung unserer Dienste zu treffen.
Beabsichtigte Verwendung von Autotune
Das primäre Ziel von Autotune besteht darin, die Leistung von Apache Spark-Workloads zu optimieren, indem der Prozess der Apache Spark-Konfigurationsoptimierung automatisiert wird. Das System ist für die Verwendung von Datentechnikern, Data Scientists und anderen Fachleuten konzipiert, die an der Entwicklung und Bereitstellung von Apache Spark-Workloads beteiligt sind. Zu den vorgesehenen Verwendungsmöglichkeiten von Autotune gehören:
- Automatische Optimierung von Apache Spark-Konfigurationen zur Minimierung der Workloadausführungszeit zur Beschleunigung des Entwicklungsprozesses
- Reduzieren des manuellen Aufwands, der für die Optimierung der Apache Spark-Konfiguration erforderlich ist
- Nutzen der Ausführung von verlaufsbezogenen Daten von Workloads zum iterativen Erlernen optimaler Konfigurationen
Nachweis, dass autotune für den Zweck geeignet ist
Um sicherzustellen, dass Autotune die gewünschten Leistungsstandards erfüllt und für die beabsichtigte Verwendung geeignet ist, haben wir strenge Tests und Validierungen durchgeführt. Die Beweise umfassen:
- Gründliche interne Tests und Validierungen mit verschiedenen Apache Spark-Workloads und Datasets, um die Effektivität der Autotuningalgorithmen zu bestätigen
- Vergleiche mit alternativen Apache Spark-Konfigurationsoptimierungstechniken, die die Leistungsverbesserungen und Effizienzsteigerungen von Autotune veranschaulich
- Kundenfallstudien und Erfahrungsberichte, die erfolgreiche Anwendungen von Autotune in realen Projekten zeigen
- Einhaltung branchenüblicher Sicherheits- und Datenschutzanforderungen, um den Schutz von Kundendaten und geistigem Eigentum zu gewährleisten
Wir möchten sicherstellen, dass wir Datenschutz und Sicherheit priorisieren. Ihre Daten werden nur verwendet, um das Modell zu trainieren, das Ihrer spezifischen Workload dient. Wir ergreifen strenge Maßnahmen, um sicherzustellen, dass keine vertraulichen Informationen in unseren Speicherungs- oder Schulungsprozessen verwendet werden.