Problembehandlung für U-SQL-Laufzeitfehler aufgrund von Laufzeitänderungen
Wichtig
Azure Data Lake Analytics am 29. Februar 2024 eingestellt. In dieser Ankündigung erhalten Sie weitere Informationen.
Für Datenanalysen kann Ihr organization Azure Synapse Analytics oder Microsoft Fabric verwenden.
Mit der Azure Data Lake-U-SQL-Laufzeit, einschließlich Compiler, Optimierer und Auftrags-Manager, wird Ihr U-SQL-Code verarbeitet.
Auswählen der U-SQL-Laufzeitversion
Wenn Sie U-SQL-Aufträge über Visual Studio, das ADL SDK oder das Azure Data Lake Analytics Portal übermitteln, wird für Ihren Auftrag die aktuell verfügbare Standardlaufzeit verwendet. Neue Versionen der U-SQL-Runtime werden regelmäßig veröffentlicht und enthalten sowohl kleinere Updates als auch Sicherheitskorrekturen.
Sie können auch eine benutzerdefinierte Laufzeitversion auswählen. entweder, weil Sie ein neues Update ausprobieren möchten, auf einer älteren Version einer Runtime bleiben müssen, oder weil Sie einen Hotfix für ein gemeldetes Problem bereitgestellt haben, bei dem Sie nicht auf das reguläre neue Update warten können.
Achtung
Wenn Sie eine andere Laufzeit als die Standardversion auswählen, können Ihre U-SQL-Aufträge möglicherweise unterbrochen werden. Verwenden Sie diese anderen Versionen nur zu Testzwecken.
In seltenen Fällen können Microsoft-Support eine andere Version einer Runtime als Standardversion für Ihr Konto anheften. Stellen Sie sicher, dass Sie diese Pin so bald wie möglich rückgängig machen. Wenn diese Version angeheftet bleibt, läuft sie zu einem späteren Zeitpunkt ab.
Überwachen der U-SQL-Laufzeitversion Ihrer Aufträge
Sie können den Verlauf der Laufzeitversionen, die von Ihren bisherigen Aufträgen verwendet wurden, im Auftragsverlauf Ihres Kontos über den Auftragsbrowser von Visual Studio oder den Auftragsverlauf im Azure-Portal anzeigen.
- Gehen Sie im Azure-Portal zu Ihrem Data Lake Analytics-Konto.
- Wählen Sie Alle Aufträge anzeigen aus. Eine Liste mit allen aktiven und kürzlich abgeschlossenen Aufträge im Konto wird angezeigt.
- Wählen Sie optional Filter aus, damit Sie die Aufträge anhand der Werte für Zeitbereich, Auftragsname und Autor ermitteln können.
- Die Laufzeit, die bei den abgeschlossenen Aufträgen verwendet wurde, wird angezeigt.
Die verfügbaren Laufzeitversionen ändern sich mit der Zeit. Die Standardlaufzeit wird immer als "Standard" bezeichnet, und wir halten mindestens die vorherige Runtime für einige Zeit verfügbar und stellen spezielle Laufzeiten aus verschiedenen Gründen zur Verfügung. Explizit benannte Laufzeiten weisen im Allgemeinen das folgende Format auf (Kursivschrift wird für variable Teile und [] für optionale Teile verwendet):
release_YYYYMMDD_adl_buildno[_modifier]
Beispielsweise bezeichnet „release_20190318_adl_3394512_2“ die zweite Version des Builds 3394512 des Laufzeitrelease vom 18. März 2019 and „release_20190318_adl_3394512_private“ bezeichnet einen privaten Build desselben Release. Hinweis: Das Datum bezieht sich auf den Zeitpunkt, zu dem der letzte Eincheckvorgang für dieses Release erfolgte, und nicht unbedingt auf das offizielle Veröffentlichungsdatum.
Behandeln von Problemen mit der U-SQL-Laufzeitversion
Es gibt zwei mögliche Probleme mit der Laufzeitversion, die auftreten können:
Ein Skript oder ein Benutzercode ändert das Verhalten von einer Version zur nächsten. Solche wichtigen Änderungen werden normalerweise im Voraus durch die Veröffentlichung von Versionshinweisen mitgeteilt. Wenn eine solche Breaking Change auftritt, wenden Sie sich an Microsoft-Support, um dieses Breaking-Verhalten zu melden (falls es noch nicht dokumentiert wurde), und übermitteln Sie Ihre Aufträge für die ältere Laufzeitversion.
Sie haben eine Nicht-Standardlaufzeit entweder explizit oder implizit verwendet, wenn sie an Ihr Konto angeheftet wurde, und diese Runtime wurde nach einiger Zeit entfernt. Wenn Runtimes fehlen, aktualisieren Sie Ihre Skripts so, dass sie mit der aktuellen Standardlaufzeit ausgeführt werden. Wenn Sie mehr Zeit benötigen, wenden Sie sich an Microsoft-Support
Bekannte Probleme
Das Verweisen auf die Datei „Newtonsoft.Json“ ab Version 12.0.3 in einem USQL-Skript führt zu folgendem Kompilierungsfehler:
„Leider werden in Ihrem Data Lake Analytics-Konto ausgeführte Aufträge wahrscheinlich langsamer ausgeführt oder können nicht erfolgreich abgeschlossen werden. Ein unerwartetes Problem verhindert eine automatische Wiederherstellung dieser Funktionalität für Ihr Azure Data Lake Analytics-Konto. Die Azure Data Lake-Techniker wurden informiert, um das Problem zu untersuchen.“
Die Aufrufliste enthält Folgendes:
System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Roslyn.Compilers.MetadataReader.PEFile.CustomAttributeTableReader.get_Item(UInt32 rowId)
...
Lösung: Verwenden Sie die Newtonsoft.Json-Datei v12.0.2 oder niedriger.
Kunden sehen möglicherweise temporäre Dateien und Ordner in ihrem Speicher. Diese werden im Rahmen der normalen Auftragsausführung erstellt, aber normalerweise gelöscht, bevor sie von den Kunden gesehen werden. Unter bestimmten Umständen, die selten und zufällig sind, können sie sichtbar bleiben. Sie werden schließlich gelöscht und werden niemals als Teil des Benutzerspeichers gezählt, und es entstehen keinerlei Gebühren. Abhängig von der Auftragslogik des Kunden kann dies zu Problemen führen. Wenn der Auftrag z. B. alle Dateien im Ordner aufzählt und dann Dateilisten vergleicht, kann dies möglicherweise fehlschlagen, weil unerwartete temporäre Dateien vorhanden sind. Wenn ein Downstreamauftrag für die weitere Verarbeitung alle Dateien aus einem bestimmten Ordner aufzählt, zählt er möglicherweise auch die temporären Dateien auf.
Lösung: Ein Fix wird in der Laufzeit identifiziert, in der die temporären Dateien im temporären Ordner auf Kontoebene und nicht im aktuellen Ausgabeordner gespeichert werden. Die temporären Dateien werden in diesen neuen temporären Ordner geschrieben und am Ende der Auftragsausführung gelöscht.
Da dieser Fix die Kundendaten verarbeitet, ist es wichtig, dass diese Korrektur vor der Veröffentlichung in MSFT gut überprüft wird. Es wird erwartet, dass dieser Fix mitte des Jahres 2021 als Betalaufzeit und in der zweiten Hälfte des Jahres 2021 als Standardlaufzeit verfügbar ist.